Merge branch 'nd/git-dir-pointing-at-gitfile'
[gitweb.git] / contrib / remote-helpers / test-bzr.sh
index 5dfa070b64e6e4607adaa436d4aa839c9de5f9e4..dce281f91195cde4937b935910ec73f597bb826a 100755 (executable)
@@ -12,86 +12,90 @@ if ! test_have_prereq PYTHON; then
        test_done
 fi
 
-if ! "$PYTHON_PATH" -c 'import bzrlib'; then
+if ! python -c 'import bzrlib'; then
        skip_all='skipping remote-bzr tests; bzr not available'
        test_done
 fi
 
 check () {
-       (cd $1 &&
-       git log --format='%s' -1 &&
-       git symbolic-ref HEAD) > actual &&
-       (echo $2 &&
-       echo "refs/heads/$3") > expected &&
+       echo $3 > expected &&
+       git --git-dir=$1/.git log --format='%s' -1 $2 > actual
        test_cmp expected actual
 }
 
 bzr whoami "A U Thor <author@example.com>"
 
 test_expect_success 'cloning' '
-  (bzr init bzrrepo &&
-  cd bzrrepo &&
-  echo one > content &&
-  bzr add content &&
-  bzr commit -m one
-  ) &&
-
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
-  check gitrepo one master
+       (
+       bzr init bzrrepo &&
+       cd bzrrepo &&
+       echo one > content &&
+       bzr add content &&
+       bzr commit -m one
+       ) &&
+
+       git clone "bzr::bzrrepo" gitrepo &&
+       check gitrepo HEAD one
 '
 
 test_expect_success 'pulling' '
-  (cd bzrrepo &&
-  echo two > content &&
-  bzr commit -m two
-  ) &&
+       (
+       cd bzrrepo &&
+       echo two > content &&
+       bzr commit -m two
+       ) &&
 
-  (cd gitrepo && git pull) &&
+       (cd gitrepo && git pull) &&
 
-  check gitrepo two master
+       check gitrepo HEAD two
 '
 
 test_expect_success 'pushing' '
-  (cd gitrepo &&
-  echo three > content &&
-  git commit -a -m three &&
-  git push
-  ) &&
-
-  echo three > expected &&
-  cat bzrrepo/content > actual &&
-  test_cmp expected actual
+       (
+       cd gitrepo &&
+       echo three > content &&
+       git commit -a -m three &&
+       git push
+       ) &&
+
+       echo three > expected &&
+       cat bzrrepo/content > actual &&
+       test_cmp expected actual
 '
 
 test_expect_success 'roundtrip' '
-  (cd gitrepo &&
-  git pull &&
-  git log --format="%s" -1 origin/master > actual) &&
-  echo three > expected &&
-  test_cmp expected actual &&
+       (
+       cd gitrepo &&
+       git pull &&
+       git log --format="%s" -1 origin/master > actual
+       ) &&
+       echo three > expected &&
+       test_cmp expected actual &&
 
-  (cd gitrepo && git push && git pull) &&
+       (cd gitrepo && git push && git pull) &&
 
-  (cd bzrrepo &&
-  echo four > content &&
-  bzr commit -m four
-  ) &&
+       (
+       cd bzrrepo &&
+       echo four > content &&
+       bzr commit -m four
+       ) &&
 
-  (cd gitrepo && git pull && git push) &&
+       (cd gitrepo && git pull && git push) &&
 
-  check gitrepo four master &&
+       check gitrepo HEAD four &&
 
-  (cd gitrepo &&
-  echo five > content &&
-  git commit -a -m five &&
-  git push && git pull
-  ) &&
+       (
+       cd gitrepo &&
+       echo five > content &&
+       git commit -a -m five &&
+       git push && git pull
+       ) &&
 
-  (cd bzrrepo && bzr revert) &&
+       (cd bzrrepo && bzr revert) &&
 
-  echo five > expected &&
-  cat bzrrepo/content > actual &&
-  test_cmp expected actual
+       echo five > expected &&
+       cat bzrrepo/content > actual &&
+       test_cmp expected actual
 '
 
 cat > expected <<EOF
@@ -101,29 +105,35 @@ cat > expected <<EOF
 EOF
 
 test_expect_success 'special modes' '
-  (cd bzrrepo &&
-  echo exec > executable
-  chmod +x executable &&
-  bzr add executable
-  bzr commit -m exec &&
-  ln -s content link
-  bzr add link
-  bzr commit -m link &&
-  mkdir dir &&
-  bzr add dir &&
-  bzr commit -m dir) &&
-
-  (cd gitrepo &&
-  git pull
-  git ls-tree HEAD > ../actual) &&
-
-  test_cmp expected actual &&
-
-  (cd gitrepo &&
-  git cat-file -p HEAD:link > ../actual) &&
-
-  printf content > expected &&
-  test_cmp expected actual
+       (
+       cd bzrrepo &&
+       echo exec > executable
+       chmod +x executable &&
+       bzr add executable
+       bzr commit -m exec &&
+       ln -s content link
+       bzr add link
+       bzr commit -m link &&
+       mkdir dir &&
+       bzr add dir &&
+       bzr commit -m dir
+       ) &&
+
+       (
+       cd gitrepo &&
+       git pull
+       git ls-tree HEAD > ../actual
+       ) &&
+
+       test_cmp expected actual &&
+
+       (
+       cd gitrepo &&
+       git cat-file -p HEAD:link > ../actual
+       ) &&
+
+       printf content > expected &&
+       test_cmp expected actual
 '
 
 cat > expected <<EOF
@@ -134,134 +144,145 @@ cat > expected <<EOF
 EOF
 
 test_expect_success 'moving directory' '
-  (cd bzrrepo &&
-  mkdir movedir &&
-  echo one > movedir/one &&
-  echo two > movedir/two &&
-  bzr add movedir &&
-  bzr commit -m movedir &&
-  bzr mv movedir movedir-new &&
-  bzr commit -m movedir-new) &&
-
-  (cd gitrepo &&
-  git pull &&
-  git ls-tree HEAD > ../actual) &&
-
-  test_cmp expected actual
+       (
+       cd bzrrepo &&
+       mkdir movedir &&
+       echo one > movedir/one &&
+       echo two > movedir/two &&
+       bzr add movedir &&
+       bzr commit -m movedir &&
+       bzr mv movedir movedir-new &&
+       bzr commit -m movedir-new
+       ) &&
+
+       (
+       cd gitrepo &&
+       git pull &&
+       git ls-tree HEAD > ../actual
+       ) &&
+
+       test_cmp expected actual
 '
 
 test_expect_success 'different authors' '
-  (cd bzrrepo &&
-  echo john >> content &&
-  bzr commit -m john \
-    --author "Jane Rey <jrey@example.com>" \
-    --author "John Doe <jdoe@example.com>") &&
-
-  (cd gitrepo &&
-  git pull &&
-  git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual) &&
-
-  echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected &&
-  test_cmp expected actual
+       (
+       cd bzrrepo &&
+       echo john >> content &&
+       bzr commit -m john \
+         --author "Jane Rey <jrey@example.com>" \
+         --author "John Doe <jdoe@example.com>"
+       ) &&
+
+       (
+       cd gitrepo &&
+       git pull &&
+       git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual
+       ) &&
+
+       echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected &&
+       test_cmp expected actual
 '
 
+# cleanup previous stuff
+rm -rf bzrrepo gitrepo
+
 test_expect_success 'fetch utf-8 filenames' '
-  mkdir -p tmp && cd tmp &&
-  test_when_finished "cd .. && rm -rf tmp && LC_ALL=C" &&
-
-  LC_ALL=en_US.UTF-8
-  export LC_ALL
-  (
-  bzr init bzrrepo &&
-  cd bzrrepo &&
-
-  echo test >> "ærø" &&
-  bzr add "ærø" &&
-  echo test >> "ø~?" &&
-  bzr add "ø~?" &&
-  bzr commit -m add-utf-8 &&
-  echo test >> "ærø" &&
-  bzr commit -m test-utf-8 &&
-  bzr rm "ø~?" &&
-  bzr mv "ærø" "ø~?" &&
-  bzr commit -m bzr-mv-utf-8
-  ) &&
-
-  (
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
-  cd gitrepo &&
-  git -c core.quotepath=false ls-files > ../actual
-  ) &&
-  echo "ø~?" > expected &&
-  test_cmp expected actual
+       test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" &&
+
+       LC_ALL=en_US.UTF-8
+       export LC_ALL
+
+       (
+       bzr init bzrrepo &&
+       cd bzrrepo &&
+
+       echo test >> "ærø" &&
+       bzr add "ærø" &&
+       echo test >> "ø~?" &&
+       bzr add "ø~?" &&
+       bzr commit -m add-utf-8 &&
+       echo test >> "ærø" &&
+       bzr commit -m test-utf-8 &&
+       bzr rm "ø~?" &&
+       bzr mv "ærø" "ø~?" &&
+       bzr commit -m bzr-mv-utf-8
+       ) &&
+
+       (
+       git clone "bzr::bzrrepo" gitrepo &&
+       cd gitrepo &&
+       git -c core.quotepath=false ls-files > ../actual
+       ) &&
+       echo "ø~?" > expected &&
+       test_cmp expected actual
 '
 
 test_expect_success 'push utf-8 filenames' '
-  mkdir -p tmp && cd tmp &&
-  test_when_finished "cd .. && rm -rf tmp && LC_ALL=C" &&
+       test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" &&
+
+       mkdir -p tmp && cd tmp &&
 
-  LC_ALL=en_US.UTF-8
-  export LC_ALL
+       LC_ALL=en_US.UTF-8
+       export LC_ALL
 
-  (
-  bzr init bzrrepo &&
-  cd bzrrepo &&
+       (
+       bzr init bzrrepo &&
+       cd bzrrepo &&
 
-  echo one >> content &&
-  bzr add content &&
-  bzr commit -m one
-  ) &&
+       echo one >> content &&
+       bzr add content &&
+       bzr commit -m one
+       ) &&
 
-  (
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
-  cd gitrepo &&
+       (
+       git clone "bzr::bzrrepo" gitrepo &&
+       cd gitrepo &&
 
-  echo test >> "ærø" &&
-  git add "ærø" &&
-  git commit -m utf-8 &&
+       echo test >> "ærø" &&
+       git add "ærø" &&
+       git commit -m utf-8 &&
 
-  git push
-  ) &&
+       git push
+       ) &&
 
-  (cd bzrrepo && bzr ls > ../actual) &&
-  printf "content\nærø\n" > expected &&
-  test_cmp expected actual
+       (cd bzrrepo && bzr ls > ../actual) &&
+       printf "content\nærø\n" > expected &&
+       test_cmp expected actual
 '
 
 test_expect_success 'pushing a merge' '
-  mkdir -p tmp && cd tmp &&
-  test_when_finished "cd .. && rm -rf tmp" &&
-
-  (
-  bzr init bzrrepo &&
-  cd bzrrepo &&
-  echo one > content &&
-  bzr add content &&
-  bzr commit -m one
-  ) &&
-
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
-
-  (
-  cd bzrrepo &&
-  echo two > content &&
-  bzr commit -m two
-  ) &&
-
-  (
-  cd gitrepo &&
-  echo three > content &&
-  git commit -a -m three &&
-  git fetch &&
-  git merge origin/master || true &&
-  echo three > content &&
-  git commit -a --no-edit &&
-  git push
-  ) &&
-
-  echo three > expected &&
-  cat bzrrepo/content > actual &&
-  test_cmp expected actual
+       test_when_finished "rm -rf bzrrepo gitrepo" &&
+
+       (
+       bzr init bzrrepo &&
+       cd bzrrepo &&
+       echo one > content &&
+       bzr add content &&
+       bzr commit -m one
+       ) &&
+
+       git clone "bzr::bzrrepo" gitrepo &&
+
+       (
+       cd bzrrepo &&
+       echo two > content &&
+       bzr commit -m two
+       ) &&
+
+       (
+       cd gitrepo &&
+       echo three > content &&
+       git commit -a -m three &&
+       git fetch &&
+       git merge origin/master || true &&
+       echo three > content &&
+       git commit -a --no-edit &&
+       git push
+       ) &&
+
+       echo three > expected &&
+       cat bzrrepo/content > actual &&
+       test_cmp expected actual
 '
 
 cat > expected <<EOF
@@ -271,71 +292,70 @@ origin/trunk
 EOF
 
 test_expect_success 'proper bzr repo' '
-  mkdir -p tmp && cd tmp &&
-  test_when_finished "cd .. && rm -rf tmp" &&
-
-  bzr init-repo bzrrepo &&
-
-  bzr init bzrrepo/trunk &&
-  (
-  cd bzrrepo/trunk &&
-  echo one >> content &&
-  bzr add content &&
-  bzr commit -m one
-  ) &&
-
-  bzr branch bzrrepo/trunk bzrrepo/branch &&
-  (
-  cd bzrrepo/branch &&
-  echo two >> content &&
-  bzr commit -m one
-  ) &&
-
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
-  (
-  cd gitrepo &&
-  git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual
-  ) &&
-
-  test_cmp ../expected actual
+       test_when_finished "rm -rf bzrrepo gitrepo" &&
+
+       bzr init-repo bzrrepo &&
+
+       (
+       bzr init bzrrepo/trunk &&
+       cd bzrrepo/trunk &&
+       echo one >> content &&
+       bzr add content &&
+       bzr commit -m one
+       ) &&
+
+       (
+       bzr branch bzrrepo/trunk bzrrepo/branch &&
+       cd bzrrepo/branch &&
+       echo two >> content &&
+       bzr commit -m one
+       ) &&
+
+       (
+       git clone "bzr::bzrrepo" gitrepo &&
+       cd gitrepo &&
+       git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual
+       ) &&
+
+       test_cmp expected actual
 '
 
 test_expect_success 'strip' '
-  # Do not imitate this style; always chdir inside a subshell instead
-  mkdir -p tmp && cd tmp &&
-  test_when_finished "cd .. && rm -rf tmp" &&
+       test_when_finished "rm -rf bzrrepo gitrepo" &&
 
-  (
-  bzr init bzrrepo &&
-  cd bzrrepo &&
+       (
+       bzr init bzrrepo &&
+       cd bzrrepo &&
 
-  echo one >> content &&
-  bzr add content &&
-  bzr commit -m one &&
+       echo one >> content &&
+       bzr add content &&
+       bzr commit -m one &&
 
-  echo two >> content &&
-  bzr commit -m two
-  ) &&
+       echo two >> content &&
+       bzr commit -m two
+       ) &&
 
-  git clone "bzr::$PWD/bzrrepo" gitrepo &&
+       git clone "bzr::bzrrepo" gitrepo &&
 
-  (
-  cd bzrrepo &&
-  bzr uncommit --force &&
+       (
+       cd bzrrepo &&
+       bzr uncommit --force &&
 
-  echo three >> content &&
-  bzr commit -m three &&
+       echo three >> content &&
+       bzr commit -m three &&
 
-  echo four >> content &&
-  bzr commit -m four &&
-  bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected
-  ) &&
+       echo four >> content &&
+       bzr commit -m four &&
+       bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected
+       ) &&
 
-  (cd gitrepo &&
-  git fetch &&
-  git log --format="%an %ad %s" --date=short origin/master > ../actual) &&
+       (
+       cd gitrepo &&
+       git fetch &&
+       git log --format="%an %ad %s" --date=short origin/master > ../actual
+       ) &&
 
-  test_cmp expected actual
+       test_cmp expected actual
 '
 
 test_done