{"thread":{"id":"23454","subject":"git-svn against a monolithic repository","startedAt":"2010-04-14T09:44:21Z","lastAt":"2010-04-14T09:44:21Z","messageCount":1,"participants":["Marc Bowes"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"139465","messageId":"j2tcfa4e841004140244o1dfa51fdk9b435ff7c04c2a3b@mail.gmail.com","threadId":"23454","inReplyTo":"h2jcfa4e841004140232y2137d43eg4be9bebdc2d29290@mail.gmail.com","subject":"git-svn against a monolithic repository","fromName":"Marc Bowes","fromEmail":"marcbowes@gmail.com","sentAt":"2010-04-14T09:44:21Z","receivedAt":"2010-04-14T09:44:21Z","isPatch":false,"sender":{"key":"marcbowes@gmail.com","avatar":null},"body":"Hiya,\n\nThe subversion repository I need to work with is quite odd (by my\nstandards, anyways).\n\nThe structure looks something like:\n\n|-- patches\n|   `-- foobar\n|       `-- project-name\n`-- trunk-team-name\n    `-- project-name\n\nThat is, a single monolithic repository. Each team has their own trunk\n(as a folder). The patches folder is essentially a production branch\nfor a specific region. Each developer tends to have a branch somewhere\nelse which they use to hack on. When they are ready, the code goes\nthrough a review process and then is copied (svn copy) into trunk. It\nthen goes through a build process and is finally merged (in this case,\nusing meld) into the patches where other stuff happens to it.\n\nI would like to use a single git repository for each project. That is,\nmy master branch should relate to the project folder in trunk and my\nproduction-foobar branch should relate to the project folder in\npatches. I could then use git to hack on a local branch and merge to\nmaster (and then dcommit back to trunk). When ready, I could then\nmerge master into the production branch (and then dcommit back to\npatches).\n\nI guess what I'm looking for is something like:\n\ngit svn clone https://svn/url -T trunk-team-name/project-name -b\npatches/foobar/project-name\n\nHowever, I'm pretty sure that is wrong. Not only does it take forever\n(I landed up canceling it), but I don't think the git-svn branches\nwill understand the weirdo layout.\n\nI tried manually adding svn-remotes, running git-svn fetch against\nthen and then branching off. However, I started seeing weird things\nhappening when merging (sometimes git-svn became attached to the wrong\nremote, sometimes it wouldn't update properly, lots of obscure merge\nconflicts..).\n\nIn the worst case, I could clone each project (that is, trunk and\npatches) separately and manually merge. But if I can get git to do\nthis for me, it'd make a lot of sense.\n\nIf anybody has any ideas, I'd be extremely grateful.\n"}]}