Re: [PATCH v2] git-svn: use SVN::Ra::get_dir2 when possible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-------------------------
On Fri, Oct 31, 2014 10:34 GMT Eric Wong wrote:

>This avoids the following failure with normal "get_dir" on newer
>versions of SVN (tested with SVN 1.8.8-1ubuntu3.1):
>
>  Incorrect parameters given: Could not convert '%ld' into a number
>
>get_dir2 also has the potential to be more efficient by requesting
>less data.
>
>ref: <1414636504.45506.YahooMailBasic@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
>ref: <1414722617.89476.YahooMailBasic@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
>
>Signed-off-by: Eric Wong <normalperson@xxxxxxxx>
>Cc: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>

Tested-by: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>

Okay, this one on top of my "git 2.1.0 + 10 recent git svn improvement patches"
allow me to fetch further.

I suspect the problem must be elsewhere though, and this just band-aided
over it.

For me, reverting the additional patches and just use git 2.1.0 also allow
me to fetch further, so the problem appear to me to be associated with
the additional patches. But you are saying that git-svn on debian as shipped
exhibit this problem? 

>---
> Sorry, waaay past my bed time.  This version doesn't infinite loop
> on autoload or older SVN(*) (at least I hope it doesn't)
>
> perl/Git/SVN/Ra.pm | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
>diff --git a/perl/Git/SVN/Ra.pm b/perl/Git/SVN/Ra.pm
>index 82d6108..496f430 100644
>--- a/perl/Git/SVN/Ra.pm
>+++ b/perl/Git/SVN/Ra.pm
>@@ -177,7 +177,17 @@ sub get_dir {
>         }
>     }
>     my $pool = SVN::Pool->new;
>-    my ($d, undef, $props) = $self->SUPER::get_dir($dir, $r, $pool);
>+    my ($d, undef, $props);
>+
>+    if (::compare_svn_version('1.4.0') >= 0) {
>+        # n.b. in addition to being potentially more efficient,
>+        # this works around what appears to be a bug in some
>+        # SVN 1.8 versions
>+        my $kind = 1; # SVN_DIRENT_KIND
>+        ($d, undef, $props) = $self->get_dir2($dir, $r, $kind, $pool);
>+    } else {
>+        ($d, undef, $props) = $self->SUPER::get_dir($dir, $r, $pool);
>+    }
>     my %dirents = map { $_ => { kind => $d->{$_}->kind } } keys %$d;
>     $pool->clear;
>     if ($r != $cache->{r}) {
>-- 
>EW
>

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]