{"thread":{"id":"11358","subject":"git-svn and migration","startedAt":"2007-12-19T16:50:30Z","lastAt":"2007-12-19T21:14:46Z","messageCount":5,"participants":["Nigel Magnay","Steven Walter","Miklos Vajna","Seth Falcon"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"63779","messageId":"320075ff0712190850r35263bcfv1d8f84e699208e15@mail.gmail.com","threadId":"11358","inReplyTo":"320075ff0712190849u2c40cc46pf01fa2a75f557482@mail.gmail.com","subject":"git-svn and migration","fromName":"Nigel Magnay","fromEmail":"nigel.magnay@gmail.com","sentAt":"2007-12-19T16:50:30Z","receivedAt":"2007-12-19T16:50:30Z","isPatch":false,"sender":{"key":"nigel.magnay@gmail.com","avatar":"https://gravatar.com/avatar/d85cf38287bef3a8e4fa02358d2756d7589f8676c5eeb881ce2f6d731e4526c3?d=mp&s=160"},"body":"Hi there!\n\nI've been playing around with git for a while, read the guides to\ngit-svn and have been successfully using it on my own to track an\nupstream svn repository.\n\nEventually, I'd like us all to switch to git, throw out the svn\nserver, and replace it with a git repository that can be pushed to,\nwhere commits that pass tests get merged into the master.\n\nBut - that's not going to happen overnight. The most likely next steps\nare going to be something like migrating a couple of other developers\nonto git to test the water, but in the interim most people will still\nbe on svn.\n\nHas anyone got any tips as I'm sure it's a path trodden before? I've\nseen examples of keeping a read-only svn, but that's not really what\nI'm after. I'm considering whether to have a central git repo\nregularly pull from svn so that it's up to date, and having us\npossibly push to svn (or git if it's not merged to trunk) as an\ninterim step..\n\nNigel\n"},{"id":"63786","messageId":"20071219175447.GB15898@dervierte","threadId":"11358","inReplyTo":"320075ff0712190850r35263bcfv1d8f84e699208e15@mail.gmail.com","subject":"Re: git-svn and migration","fromName":"Steven Walter","fromEmail":"stevenrwalter@gmail.com","sentAt":"2007-12-19T17:54:47Z","receivedAt":"2007-12-19T17:54:47Z","isPatch":false,"sender":{"key":"stevenrwalter@gmail.com","avatar":"https://avatars.githubusercontent.com/u/79127?v=4"},"body":"On Wed, Dec 19, 2007 at 04:50:30PM +0000, Nigel Magnay wrote:\n> Has anyone got any tips as I'm sure it's a path trodden before? I've\n> seen examples of keeping a read-only svn, but that's not really what\n> I'm after. I'm considering whether to have a central git repo\n> regularly pull from svn so that it's up to date, and having us\n> possibly push to svn (or git if it's not merged to trunk) as an\n> interim step..\n\nUsing a central git repo that is kept uptodate with svn is the approach\nI've used.  git-svn isn't especially keen on this mode of operation,\nhowever.  After every fetch, you have to reset refs/remotes/trunk to\norigin/master, which it turn puts .git/svn out of date (you can blow it\naway and run \"git svn fetch\" to regenerate it).\n\nI wrote a script that automates most of this stuff (including doing\nincremental additions to git-svn's revdb/revmap).  If there's interest,\nI can see about cleaning it up for general consumption.\n-- \n-Steven Walter <stevenrwalter@gmail.com>\nFreedom is the freedom to say that 2 + 2 = 4\nB2F1 0ECC E605 7321 E818  7A65 FC81 9777 DC28 9E8F \n"},{"id":"63794","messageId":"20071219202333.GD4390@genesis.frugalware.org","threadId":"11358","inReplyTo":"20071219175447.GB15898@dervierte","subject":"Re: git-svn and migration","fromName":"Miklos Vajna","fromEmail":"vmiklos@frugalware.org","sentAt":"2007-12-19T20:23:33Z","receivedAt":"2007-12-19T20:23:33Z","isPatch":false,"sender":{"key":"vmiklos@frugalware.org","avatar":"https://gravatar.com/avatar/401c1cbbb3a5d13e650c691a2c71d6fd0b80df1a01bc74d9f1972675dd58f2bd?d=mp&s=160"},"body":"On Wed, Dec 19, 2007 at 12:54:47PM -0500, Steven Walter <stevenrwalter@gmail.com> wrote:\n> Using a central git repo that is kept uptodate with svn is the approach\n> I've used.  git-svn isn't especially keen on this mode of operation,\n> however.  After every fetch, you have to reset refs/remotes/trunk to\n> origin/master, which it turn puts .git/svn out of date (you can blow it\n> away and run \"git svn fetch\" to regenerate it).\n\nan other problem is that you probably want to have a bare repo while\ngit-svn needs a working dir. a possible solution:\n\nhttp://blogs.frugalware.org/vmiklos/2007/12/09/p320\n\n(it works for me fine, but maybe there are problems with it so use with\ncare :) )\n\n- VMiklos\n"},{"id":"63797","messageId":"320075ff0712191247m132ecd95o46a7778d8bd4f42b@mail.gmail.com","threadId":"11358","inReplyTo":"320075ff0712191246r46cd76f7r1d8edc1adf35ae57@mail.gmail.com","subject":"git-svn and migration","fromName":"Nigel Magnay","fromEmail":"nigel.magnay@gmail.com","sentAt":"2007-12-19T20:47:24Z","receivedAt":"2007-12-19T20:47:24Z","isPatch":false,"sender":{"key":"nigel.magnay@gmail.com","avatar":"https://gravatar.com/avatar/d85cf38287bef3a8e4fa02358d2756d7589f8676c5eeb881ce2f6d731e4526c3?d=mp&s=160"},"body":"I was prepared to put up with it not being a bare repository (asides\nthe extra /.git/ in the URL it's pretty much the same).\n\nOn the git host I'd set refs/heads/trunk to be\n ref: refs/remotes/svn/trunk\n\nAnd I'm hoping that a cron of git svn fetch ; git-update-server-info\nwill do the trick.  It appeared to keep it in sync when I fetch\ndownstream. I don't know if I'm being naive though expecting that to\nwork as I don't grok all that git-svn needs to work properly - but I'm\nworking on it ;-)\n\nMy current plan is for developers to push/pull to git to share amongst\nthe git-devs, and to push to svn when wanting to share with everyone\nelse..\n\n[svn user] ---(ci/co)--->[svn] --pull--> [git]\n                            ^               ^\n                           |               |\n                          push          push/pull\n                            |               |\n                           ---[git user]----\n\n\n\n\nOn Dec 19, 2007 8:23 PM, Miklos Vajna < vmiklos@frugalware.org> wrote:\n> On Wed, Dec 19, 2007 at 12:54:47PM -0500, Steven Walter < stevenrwalter@gmail.com> wrote:\n> > Using a central git repo that is kept uptodate with svn is the approach\n> > I've used.  git-svn isn't especially keen on this mode of operation,\n > > however.  After every fetch, you have to reset refs/remotes/trunk to\n > > origin/master, which it turn puts .git/svn out of date (you can blow it\n> > away and run \"git svn fetch\" to regenerate it).\n>\n> an other problem is that you probably want to have a bare repo while\n> git-svn needs a working dir. a possible solution:\n >\n> http://blogs.frugalware.org/vmiklos/2007/12/09/p320\n>\n> (it works for me fine, but maybe there are problems with it so use with\n> care :) )\n >\n> - VMiklos\n >\n"},{"id":"63799","messageId":"m28x3qv12x.fsf@userprimary.net","threadId":"11358","inReplyTo":"320075ff0712191247m132ecd95o46a7778d8bd4f42b@mail.gmail.com","subject":"Re: git-svn and migration","fromName":"Seth Falcon","fromEmail":"seth@userprimary.net","sentAt":"2007-12-19T21:14:46Z","receivedAt":"2007-12-19T21:14:46Z","isPatch":false,"sender":{"key":"seth@userprimary.net","avatar":"https://gravatar.com/avatar/1db807504c1f8fb0a13bf1056a1e4d5096d17f3a09a1e9540f3af5f8b5ee009c?d=mp&s=160"},"body":"\"Nigel Magnay\" <nigel.magnay@gmail.com> writes:\n\n> I was prepared to put up with it not being a bare repository (asides\n> the extra /.git/ in the URL it's pretty much the same).\n>\n> On the git host I'd set refs/heads/trunk to be\n>  ref: refs/remotes/svn/trunk\n>\n> And I'm hoping that a cron of git svn fetch ; git-update-server-info\n> will do the trick.  It appeared to keep it in sync when I fetch\n> downstream. I don't know if I'm being naive though expecting that to\n> work as I don't grok all that git-svn needs to work properly - but I'm\n> working on it ;-)\n>\n> My current plan is for developers to push/pull to git to share amongst\n> the git-devs, and to push to svn when wanting to share with everyone\n> else..\n>\n> [svn user] ---(ci/co)--->[svn] --pull--> [git]\n>                             ^               ^\n>                            |               |\n>                           push          push/pull\n>                             |               |\n>                            ---[git user]----\n\nI suspect having the git users push/fetch only from svn\nwould be more reliable.  Won't there be problems if git users\ndo merges and push to the git repo?\n\nAlso, seems like it makes the transition more complicateds for git\nusers since they have to figure out git-svn _and_ the git push/pull.\n\nPerhaps avoid the central git repo until everyone is on git.  Then\npeople have to learn not to use git-svn and to use push/pull instead.\n\nMy $0.02\n\n+ seth\n\n-- \nSeth Falcon | seth@userprimary.net | blog: http://userprimary.net/user/\n"}]}