Merge git://git.bogomips.org/git-svn
authorJunio C Hamano <gitster@pobox.com>
Mon, 8 Sep 2008 21:15:17 +0000 (14:15 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 Sep 2008 21:15:17 +0000 (14:15 -0700)
* git://git.bogomips.org/git-svn:
git-svn: fix handling of even funkier branch names

git-svn.perl
t/t9118-git-svn-funky-branch-names.sh
index ee3f5edb60c756ba82e92389b9f77aae00c6768b..ecacf74c22b1d74fc17e5dbab511b86d127f2eb9 100755 (executable)
@@ -4025,6 +4025,7 @@ sub gs_do_switch {
                }
        }
        $ra ||= $self;
+       $url_b = escape_url($url_b);
        my $reporter = $ra->do_switch($rev_b, '', 1, $url_b, $editor, $pool);
        my @lock = $SVN::Core::VERSION ge '1.2.0' ? (undef) : ();
        $reporter->set_path('', $rev_a, 0, @lock, $pool);
index 3281cbd3472a8da58c4f6f0f3965b5810705b0e9..43ceb75d59a9abb4375dc33b646e1f272dec20b3 100755 (executable)
@@ -6,6 +6,10 @@
 test_description='git-svn funky branch names'
 . ./lib-git-svn.sh
 
+# Abo-Uebernahme (Bug #994)
+scary_uri='Abo-Uebernahme%20%28Bug%20%23994%29'
+scary_ref='Abo-Uebernahme%20(Bug%20#994)'
+
 test_expect_success 'setup svnrepo' '
        mkdir project project/trunk project/branches project/tags &&
        echo foo > project/trunk/foo &&
@@ -15,6 +19,8 @@ test_expect_success 'setup svnrepo' '
                        "$svnrepo/pr ject/branches/fun plugin" &&
        svn cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
                              "$svnrepo/pr ject/branches/more fun plugin!" &&
+       svn cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \
+                     "$svnrepo/pr ject/branches/$scary_uri" &&
        start_httpd
        '
 
@@ -23,6 +29,7 @@ test_expect_success 'test clone with funky branch names' '
        cd project &&
                git rev-parse "refs/remotes/fun%20plugin" &&
                git rev-parse "refs/remotes/more%20fun%20plugin!" &&
+               git rev-parse "refs/remotes/$scary_ref" &&
        cd ..
        '
 
@@ -35,6 +42,15 @@ test_expect_success 'test dcommit to funky branch' "
        cd ..
        "
 
+test_expect_success 'test dcommit to scary branch' '
+       cd project &&
+       git reset --hard "refs/remotes/$scary_ref" &&
+       echo urls are scary >> foo &&
+       git commit -m "eep" -- foo &&
+       git svn dcommit &&
+       cd ..
+       '
+
 stop_httpd
 
 test_done