t / t9120-git-svn-clone-with-percent-escapes.shon commit t4045: abstract away SHA-1-specific constants (5c02428)
   1#!/bin/sh
   2#
   3# Copyright (c) 2008 Kevin Ballard
   4#
   5
   6test_description='git svn clone with percent escapes'
   7. ./lib-git-svn.sh
   8
   9test_expect_success 'setup svnrepo' '
  10        mkdir project project/trunk project/branches project/tags &&
  11        echo foo > project/trunk/foo &&
  12        svn_cmd import -m "$test_description" project "$svnrepo/pr ject" &&
  13        svn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \
  14          "$svnrepo/pr ject/branches/b" &&
  15        svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \
  16          "$svnrepo/pr ject/tags/v1" &&
  17        rm -rf project &&
  18        maybe_start_httpd
  19'
  20
  21test_expect_success 'test clone with percent escapes' '
  22        git svn clone "$svnrepo/pr%20ject" clone &&
  23        (
  24                cd clone &&
  25                git rev-parse refs/remotes/git-svn
  26        )
  27'
  28
  29# SVN works either way, so should we...
  30
  31test_expect_success 'svn checkout with percent escapes' '
  32        svn_cmd checkout "$svnrepo/pr%20ject" svn.percent &&
  33        svn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk
  34'
  35
  36test_expect_success 'svn checkout with space' '
  37        svn_cmd checkout "$svnrepo/pr ject" svn.space &&
  38        svn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk
  39'
  40
  41test_expect_success 'test clone trunk with percent escapes and minimize-url' '
  42        git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize &&
  43        (
  44                cd minimize &&
  45                git rev-parse refs/remotes/git-svn
  46        )
  47'
  48
  49test_expect_success 'test clone trunk with percent escapes' '
  50        git svn clone "$svnrepo/pr%20ject/trunk" trunk &&
  51        (
  52                cd trunk &&
  53                git rev-parse refs/remotes/git-svn
  54        )
  55'
  56
  57test_expect_success 'test clone --stdlayout with percent escapes' '
  58        git svn clone --stdlayout "$svnrepo/pr%20ject" percent &&
  59        (
  60                cd percent &&
  61                git rev-parse refs/remotes/origin/trunk^0 &&
  62                git rev-parse refs/remotes/origin/b^0 &&
  63                git rev-parse refs/remotes/origin/tags/v1^0
  64        )
  65'
  66
  67test_expect_success 'test clone -s with unescaped space' '
  68        git svn clone -s "$svnrepo/pr ject" --prefix origin/ space &&
  69        (
  70                cd space &&
  71                git rev-parse refs/remotes/origin/trunk^0 &&
  72                git rev-parse refs/remotes/origin/b^0 &&
  73                git rev-parse refs/remotes/origin/tags/v1^0
  74        )
  75'
  76
  77stop_httpd
  78
  79test_done