{"thread":{"id":"22601","subject":"git-svn taking a long time","startedAt":"2010-02-10T12:41:12Z","lastAt":"2010-02-10T22:25:11Z","messageCount":5,"participants":["David Kågedal","Andrew Myrick"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"134141","messageId":"87hbppp8k7.fsf@krank.kagedal.org","threadId":"22601","inReplyTo":null,"subject":"git-svn taking a long time","fromName":"David Kågedal","fromEmail":"davidk@lysator.liu.se","sentAt":"2010-02-10T12:41:12Z","receivedAt":"2010-02-10T12:41:12Z","isPatch":false,"sender":{"key":"davidk@lysator.liu.se","avatar":"https://avatars.githubusercontent.com/u/60530?v=4"},"body":"I compiled the perl bindings from subversion 1.6.x, and git git version\n1.7.0.rc0.52.g64ba.\n\nI have imported a largish svn repo using \"git svn fetch\", which takes\nquite a long time (at least a day).\n\nBut my problems is that if I rerun \"git svn fetch\" again right after\nfetching, it will chew for hours before figuring out there are just a\nfew new revisions to import. And the same if I try again.\n\nI have another import from the same repo (on another machine, using\nslightly different versions of stuff) that doesn't have this problem.\n\nSo, does anyone have any suggestions for what could be done about this?\n\nThis is what the entry i .git/config looks like (url edited to protect\nthe innocent)\n\n[svn-remote \"svn\"]\n        url = svn://svn.server\n        branches = foo/branches/*:refs/remotes/svn/*\n        tags = foo/tags/*:refs/remotes/svn/tags/*\n\n-- \nDavid Kågedal\n"},{"id":"134150","messageId":"6D721095-7A04-4097-8D86-1A2B915182DF@apple.com","threadId":"22601","inReplyTo":"87hbppp8k7.fsf@krank.kagedal.org","subject":"Re: git-svn taking a long time","fromName":"Andrew Myrick","fromEmail":"amyrick@apple.com","sentAt":"2010-02-10T16:59:37Z","receivedAt":"2010-02-10T16:59:37Z","isPatch":false,"sender":{"key":"amyrick@apple.com","avatar":"https://avatars.githubusercontent.com/u/303045?v=4"},"body":"Give 1.7.0-rc2 a try.  It includes commit 8bff7c5383ed833bd1df9c8d85c00a27af3e5b02, which attempts to persistently cache a lot of the processing that git-svn has to do on subversion's merge tickets, which has improved my fetch times significantly.  \n\nNote 1: git did not support subversion merge tickets before git-1.6.6, so there would be no slowdown if you use prior versions.\n\nNote 2: you shouldn't need to clone your subversion repository from scratch.  git will create the caches the first time you fetch after upgrading (so the first fetch will be slow), and it will continue to use and update the caches thereafter.\n\n-Andrew\n\nOn Feb 10, 2010, at 4:41 AM, David Kågedal wrote:\n\n> I compiled the perl bindings from subversion 1.6.x, and git git version\n> 1.7.0.rc0.52.g64ba.\n> \n> I have imported a largish svn repo using \"git svn fetch\", which takes\n> quite a long time (at least a day).\n> \n> But my problems is that if I rerun \"git svn fetch\" again right after\n> fetching, it will chew for hours before figuring out there are just a\n> few new revisions to import. And the same if I try again.\n> \n> I have another import from the same repo (on another machine, using\n> slightly different versions of stuff) that doesn't have this problem.\n> \n> So, does anyone have any suggestions for what could be done about this?\n> \n> This is what the entry i .git/config looks like (url edited to protect\n> the innocent)\n> \n> [svn-remote \"svn\"]\n>        url = svn://svn.server\n>        branches = foo/branches/*:refs/remotes/svn/*\n>        tags = foo/tags/*:refs/remotes/svn/tags/*\n> \n> -- \n> David Kågedal\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"},{"id":"134157","messageId":"87bpfxov6w.fsf@krank.kagedal.org","threadId":"22601","inReplyTo":"6D721095-7A04-4097-8D86-1A2B915182DF@apple.com","subject":"Re: git-svn taking a long time","fromName":"David Kågedal","fromEmail":"davidk@lysator.liu.se","sentAt":"2010-02-10T17:29:59Z","receivedAt":"2010-02-10T17:29:59Z","isPatch":false,"sender":{"key":"davidk@lysator.liu.se","avatar":"https://avatars.githubusercontent.com/u/60530?v=4"},"body":"Andrew Myrick <amyrick@apple.com> writes:\n\n> Give 1.7.0-rc2 a try.  It includes commit 8bff7c5383ed833bd1df9c8d85c00a27af3e5b02, which attempts to persistently cache a lot of the processing that git-svn has to do on subversion's merge tickets, which has improved my fetch times significantly.  \n\nBy \"merge tickets\", are you talking about the merge functionality that\nappeared in subversion 1.5? We don't use that.\n\nBut I had another idea. I pecularity of our subversion repo is that we\nno longer use the foo/trunk branch, but only foo/branches/*. But we did\nonce upon a time have a foo/trunk. And since I didn't include a \"fetch =\nfoo/trunk:refs/remotes/svn/trunk\" in my config, it might need to refetch\nthat information every time. For instance, the first revision is on\ntrunk.\n\nI'm rerunning the fetch now with the trunk added, so see if it helps.\n\nAnd another note is that \"git svn fetch --parent\" was always quick.\n\n-- \nDavid Kågedal\n"},{"id":"134161","messageId":"E8C897D9-F8EB-4FF3-B27C-9679E008795A@apple.com","threadId":"22601","inReplyTo":"87bpfxov6w.fsf@krank.kagedal.org","subject":"Re: git-svn taking a long time","fromName":"Andrew Myrick","fromEmail":"amyrick@apple.com","sentAt":"2010-02-10T17:39:15Z","receivedAt":"2010-02-10T17:39:15Z","isPatch":false,"sender":{"key":"amyrick@apple.com","avatar":"https://avatars.githubusercontent.com/u/303045?v=4"},"body":"\nOn Feb 10, 2010, at 9:29 AM, David Kågedal wrote:\n\n> Andrew Myrick <amyrick@apple.com> writes:\n> \n>> Give 1.7.0-rc2 a try.  It includes commit 8bff7c5383ed833bd1df9c8d85c00a27af3e5b02, which attempts to persistently cache a lot of the processing that git-svn has to do on subversion's merge tickets, which has improved my fetch times significantly.  \n> \n> By \"merge tickets\", are you talking about the merge functionality that\n> appeared in subversion 1.5? We don't use that.\n\nI do mean that.  If you don't use them, then I'm stumped.\n\n> But I had another idea. I pecularity of our subversion repo is that we\n> no longer use the foo/trunk branch, but only foo/branches/*. But we did\n> once upon a time have a foo/trunk. And since I didn't include a \"fetch =\n> foo/trunk:refs/remotes/svn/trunk\" in my config, it might need to refetch\n> that information every time. For instance, the first revision is on\n> trunk.\n> \n> I'm rerunning the fetch now with the trunk added, so see if it helps.\n> \n> And another note is that \"git svn fetch --parent\" was always quick.\n\nSounds reasonable.  Good luck!\n\n-Andrew\n"},{"id":"134195","messageId":"873a18pw3c.fsf@krank.kagedal.org","threadId":"22601","inReplyTo":"87bpfxov6w.fsf@krank.kagedal.org","subject":"Re: git-svn taking a long time","fromName":"David Kågedal","fromEmail":"davidk@lysator.liu.se","sentAt":"2010-02-10T22:25:11Z","receivedAt":"2010-02-10T22:25:11Z","isPatch":false,"sender":{"key":"davidk@lysator.liu.se","avatar":"https://avatars.githubusercontent.com/u/60530?v=4"},"body":"David Kågedal <davidk@lysator.liu.se> writes:\n\n> Andrew Myrick <amyrick@apple.com> writes:\n>\n>> Give 1.7.0-rc2 a try.  It includes commit 8bff7c5383ed833bd1df9c8d85c00a27af3e5b02, which attempts to persistently cache a lot of the processing that git-svn has to do on subversion's merge tickets, which has improved my fetch times significantly.  \n>\n> By \"merge tickets\", are you talking about the merge functionality that\n> appeared in subversion 1.5? We don't use that.\n>\n> But I had another idea. I pecularity of our subversion repo is that we\n> no longer use the foo/trunk branch, but only foo/branches/*. But we did\n> once upon a time have a foo/trunk. And since I didn't include a \"fetch =\n> foo/trunk:refs/remotes/svn/trunk\" in my config, it might need to refetch\n> that information every time. For instance, the first revision is on\n> trunk.\n>\n> I'm rerunning the fetch now with the trunk added, so see if it helps.\n\nThat seems to have done the trick. Now it's quick when there is nothing\nto do.\n\nPerhaps there is something in the git-svn caching that could still be\nimproved?\n\n-- \nDavid Kågedal\n"}]}