git/t/t9118-git-svn-funky-branch-names.sh
Eric Wong cfbe7ab333 git-svn: support for funky branch and project names over HTTP(S)
SVN requires that paths be URI-escaped for HTTP(S) repositories.
file:// and svn:// repositories do not need these rules.

Additionally, accessing individual paths inside repositories
(check_path() and get_log() do NOT require escapes to function
and in fact it breaks things).

Noticed-by: Michael J. Cohen <mjc@cruiseplanners.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-12 00:22:49 -08:00

41 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2007 Eric Wong
#
test_description='git-svn funky branch names'
. ./lib-git-svn.sh
test_expect_success 'setup svnrepo' "
mkdir project project/trunk project/branches project/tags &&
echo foo > project/trunk/foo &&
svn import -m '$test_description' project \"$svnrepo/pr ject\" &&
rm -rf project &&
svn cp -m 'fun' \"$svnrepo/pr ject/trunk\" \
\"$svnrepo/pr ject/branches/fun plugin\" &&
svn cp -m 'more fun!' \"$svnrepo/pr ject/branches/fun plugin\" \
\"$svnrepo/pr ject/branches/more fun plugin!\" &&
start_httpd
"
test_expect_success 'test clone with funky branch names' "
git svn clone -s \"$svnrepo/pr ject\" project &&
cd project &&
git rev-parse 'refs/remotes/fun%20plugin' &&
git rev-parse 'refs/remotes/more%20fun%20plugin!' &&
cd ..
"
test_expect_success 'test dcommit to funky branch' "
cd project &&
git reset --hard 'refs/remotes/more%20fun%20plugin!' &&
echo hello >> foo &&
git commit -m 'hello' -- foo &&
git svn dcommit &&
cd ..
"
stop_httpd
test_done