Re: Non-customized library and collection of customized units

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings,

I have a situation and I'd like to find out if Git would be a good
solution for it. And if it is, how to implement it. I'll describe it
in as much detail as possible, but if something's not clear, please
let me know.

We develop several courses for many clients. A few parameters:

1) Each course has several variations.
2) Each variation references customized and non-customized content.
3) The non-customized content is held in the library directory.
4) The customized content is held in a directory named a concatenation
of the client's name and course name and variation e.g.,
appleComputer_courseOne_variationFour.

I'd like to achieve several things: 1) versioning for everything,
non-customized and customized, 2) eliminate the duplication. Currently
courses are nearly exact copies of one another with the exception of a
few imgs, flvs, and xml files referencing those imgs and flvs. In
addition, the variations of a course are nearly exact duplicates of
one another with the exception of a few small changes in config.xml
file (see directory tree below).

As it stands, when we create a new variation of a course for a client
the work flow is:

1) Copy and rename a non-customized course variation to the client's
name appended with the course name and variation e.g.,
appleComputer_courseOne_variationFour.
2) Create an assets folder with flv, img, xml child directories and
place the corresponding custom flvs, imgs, and xml in these folders.
3) Modify config.xml to reference the files and directories created in step #2.

Below is a rough mapping of the directory tree along with a note about
each level.

|- custom (Holds all clients customized content for all courses and
their variations.)
|   `- Client name appended by course variation code (All content for
one course and its variations. This unit and its children repeat for
each course.)
|       |- assets
|       |   |- flv
|       |   |   `- Customized FLVs for this client's course variation
go here (1-3 files)
|       |   |- img
|       |   |   `- Customized images for this client's course
variation go here (1-3 files)
|       |   `- xml
|       |       `- Customized XML for this client's course variation
goes here (1-3 files)
|       |- config.xml (This file pulls all aggregates all the
customized and non-customized content, the ring to rule them all.)
|       `- features
|           `- feature name here (All customized content for a
feature. This unit and its children are repeated of each feature.)
|               `- Custom XML and SWFs (1-3 files)
|- library (Holds all of the non-customized content for all courses
and their variations)
|   `- Course name here (All content for one course and its
variations. This unit and its children repeat for each course.)
|       `- assets
|           |- flv
|           |   `- All non-customized FLVs for all course variations
go here (~400 files)
|           |- img
|           |   `- All non-customized images for all course variations
go here (~600 files)
|           `- xml
|               `- All non-customized XML for all course variations
goes here (~300 files)
`- templates (Holds all templates for all courses and their variations)
   |- features
   |    `- All SWFs for templates for all course variations go here (~10 files)
    `- pages
        `- All SWFs for templates for all course variations go here (~50 files)

How should I organize this using Git? Should all of the non-customized
content be in one repository with each course variation as a
submodule? Have all customized content in another repository, then
when we need to make a new course add the non-customized variation as
a submodule?

Patrick
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]