Subject: Re: git-svn and *lots* of ssh connections

From: Eric Wong <[email-masked]>
Date: Thu, 25 Jun 2009 02:49:20 -0700

Jon Nelson <[email-masked]> wrote:
> 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