{"thread":{"id":"26967","subject":"Git enterprise setup on a large project","startedAt":"2011-04-02T19:50:55Z","lastAt":"2011-04-03T18:31:15Z","messageCount":2,"participants":["Frederic JECKER","Enrico Weigelt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"164960","messageId":"BANLkTikv4h3GBGB+hTHjJyAqwEmqZETyEg@mail.gmail.com","threadId":"26967","inReplyTo":null,"subject":"Git enterprise setup on a large project","fromName":"Frederic JECKER","fromEmail":"frederic.jecker@gmail.com","sentAt":"2011-04-02T19:50:55Z","receivedAt":"2011-04-02T19:50:55Z","isPatch":false,"sender":{"key":"frederic.jecker@gmail.com","avatar":null},"body":"Hi,\n\nI'm looking to replace my team's old and clumsy CVS server, as a GIT\nuser for personal projects I'm wondering what would be the best way to\nachieve this using GIT. I've googled the subject a few times and read\nbooks but I still have a handfull of questions\n\nOur team is composed of 10 developers.\nA common developer workspace takes about 1Go of space and contains\nabout 50 modules (up to 100 if the developer is working on satellite\napplications/modules) - we're maintaining a large java-based\nhealthcare system.\nEach module is a CVS project.\nOur use of CVS is.. well..clumsy too (don't ask me why we do things\nlike this, those were decided about 10 years ago before I started\nworking in this company).\nFeatures to be delivered in the next release are committed directly on the head.\nThe project leader cherry picks the commits on his local working copy\nwithin a dedicated workspace.\n\nI first thought of creating a single project in order to group the\n100+ modules and to ease the creation of maintenance branches.\nEach developer would clone the full workspace from a \"blessed\" repository.\nThe \"blessed\" repository would be managed by the project leader which\nwould simply pull changes from each developer pubic repository.\nI tested this scenario but, as the workspace is really big, each\noperation is really slow.\n\nWhat could I do then ?\n- Use submodules ?\n- Create a blessed per-project repository and instead of a public\nrepository for each developer create a per-project public and shared\nrepository ?\n...I'm a bit lost\n\nThanks for your help\n\nFred\n"},{"id":"165273","messageId":"20110403183115.GA28901@nibiru.local","threadId":"26967","inReplyTo":"BANLkTikv4h3GBGB+hTHjJyAqwEmqZETyEg@mail.gmail.com","subject":"Re: Git enterprise setup on a large project","fromName":"Enrico Weigelt","fromEmail":"weigelt@metux.de","sentAt":"2011-04-03T18:31:15Z","receivedAt":"2011-04-03T18:31:15Z","isPatch":false,"sender":{"key":"weigelt@metux.de","avatar":null},"body":"* Frederic JECKER <frederic.jecker@gmail.com> wrote:\n\n> What could I do then ?\n> - Use submodules ?\n> - Create a blessed per-project repository and instead of a public\n> repository for each developer create a per-project public and shared\n> repository ?\n> ...I'm a bit lost\n\nJust think about who has to see whose commits ?\n\nI guess, each project's codebase is accessed by a relatively\nsmall number of people. So it IMHO would be natural to give\neach project a separate (blessed) repository. The project\nleader will merge (or cherry-pick) the blessed changes here,\nand other merge-down or better rebase from there.\n\nIf there's some big mainline (the base for many other projects),\nit should live in its own repository. BTW: you dont have to use\nfull clones - you could also fetch individual refs if you like.\n\nIndividual WIP branches probably dont necessarily need to be pushed\ninto the central project repos - devs could sync each other\nselectively.\n\n\ncu\n-- \n----------------------------------------------------------------------\n Enrico Weigelt, metux IT service -- http://www.metux.de/\n\n phone:  +49 36207 519931  email: weigelt@metux.de\n mobile: +49 151 27565287  icq:   210169427         skype: nekrad666\n----------------------------------------------------------------------\n Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme\n----------------------------------------------------------------------\n"}]}