git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Non-customized library and collection of customized units

From
Patrick Berkeley <patrickberkeley@gmail.com>
Date
Apr 10, 2009, 18:26 UTC
Message-ID
<7efce40a0904101126w151dbddi13d85780dd48fff9@mail.gmail.com>
In-Reply-To
<7efce40a0904101123t7fe78363vab5459469cc4014a@mail.gmail.com>
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
Message 1 of 1 in “Re: Non-customized library and collection of customized units”
  1. Patrick BerkeleyApr 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.