Re: git-svn and *lots* of ssh connections
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jun 25, 2009, 09:49 UTC
- Message-ID
- <20090625094919.GC2901@dcvr.yhbt.net>
- In-Reply-To
- <cccedfc60906100709r18364bc2h82d8e1a7ee0b8fd1@mail.gmail.com>
Jon Nelson <jnelson@jamponi.net> wrote:
Show 17 quoted lines
> The company I work for (but do not speak for) uses svn (via ssh). I > tried to use it; I really did. But I missed git and found svn quite > honestly painful to use so I went to git-svn, and other than some > caveats I'm pretty happy. However, one of the issues I've had with > git-svn is fairly troublesome. > > Basically, during the fetch stage (or clone) git-svn uses a *ton* of > ssh connections. Many dozens and in even with smaller projects well > over a hundred. By "small" I mean a .git of less than 6MB and less > than 60 files in the checkout. I've got 4MBit bandwidth available but > frequently see only a single digit fraction of that going to the > fetch/clone process. Is there anything that can be done to reduce the > number of ssh connections involved? Why can't a single connection > simple be re-used? I can't use "ssh connection sharing" for a variety > of reasons that aren't relevant here. > > I'm using 1.6.0.2.
Hi Jon,
The actual connection setup/teardown is handled by the SVN Perl bindings which gives git-svn little control over handling them. We actually try to force a zero reference count to close a connection to an open SVN repository.
Which OS/Perl version/SVN bindings version are you using?
Could the ssh processes just be zombies that didn't get reaped?
Does this happen when you clone a single directory with --no-follow-parent? (no --stdlayout/-s option or --branches/--tags switches, either). Can you test against an http/https/plain-svn server and see if it happens there?
I could be talked into putting in a (nasty!) hack to start zapping integer file descriptors when switching paths/repos and hope SVN closes those; but that may not work...
-- Eric Wong