Don't checkout the full tree if avoidable
authorSteven Walter <stevenrwalter@gmail.com>
Fri, 28 Sep 2007 17:24:19 +0000 (13:24 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 4 Oct 2007 00:54:34 +0000 (17:54 -0700)
commit9ff74e95da5605778bdc7567ae63d70c96e6bed4
treebde0e050f903880a3621414a022ea9b1a17eca48
parentf94bf44041f621bad3c99e02476540f4a120a90e
Don't checkout the full tree if avoidable

In most cases of branching, the tree is copied unmodified from the trunk
to the branch.  When that is done, we can simply start with the parent's
index and apply the changes on the branch as usual.

[ew: rewritten from Steven's original to use SVN::Client instead
     of the command-line svn client.

     Since SVN::Client connects separately, we'll share our
     authentication providers array between our usages of
     SVN::Client and SVN::Ra, too.  Bypassing the high-level
     SVN::Client library can avoid this, but the code will be
     much more complex.  Regardless, any implementation of this
     seems to require restarting a connection to the remote
     server.

     Also of note is that SVN 1.4 and later allows a more
     efficient diff_summary to be done instead of a full diff,
     but since this code is only to support SVN < 1.4.4, we'll
     ignore it for now.]

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-svn.perl