Merge branch 'jk/a-thread-only-dies-once' into maint
[gitweb.git] / contrib / remote-helpers / test-hg-hg-git.sh
index 3e76d9fb60bff8b25f5b2751c6e11cfabb6c9dc6..9aaf0436695c940ff8c1aa51118d66f9a661efd9 100755 (executable)
@@ -101,14 +101,83 @@ setup () {
        git config --global receive.denycurrentbranch warn
        git config --global remote-hg.hg-git-compat true
 
-       export HGEDITOR=/usr/bin/true
+       HGEDITOR=/usr/bin/true
 
-       export GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230"
-       export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
+       GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230"
+       GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
+       export HGEDITOR GIT_AUTHOR_DATE GIT_COMMITTER_DATE
 }
 
 setup
 
+test_expect_success 'executable bit' '
+       mkdir -p tmp && cd tmp &&
+       test_when_finished "cd .. && rm -rf tmp" &&
+
+       (
+       git init -q gitrepo &&
+       cd gitrepo &&
+       echo alpha > alpha &&
+       chmod 0644 alpha &&
+       git add alpha &&
+       git commit -m "add alpha" &&
+       chmod 0755 alpha &&
+       git add alpha &&
+       git commit -m "set executable bit" &&
+       chmod 0644 alpha &&
+       git add alpha &&
+       git commit -m "clear executable bit"
+       ) &&
+
+       for x in hg git; do
+               (
+               hg_clone_$x gitrepo hgrepo-$x &&
+               cd hgrepo-$x &&
+               hg_log . &&
+               hg manifest -r 1 -v &&
+               hg manifest -v
+               ) > output-$x &&
+
+               git_clone_$x hgrepo-$x gitrepo2-$x &&
+               git_log gitrepo2-$x > log-$x
+       done &&
+       cp -r log-* output-* /tmp/foo/ &&
+
+       test_cmp output-hg output-git &&
+       test_cmp log-hg log-git
+'
+
+test_expect_success 'symlink' '
+       mkdir -p tmp && cd tmp &&
+       test_when_finished "cd .. && rm -rf tmp" &&
+
+       (
+       git init -q gitrepo &&
+       cd gitrepo &&
+       echo alpha > alpha &&
+       git add alpha &&
+       git commit -m "add alpha" &&
+       ln -s alpha beta &&
+       git add beta &&
+       git commit -m "add beta"
+       ) &&
+
+       for x in hg git; do
+               (
+               hg_clone_$x gitrepo hgrepo-$x &&
+               cd hgrepo-$x &&
+               hg_log . &&
+               hg manifest -v
+               ) > output-$x &&
+
+               git_clone_$x hgrepo-$x gitrepo2-$x &&
+               git_log gitrepo2-$x > log-$x
+       done &&
+
+       test_cmp output-hg output-git &&
+       test_cmp log-hg log-git
+'
+
 test_expect_success 'merge conflict 1' '
        mkdir -p tmp && cd tmp &&
        test_when_finished "cd .. && rm -rf tmp" &&
@@ -227,7 +296,8 @@ test_expect_success 'encoding' '
        git add alpha &&
        git commit -m "add älphà" &&
 
-       export GIT_AUTHOR_NAME="tést èncödîng" &&
+       GIT_AUTHOR_NAME="tést èncödîng" &&
+       export GIT_AUTHOR_NAME &&
        echo beta > beta &&
        git add beta &&
        git commit -m "add beta" &&