#!/bin/sh # # Copyright (c) 2008 Kevin Ballard # global test_description := ''git svn clone with percent escapes'' source ./lib-git-svn.sh test_expect_success 'setup svnrepo' ' mkdir project project/trunk project/branches project/tags && echo foo > project/trunk/foo && svn_cmd import -m "$test_description" project "$svnrepo/pr ject" && svn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \ "$svnrepo/pr ject/branches/b" && svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \ "$svnrepo/pr ject/tags/v1" && rm -rf project && maybe_start_httpd ' test_expect_success 'test clone with percent escapes' ' git svn clone "$svnrepo/pr%20ject" clone && ( cd clone && git rev-parse refs/remotes/git-svn ) ' # SVN works either way, so should we... test_expect_success 'svn checkout with percent escapes' ' svn_cmd checkout "$svnrepo/pr%20ject" svn.percent && svn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk ' test_expect_success 'svn checkout with space' ' svn_cmd checkout "$svnrepo/pr ject" svn.space && svn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk ' test_expect_success 'test clone trunk with percent escapes and minimize-url' ' git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize && ( cd minimize && git rev-parse refs/remotes/git-svn ) ' test_expect_success 'test clone trunk with percent escapes' ' git svn clone "$svnrepo/pr%20ject/trunk" trunk && ( cd trunk && git rev-parse refs/remotes/git-svn ) ' test_expect_success 'test clone --stdlayout with percent escapes' ' git svn clone --stdlayout "$svnrepo/pr%20ject" percent && ( cd percent && git rev-parse refs/remotes/origin/trunk^0 && git rev-parse refs/remotes/origin/b^0 && git rev-parse refs/remotes/origin/tags/v1^0 ) ' test_expect_success 'test clone -s with unescaped space' ' git svn clone -s "$svnrepo/pr ject" --prefix origin/ space && ( cd space && git rev-parse refs/remotes/origin/trunk^0 && git rev-parse refs/remotes/origin/b^0 && git rev-parse refs/remotes/origin/tags/v1^0 ) ' stop_httpd test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn clone with percent escapes">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ <"setup svnrepo">)} { (SQ <"\n"> <"\tmkdir project project/trunk project/branches project/tags &&\n"> <"\techo foo > project/trunk/foo &&\n"> <"\tsvn_cmd import -m \"$test_description\" project \"$svnrepo/pr ject\" &&\n"> <"\tsvn_cmd cp -m \"branch\" \"$svnrepo/pr ject/trunk\" \\\n"> <"\t \"$svnrepo/pr ject/branches/b\" &&\n"> <"\tsvn_cmd cp -m \"tag\" \"$svnrepo/pr ject/trunk\" \\\n"> <"\t \"$svnrepo/pr ject/tags/v1\" &&\n"> <"\trm -rf project &&\n"> <"\tmaybe_start_httpd\n"> ) } ) (C {(test_expect_success)} {(SQ <"test clone with percent escapes">)} { (SQ <"\n"> <"\tgit svn clone \"$svnrepo/pr%20ject\" clone &&\n"> <"\t(\n"> <"\t\tcd clone &&\n"> <"\t\tgit rev-parse refs/remotes/git-svn\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"svn checkout with percent escapes">)} { (SQ <"\n"> <"\tsvn_cmd checkout \"$svnrepo/pr%20ject\" svn.percent &&\n"> <"\tsvn_cmd checkout \"$svnrepo/pr%20ject/trunk\" svn.percent.trunk\n"> ) } ) (C {(test_expect_success)} {(SQ <"svn checkout with space">)} { (SQ <"\n"> <"\tsvn_cmd checkout \"$svnrepo/pr ject\" svn.space &&\n"> <"\tsvn_cmd checkout \"$svnrepo/pr ject/trunk\" svn.space.trunk\n"> ) } ) (C {(test_expect_success)} {(SQ <"test clone trunk with percent escapes and minimize-url">)} { (SQ <"\n"> <"\tgit svn clone --minimize-url \"$svnrepo/pr%20ject/trunk\" minimize &&\n"> <"\t(\n"> <"\t\tcd minimize &&\n"> <"\t\tgit rev-parse refs/remotes/git-svn\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"test clone trunk with percent escapes">)} { (SQ <"\n"> <"\tgit svn clone \"$svnrepo/pr%20ject/trunk\" trunk &&\n"> <"\t(\n"> <"\t\tcd trunk &&\n"> <"\t\tgit rev-parse refs/remotes/git-svn\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"test clone --stdlayout with percent escapes">)} { (SQ <"\n"> <"\tgit svn clone --stdlayout \"$svnrepo/pr%20ject\" percent &&\n"> <"\t(\n"> <"\t\tcd percent &&\n"> <"\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n"> <"\t\tgit rev-parse refs/remotes/origin/b^0 &&\n"> <"\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"test clone -s with unescaped space">)} { (SQ <"\n"> <"\tgit svn clone -s \"$svnrepo/pr ject\" --prefix origin/ space &&\n"> <"\t(\n"> <"\t\tcd space &&\n"> <"\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n"> <"\t\tgit rev-parse refs/remotes/origin/b^0 &&\n"> <"\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n"> <"\t)\n"> ) } ) (C {(stop_httpd)}) (C {(test_done)}) ] )