summaryrefslogtreecommitdiff
path: root/git-svn.perl
diff options
context:
space:
mode:
authorGerrit Pape <pape@smarden.org>2008-07-06 19:28:50 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-07-07 19:56:16 (GMT)
commit2fe403e7452bd6e1e8232445cf5434ce8f1af973 (patch)
treefcb5b5f14ab2462f2e5f1ba921eddad41b7cd29e /git-svn.perl
parent6fc2a25e6215f1b1916a3da93bf7ddace8ba5310 (diff)
downloadgit-2fe403e7452bd6e1e8232445cf5434ce8f1af973.zip
git-2fe403e7452bd6e1e8232445cf5434ce8f1af973.tar.gz
git-2fe403e7452bd6e1e8232445cf5434ce8f1af973.tar.bz2
git-svn.perl: workaround assertions in svn library 1.5.0
With subversion 1.5.0 (C and perl libraries) the git-svn selftest t9101-git-svn-props.sh fails at test 25 and 26. The following commands cause assertions in the svn library $ cd deeply $ git-svn propget svn:ignore . perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_ra/ra_loader.c:674: svn_ra_get_dir: Assertion `*path != '/'' failed. Aborted $ git-svn propget svn:ignore .. perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_subr/path.c:120: svn_path_join: Assertion `is_canonical(component, clen)' failed. With this commit, git-svn makes sure the path doesn't start with a slash, and is not a dot, working around these assertions. The breakage was reported by Lucas Nussbaum through http://bugs.debian.org/489108 Signed-off-by: Gerrit Pape <pape@smarden.org> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-xgit-svn.perl2
1 files changed, 2 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl
index f789a6e..a366c89 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -643,6 +643,8 @@ sub canonicalize_path {
$path =~ s#/[^/]+/\.\.##g;
$path =~ s#/$##g;
$path =~ s#^\./## if $dot_slash_added;
+ $path =~ s#^/##;
+ $path =~ s#^\.$##;
return $path;
}