{"thread":{"id":"18829","subject":"Re: Non-customized library and collection of customized units","startedAt":"2009-04-10T18:26:12Z","lastAt":"2009-04-10T18:26:12Z","messageCount":1,"participants":["Patrick Berkeley"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"111021","messageId":"7efce40a0904101126w151dbddi13d85780dd48fff9@mail.gmail.com","threadId":"18829","inReplyTo":"7efce40a0904101123t7fe78363vab5459469cc4014a@mail.gmail.com","subject":"Re: Non-customized library and collection of customized units","fromName":"Patrick Berkeley","fromEmail":"patrickberkeley@gmail.com","sentAt":"2009-04-10T18:26:12Z","receivedAt":"2009-04-10T18:26:12Z","isPatch":false,"sender":{"key":"patrickberkeley@gmail.com","avatar":"https://gravatar.com/avatar/5d040bdc3120f328fe443af2a77d209de2fe2ce6379254860ed253f21f835b9d?d=mp&s=160"},"body":"Greetings,\n\nI have a situation and I'd like to find out if Git would be a good\nsolution for it. And if it is, how to implement it. I'll describe it\nin as much detail as possible, but if something's not clear, please\nlet me know.\n\nWe develop several courses for many clients. A few parameters:\n\n1) Each course has several variations.\n2) Each variation references customized and non-customized content.\n3) The non-customized content is held in the library directory.\n4) The customized content is held in a directory named a concatenation\nof the client's name and course name and variation e.g.,\nappleComputer_courseOne_variationFour.\n\nI'd like to achieve several things: 1) versioning for everything,\nnon-customized and customized, 2) eliminate the duplication. Currently\ncourses are nearly exact copies of one another with the exception of a\nfew imgs, flvs, and xml files referencing those imgs and flvs. In\naddition, the variations of a course are nearly exact duplicates of\none another with the exception of a few small changes in config.xml\nfile (see directory tree below).\n\nAs it stands, when we create a new variation of a course for a client\nthe work flow is:\n\n1) Copy and rename a non-customized course variation to the client's\nname appended with the course name and variation e.g.,\nappleComputer_courseOne_variationFour.\n2) Create an assets folder with flv, img, xml child directories and\nplace the corresponding custom flvs, imgs, and xml in these folders.\n3) Modify config.xml to reference the files and directories created in step #2.\n\nBelow is a rough mapping of the directory tree along with a note about\neach level.\n\n|- custom (Holds all clients customized content for all courses and\ntheir variations.)\n|   `- Client name appended by course variation code (All content for\none course and its variations. This unit and its children repeat for\neach course.)\n|       |- assets\n|       |   |- flv\n|       |   |   `- Customized FLVs for this client's course variation\ngo here (1-3 files)\n|       |   |- img\n|       |   |   `- Customized images for this client's course\nvariation go here (1-3 files)\n|       |   `- xml\n|       |       `- Customized XML for this client's course variation\ngoes here (1-3 files)\n|       |- config.xml (This file pulls all aggregates all the\ncustomized and non-customized content, the ring to rule them all.)\n|       `- features\n|           `- feature name here (All customized content for a\nfeature. This unit and its children are repeated of each feature.)\n|               `- Custom XML and SWFs (1-3 files)\n|- library (Holds all of the non-customized content for all courses\nand their variations)\n|   `- Course name here (All content for one course and its\nvariations. This unit and its children repeat for each course.)\n|       `- assets\n|           |- flv\n|           |   `- All non-customized FLVs for all course variations\ngo here (~400 files)\n|           |- img\n|           |   `- All non-customized images for all course variations\ngo here (~600 files)\n|           `- xml\n|               `- All non-customized XML for all course variations\ngoes here (~300 files)\n`- templates (Holds all templates for all courses and their variations)\n   |- features\n   |    `- All SWFs for templates for all course variations go here (~10 files)\n    `- pages\n        `- All SWFs for templates for all course variations go here (~50 files)\n\nHow should I organize this using Git? Should all of the non-customized\ncontent be in one repository with each course variation as a\nsubmodule? Have all customized content in another repository, then\nwhen we need to make a new course add the non-customized variation as\na submodule?\n\nPatrick\n"}]}