* git-svn: regression with funny chars in svn repo url
@ 2008-04-01 18:11 Panagiotis Vossos
2008-04-07 8:11 ` Eric Wong
0 siblings, 1 reply; 5+ messages in thread
From: Panagiotis Vossos @ 2008-04-01 18:11 UTC (permalink / raw)
To: git
I keep a copy of the gtk+ svn repository on my machine and I have
noticed the following bug with git-svn:
~/gitproj/gtk+$ which git-svn
/usr/local/bin/git-svn
~/gitproj/gtk+$ ls -l /usr/local/bin/git-svn
lrwxrwxrwx 1 root staff 39 2008-03-30 07:45 /usr/local/bin/git-svn ->
../encap/git-1.5.4_20080328/bin/git-svn
~/gitproj/gtk+$ git-svn --version
git-svn version 1.5.4.5 (svn 1.4.6)
~/gitproj/gtk+$ git-svn rebase
Apache got a malformed URI: REPORT request failed on
'/svn/gtk+/!svn/vcc/default': Unusable URI: it does not refer to this
repository at /usr/local/bin/git-svn line 3821
This bug did not exist in a previous version:
vozzer@kermit:~/gitproj/gtk+$ ls -l
/usr/local/encap/git-1.5.3_20071207/bin/git-svn
-rwxr-xr-x 1 root staff 119648 2007-12-08 10:53
/usr/local/encap/git-1.5.3_20071207/bin/git-svn
vozzer@kermit:~/gitproj/gtk+$
/usr/local/encap/git-1.5.3_20071207/bin/git-svn --version
git-svn version 1.5.3.7.8.g8e742 (svn 1.4.6)
vozzer@kermit:~/gitproj/gtk+$
/usr/local/encap/git-1.5.3_20071207/bin/git-svn rebase
M gtk/gtk-builder-convert
M ChangeLog
r19608 = af3d481e25db0e168a33b94e14480d72af5effe4 (gtk-2-12)
[snipped]
, proceeds normally. I have included the output of `git-svn
--version' above for both versions,
but also take note of the encap directories for approximate dates: the
working version was
built from a fresh checkout on 2007-12-07, the non-working version was
built from
yesterdays checkout.
For reference, the url for the gtk+ svn repo is:
http://svn.gnome.org/svn/gtk+/trunk
I initialized the git-svn repo with the usual '-T trunk -t tags -b
branches' args.
regards,
panagiotis.
ps. please cc me when replying, I have not subscribed to the list.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: git-svn: regression with funny chars in svn repo url
2008-04-01 18:11 git-svn: regression with funny chars in svn repo url Panagiotis Vossos
@ 2008-04-07 8:11 ` Eric Wong
2008-04-08 21:54 ` Panagiotis Vossos
0 siblings, 1 reply; 5+ messages in thread
From: Eric Wong @ 2008-04-07 8:11 UTC (permalink / raw)
To: Panagiotis Vossos; +Cc: Junio C Hamano, git
Panagiotis Vossos <pavossos@gmail.com> wrote:
> I keep a copy of the gtk+ svn repository on my machine and I have
> noticed the following bug with git-svn:
>
> ~/gitproj/gtk+$ which git-svn
> /usr/local/bin/git-svn
>
> ~/gitproj/gtk+$ ls -l /usr/local/bin/git-svn
> lrwxrwxrwx 1 root staff 39 2008-03-30 07:45 /usr/local/bin/git-svn ->
> ../encap/git-1.5.4_20080328/bin/git-svn
>
> ~/gitproj/gtk+$ git-svn --version
> git-svn version 1.5.4.5 (svn 1.4.6)
>
> ~/gitproj/gtk+$ git-svn rebase
> Apache got a malformed URI: REPORT request failed on
> '/svn/gtk+/!svn/vcc/default': Unusable URI: it does not refer to this
> repository at /usr/local/bin/git-svn line 3821
I've known of this bug for a while but didn't track it down until
now. Please let me know if this fixes things for you and if
there are any regressions; thanks.
>From a9ebe54adf7ae2620fba1f638dee9566f8ccca82 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 7 Apr 2008 00:41:44 -0700
Subject: [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path
With this, git svn clone -s http://svn.gnome.org/svn/gtk+
is successful.
Also modified the funky rename test for this, which _does_
include escaped '+' signs for HTTP URLs. SVN seems to accept
either "+" or "%2B" in filenames and directories (just not the
main URL), so I'll leave it alone for now.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
git-svn.perl | 2 +-
t/t9115-git-svn-dcommit-funky-renames.sh | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index 81afb5c..d91ef7a 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3666,7 +3666,7 @@ sub escape_uri_only {
my ($uri) = @_;
my @tmp;
foreach (split m{/}, $uri) {
- s/([^\w.%-]|%(?![a-fA-F0-9]{2}))/sprintf("%%%02X",ord($1))/eg;
+ s/([^\w.%+-]|%(?![a-fA-F0-9]{2}))/sprintf("%%%02X",ord($1))/eg;
push @tmp, $_;
}
join('/', @tmp);
diff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh
index 182299c..835b1dc 100755
--- a/t/t9115-git-svn-dcommit-funky-renames.sh
+++ b/t/t9115-git-svn-dcommit-funky-renames.sh
@@ -49,6 +49,16 @@ test_expect_success 'rename pretty file into ugly one' '
git svn dcommit
'
+test_expect_success 'add a file with plus signs' '
+ echo .. > +_+ &&
+ git update-index --add +_+ &&
+ git commit -m plus &&
+ mkdir gtk+ &&
+ git mv +_+ gtk+/_+_ &&
+ git commit -m plus_dir &&
+ git svn dcommit
+ '
+
stop_httpd
test_done
--
Eric Wong
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: git-svn: regression with funny chars in svn repo url
2008-04-07 8:11 ` Eric Wong
@ 2008-04-08 21:54 ` Panagiotis Vossos
2008-05-11 0:10 ` Eric Wong
0 siblings, 1 reply; 5+ messages in thread
From: Panagiotis Vossos @ 2008-04-08 21:54 UTC (permalink / raw)
To: Eric Wong; +Cc: Junio C Hamano, git
On Mon, Apr 7, 2008 at 11:11 AM, Eric Wong <normalperson@yhbt.net> wrote:
> Panagiotis Vossos <pavossos@gmail.com> wrote:
> > I keep a copy of the gtk+ svn repository on my machine and I have
> > noticed the following bug with git-svn:
> >
> > ~/gitproj/gtk+$ git-svn --version
> > git-svn version 1.5.4.5 (svn 1.4.6)
> >
> > ~/gitproj/gtk+$ git-svn rebase
> > Apache got a malformed URI: REPORT request failed on
> > '/svn/gtk+/!svn/vcc/default': Unusable URI: it does not refer to this
> > repository at /usr/local/bin/git-svn line 3821
>
> I've known of this bug for a while but didn't track it down until
> now. Please let me know if this fixes things for you and if
> there are any regressions; thanks.
>
> From a9ebe54adf7ae2620fba1f638dee9566f8ccca82 Mon Sep 17 00:00:00 2001
> From: Eric Wong <normalperson@yhbt.net>
> Date: Mon, 7 Apr 2008 00:41:44 -0700
> Subject: [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path
>
> With this, git svn clone -s http://svn.gnome.org/svn/gtk+
> is successful.
First of all, thanks for your reply.
I applied the patch, but now 'git-svn rebase' gives me
a different error.
first, some context (I am on a branch based on remote trunk):
~/gitproj/gtk+$ git log | head
commit e350328dee85f872db7689bf4ec7b577419333ee
Author: tvb <tvb@7eb1c76a-c725-0410-a3b5-a37faf6256f8>
Date: Sun Apr 6 03:10:23 2008 +0000
* gtk/gtkwidget.c: Clarified a g_warning message regarding
parsing accelerators from builder files.
git-svn-id: http://svn.gnome.org/svn/gtk+/trunk@19978
7eb1c76a-c725-0410-a3b5-a37faf6256f8
Trying with the latest git from the maint branch, with your patch applied:
~/gitproj/gtk+$ git-svn --version
git-svn version 1.5.4.5.dirty (svn 1.4.6)
~/gitproj/gtk+$ git-svn rebase
Index mismatch: d486332848849ca1e0555d4608df396946e20ad0 !=
ee3933caad632a093c1f7d98b813298ee806f333
rereading e350328dee85f872db7689bf4ec7b577419333ee
M Makefile.decl
D gtk/compose-parse.py
D gtk/gtkimcontextsimpleseqs.h
D gtk/gtkmountoperation.c
D gtk/gtkmountoperation.h
M gtk/gtkprogressbar.c
M gtk/gtkfilechooserentry.h
M gtk/gtktreeitem.c
M gtk/gtkfilechooserdialog.c
M gtk/gtkwidget.c
M gtk/gtktreemodelfilter.c
M gtk/gtkwidget.h
M gtk/gtkfixed.c
M gtk/gtkexpander.c
[lots and lots of lines snipped]
M gdk/gdkgc.h
M gdk/gdkcairo.h
M gdk/Makefile.am
M gdk/x11/gdkdisplay-x11.c
M gdk/x11/gdkkeys-x11.c
M gdk/x11/gdkscreen-x11.c
M gdk/x11/gdkprivate-x11.h
M gdk/x11/gdkgeometry-x11.c
M gdk/x11/gdkinput-x11.c
M gdk/x11/gdktestutils-x11.c
M gdk/x11/gdkwindow-x11.c
M gdk/x11/gdkcolor-x11.c
M gdk/x11/gdkmain-x11.c
M gdk/x11/gdkgc-x11.c
M Makefile.am
M examples/scribble-xinput/scribble-xinput.c
W: -empty_dir: trunk/modules/other/gail/tests
Last fetched revision of refs/remotes/trunk was r19978, but we are
about to fetch: r19234!
Trying with an old git version from my encap directory:
:~/gitproj/gtk+$ /usr/local/encap/git-1.5.3_20071207/bin/git-svn rebase
Index mismatch: d486332848849ca1e0555d4608df396946e20ad0 !=
ee3933caad632a093c1f7d98b813298ee806f333
rereading e350328dee85f872db7689bf4ec7b577419333ee
M gtk/gtkmenushell.c
M ChangeLog
r19981 = c8db7cf297fa5c309e8723b3eb0ee31be3413bf8 (trunk)
M gtk/gtkfilesystem.c
M ChangeLog
r19982 = f180aa33ce1d3b64305d4e7a7370f58027355767 (trunk)
M demos/gtk-demo/builder.c
M ChangeLog
r19985 = 36b09bfe222bd87c7463ac3042325c864fe5de7a (trunk)
First, rewinding head to replay your work on top of it...
HEAD is now at 36b09bf... 2008-04-08 Tor Lillqvist <tml@novell.com>
Fast-forwarded my/trunk to refs/remotes/trunk.
Before reverting your patch, I tried with the glib repository, that one
has no special chars in svn url:
~/gitproj/glib$ git-svn rebase
M glib/gunicode.h
M ChangeLog
r6843 = b38a1500f212791de7b179cf358d2593d3afcc9d (trunk)
First, rewinding head to replay your work on top of it...
HEAD is now at b38a150... 2008-04-08 Behdad Esfahbod <behdad@gnome.org>
Fast-forwarded my/trunk to refs/remotes/trunk.
~/gitproj/glib$
That one worked perfectly. Now I reverted your patch, and tried
again on gtk+ repo with vanilla upstream git from maint branch:
~/gitproj/gtk+$ git-svn rebase
Apache got a malformed URI: REPORT request failed on
'/svn/gtk+/!svn/vcc/default': Unusable URI: it does not refer to this
repository at /usr/local/bin/git-svn line 3821
regards,
panagiotis
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: git-svn: regression with funny chars in svn repo url
2008-04-08 21:54 ` Panagiotis Vossos
@ 2008-05-11 0:10 ` Eric Wong
2008-05-11 0:14 ` [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path Eric Wong
0 siblings, 1 reply; 5+ messages in thread
From: Eric Wong @ 2008-05-11 0:10 UTC (permalink / raw)
To: Panagiotis Vossos; +Cc: Junio C Hamano, git
Hi again, sorry I've forgotten about this issue for a while :x
Panagiotis Vossos <pavossos@gmail.com> wrote:
> On Mon, Apr 7, 2008 at 11:11 AM, Eric Wong <normalperson@yhbt.net> wrote:
>
> > Panagiotis Vossos <pavossos@gmail.com> wrote:
> > > I keep a copy of the gtk+ svn repository on my machine and I have
> > > noticed the following bug with git-svn:
> > >
> > > ~/gitproj/gtk+$ git-svn --version
> > > git-svn version 1.5.4.5 (svn 1.4.6)
> > >
> > > ~/gitproj/gtk+$ git-svn rebase
> > > Apache got a malformed URI: REPORT request failed on
> > > '/svn/gtk+/!svn/vcc/default': Unusable URI: it does not refer to this
> > > repository at /usr/local/bin/git-svn line 3821
> >
> > I've known of this bug for a while but didn't track it down until
> > now. Please let me know if this fixes things for you and if
> > there are any regressions; thanks.
> >
> > From a9ebe54adf7ae2620fba1f638dee9566f8ccca82 Mon Sep 17 00:00:00 2001
> > From: Eric Wong <normalperson@yhbt.net>
> > Date: Mon, 7 Apr 2008 00:41:44 -0700
> > Subject: [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path
> >
> > With this, git svn clone -s http://svn.gnome.org/svn/gtk+
> > is successful.
>
> First of all, thanks for your reply.
>
> I applied the patch, but now 'git-svn rebase' gives me
> a different error.
>
> first, some context (I am on a branch based on remote trunk):
>
> ~/gitproj/gtk+$ git log | head
> commit e350328dee85f872db7689bf4ec7b577419333ee
> Author: tvb <tvb@7eb1c76a-c725-0410-a3b5-a37faf6256f8>
> Date: Sun Apr 6 03:10:23 2008 +0000
>
> * gtk/gtkwidget.c: Clarified a g_warning message regarding
> parsing accelerators from builder files.
>
> git-svn-id: http://svn.gnome.org/svn/gtk+/trunk@19978
> 7eb1c76a-c725-0410-a3b5-a37faf6256f8
>
>
> Trying with the latest git from the maint branch, with your patch applied:
>
> ~/gitproj/gtk+$ git-svn --version
> git-svn version 1.5.4.5.dirty (svn 1.4.6)
>
> ~/gitproj/gtk+$ git-svn rebase
> Index mismatch: d486332848849ca1e0555d4608df396946e20ad0 !=
> ee3933caad632a093c1f7d98b813298ee806f333
> rereading e350328dee85f872db7689bf4ec7b577419333ee
> M Makefile.decl
> D gtk/compose-parse.py
> D gtk/gtkimcontextsimpleseqs.h
> D gtk/gtkmountoperation.c
> D gtk/gtkmountoperation.h
> M gtk/gtkprogressbar.c
> M gtk/gtkfilechooserentry.h
> M gtk/gtktreeitem.c
> M gtk/gtkfilechooserdialog.c
> M gtk/gtkwidget.c
> M gtk/gtktreemodelfilter.c
> M gtk/gtkwidget.h
> M gtk/gtkfixed.c
> M gtk/gtkexpander.c
> [lots and lots of lines snipped]
> M gdk/gdkgc.h
> M gdk/gdkcairo.h
> M gdk/Makefile.am
> M gdk/x11/gdkdisplay-x11.c
> M gdk/x11/gdkkeys-x11.c
> M gdk/x11/gdkscreen-x11.c
> M gdk/x11/gdkprivate-x11.h
> M gdk/x11/gdkgeometry-x11.c
> M gdk/x11/gdkinput-x11.c
> M gdk/x11/gdktestutils-x11.c
> M gdk/x11/gdkwindow-x11.c
> M gdk/x11/gdkcolor-x11.c
> M gdk/x11/gdkmain-x11.c
> M gdk/x11/gdkgc-x11.c
> M Makefile.am
> M examples/scribble-xinput/scribble-xinput.c
> W: -empty_dir: trunk/modules/other/gail/tests
> Last fetched revision of refs/remotes/trunk was r19978, but we are
> about to fetch: r19234!
Really weird. This could be a rev_db => rev_map migration issues, but I
haven't been able to reproduce any of it. However, for most users
(those not using noMetadata or useSvmProps options, just blowing away
rev_db is safe).
--
Eric Wong
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path
2008-05-11 0:10 ` Eric Wong
@ 2008-05-11 0:14 ` Eric Wong
0 siblings, 0 replies; 5+ messages in thread
From: Eric Wong @ 2008-05-11 0:14 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Panagiotis Vossos, git
With this, git svn clone -s http://svn.gnome.org/svn/gtk+
is successful.
Also modified the funky rename test for this, which _does_
include escaped '+' signs for HTTP URLs. SVN seems to accept
either "+" or "%2B" in filenames and directories (just not the
main URL), so I'll leave it alone for now.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
git-svn.perl | 2 +-
t/lib-git-svn.sh | 9 ++++++-
t/t9115-git-svn-dcommit-funky-renames.sh | 35 +++++++++++++++++++++++++++++-
3 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index e47b1ea..413e0b1 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3673,7 +3673,7 @@ sub escape_uri_only {
my ($uri) = @_;
my @tmp;
foreach (split m{/}, $uri) {
- s/([^\w.%-]|%(?![a-fA-F0-9]{2}))/sprintf("%%%02X",ord($1))/eg;
+ s/([^\w.%+-]|%(?![a-fA-F0-9]{2}))/sprintf("%%%02X",ord($1))/eg;
push @tmp, $_;
}
join('/', @tmp);
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index 9decd2e..d8f3355 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -73,11 +73,16 @@ for d in \
done
start_httpd () {
+ repo_base_path="$1"
if test -z "$SVN_HTTPD_PORT"
then
echo >&2 'SVN_HTTPD_PORT is not defined!'
return
fi
+ if test -z "$repo_base_path"
+ then
+ repo_base_path=svn
+ fi
mkdir "$GIT_DIR"/logs
@@ -90,13 +95,13 @@ LockFile logs/accept.lock
Listen 127.0.0.1:$SVN_HTTPD_PORT
LoadModule dav_module $SVN_HTTPD_MODULE_PATH/mod_dav.so
LoadModule dav_svn_module $SVN_HTTPD_MODULE_PATH/mod_dav_svn.so
-<Location /svn>
+<Location /$repo_base_path>
DAV svn
SVNPath $rawsvnrepo
</Location>
EOF
"$SVN_HTTPD_PATH" -f "$GIT_DIR"/httpd.conf -k start
- svnrepo=http://127.0.0.1:$SVN_HTTPD_PORT/svn
+ svnrepo="http://127.0.0.1:$SVN_HTTPD_PORT/$repo_base_path"
}
stop_httpd () {
diff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh
index 182299c..4acbcb0 100755
--- a/t/t9115-git-svn-dcommit-funky-renames.sh
+++ b/t/t9115-git-svn-dcommit-funky-renames.sh
@@ -9,7 +9,7 @@ test_description='git-svn dcommit can commit renames of files with ugly names'
test_expect_success 'load repository with strange names' "
svnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&
- start_httpd
+ start_httpd gtk+
"
test_expect_success 'init and fetch repository' "
@@ -49,6 +49,39 @@ test_expect_success 'rename pretty file into ugly one' '
git svn dcommit
'
+test_expect_success 'add a file with plus signs' '
+ echo .. > +_+ &&
+ git update-index --add +_+ &&
+ git commit -m plus &&
+ mkdir gtk+ &&
+ git mv +_+ gtk+/_+_ &&
+ git commit -m plus_dir &&
+ git svn dcommit
+ '
+
+test_expect_success 'clone the repository to test rebase' "
+ git svn clone $svnrepo test-rebase &&
+ cd test-rebase &&
+ echo test-rebase > test-rebase &&
+ git add test-rebase &&
+ git commit -m test-rebase &&
+ cd ..
+ "
+
+test_expect_success 'make a commit to test rebase' "
+ echo test-rebase-main > test-rebase-main &&
+ git add test-rebase-main &&
+ git commit -m test-rebase-main &&
+ git svn dcommit
+ "
+
+test_expect_success 'git-svn rebase works inside a fresh-cloned repository' "
+ cd test-rebase &&
+ git svn rebase &&
+ test -e test-rebase-main &&
+ test -e test-rebase
+ "
+
stop_httpd
test_done
--
Eric Wong
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-05-11 0:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-01 18:11 git-svn: regression with funny chars in svn repo url Panagiotis Vossos
2008-04-07 8:11 ` Eric Wong
2008-04-08 21:54 ` Panagiotis Vossos
2008-05-11 0:10 ` Eric Wong
2008-05-11 0:14 ` [PATCH] git-svn: fix cloning of HTTP URLs with '+' in their path Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).