diff --git a/tests/test-clone.t b/tests/test-clone.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1jbG9uZS50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1jbG9uZS50 100755
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -23,8 +23,7 @@
   $ hg clone -r alpha gitrepo hgrepo-a | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-a
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
   @  changeset:   0:3442585be8a6
      tag:         alpha
      tag:         default/master
@@ -33,10 +32,8 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -38,10 +35,9 @@
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-b
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/beta
   |  tag:         tip
@@ -56,6 +52,3 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-
-  $ cd ..
diff --git a/tests/test-conflict-1.t b/tests/test-conflict-1.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1jb25mbGljdC0xLnQ=..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1jb25mbGljdC0xLnQ= 100644
--- a/tests/test-conflict-1.t
+++ b/tests/test-conflict-1.t
@@ -55,6 +55,5 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
@@ -59,6 +58,6 @@
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    3:1,2   6c53bc0f062f   1970-01-01 00:00 +0000   test
   |\     merge to C
   | |
@@ -71,5 +70,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
diff --git a/tests/test-conflict-2.t b/tests/test-conflict-2.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1jb25mbGljdC0yLnQ=..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1jb25mbGljdC0yLnQ= 100644
--- a/tests/test-conflict-2.t
+++ b/tests/test-conflict-2.t
@@ -55,6 +55,5 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
@@ -59,6 +58,6 @@
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    3:1,2   120385945d08   1970-01-01 00:00 +0000   test
   |\     merge to B
   | |
@@ -71,5 +70,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
diff --git a/tests/test-convergedmerge.t b/tests/test-convergedmerge.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1jb252ZXJnZWRtZXJnZS50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1jb252ZXJnZWRtZXJnZS50 100644
--- a/tests/test-convergedmerge.t
+++ b/tests/test-convergedmerge.t
@@ -56,6 +56,5 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
@@ -60,6 +59,6 @@
   $ echo % expect the same revision ids as above
   % expect the same revision ids as above
-  $ hg log --graph --style compact | sed 's/\[.*\]//g'
+  $ hg -R hgrepo2 log --graph --style compact | sed 's/\[.*\]//g'
   @    4:1,3   eaa21d002113   1970-01-01 00:00 +0000   test
   |\     merge
   | |
@@ -75,5 +74,3 @@
   o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
        origin
   
-
-  $ cd ..
diff --git a/tests/test-empty-working-tree.t b/tests/test-empty-working-tree.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1lbXB0eS13b3JraW5nLXRyZWUudA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1lbXB0eS13b3JraW5nLXRyZWUudA== 100644
--- a/tests/test-empty-working-tree.t
+++ b/tests/test-empty-working-tree.t
@@ -22,11 +22,10 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
-
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit 678256865a8c85ae925bf834369264193c88f8de
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:00 2007 +0000
   
       empty
@@ -28,7 +27,5 @@
   commit 678256865a8c85ae925bf834369264193c88f8de
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:00 2007 +0000
   
       empty
-
-  $ cd ..
diff --git a/tests/test-encoding.t b/tests/test-encoding.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1lbmNvZGluZy50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1lbmNvZGluZy50 100644
--- a/tests/test-encoding.t
+++ b/tests/test-encoding.t
@@ -112,8 +112,8 @@
   pushing to ../gitrepo2
   searching for changes
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit da0edb01d4f3d1abf08b1be298379b0b2960e680
   Author: t\xe9st \xe8nc\xf6d\xeeng <test@example.org> (esc)
   Date:   Mon Jan 1 00:00:13 2007 +0000
@@ -137,5 +137,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add älphà
-
-  $ cd ..
diff --git a/tests/test-file-removal.t b/tests/test-file-removal.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1maWxlLXJlbW92YWwudA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1maWxlLXJlbW92YWwudA== 100644
--- a/tests/test-file-removal.t
+++ b/tests/test-file-removal.t
@@ -83,8 +83,8 @@
   pushing to ../gitrepo2
   searching for changes
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ cd ..
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit b991de8952c482a7cd51162674ffff8474862218
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:14 2007 +0000
@@ -114,5 +114,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
diff --git a/tests/test-git-clone.t b/tests/test-git-clone.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1naXQtY2xvbmUudA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1naXQtY2xvbmUudA== 100755
--- a/tests/test-git-clone.t
+++ b/tests/test-git-clone.t
@@ -16,8 +16,7 @@
   $ hg clone gitrepo hgrepo | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo
-  $ hg log --graph  | grep -v ': *master'
+  $ hg -R hgrepo log --graph  | grep -v ': *master'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/master
   |  tag:         tip
@@ -33,5 +32,5 @@
 
   $ echo % we should have some bookmarks
   % we should have some bookmarks
-  $ hg book
+  $ hg -R hgrepo book
    * master                    1:7bcd915dc873
diff --git a/tests/test-git-submodules.t b/tests/test-git-submodules.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1naXQtc3VibW9kdWxlcy50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1naXQtc3VibW9kdWxlcy50 100644
--- a/tests/test-git-submodules.t
+++ b/tests/test-git-submodules.t
@@ -52,8 +52,7 @@
   $ hg clone gitrepo2 hgrepo | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo
-  $ hg log --graph  | grep -v ': *master'
+  $ hg -R hgrepo log --graph  | grep -v ': *master'
   @  changeset:   2:76fda365fbbb
   |  tag:         default/master
   |  tag:         tip
@@ -74,5 +73,5 @@
 
   $ echo % we should have some bookmarks
   % we should have some bookmarks
-  $ hg book
+  $ hg -R hgrepo book
    * master                    2:76fda365fbbb
diff --git a/tests/test-hg-author.t b/tests/test-hg-author.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1oZy1hdXRob3IudA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1oZy1hdXRob3IudA== 100644
--- a/tests/test-hg-author.t
+++ b/tests/test-hg-author.t
@@ -127,8 +127,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   8 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
   @  changeset:   8:efec0270e295
   |  tag:         default/master
   |  tag:         tip
@@ -177,10 +176,7 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
-  $ cd gitrepo
-  $ git log --pretty=medium master
+  $ git --git-dir=gitrepo/.git log --pretty=medium master
   commit 1e03e913eca571b86ee06d3c1ddd795dde9ca917
   Author: test ?test@example.com <test ?test@example.com>
   Date:   Mon Jan 1 00:00:18 2007 +0000
@@ -234,5 +230,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
diff --git a/tests/test-hg-branch.t b/tests/test-hg-branch.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1oZy1icmFuY2gudA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1oZy1icmFuY2gudA== 100644
--- a/tests/test-hg-branch.t
+++ b/tests/test-hg-branch.t
@@ -60,8 +60,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | $filterhash | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | $filterhash | egrep -v ': *(not-master|master)'
   o  changeset:   2:05aed681ccb3
   |  branch:      gamma
   |  tag:         default/master
@@ -81,5 +80,3 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
diff --git a/tests/test-hg-tags.t b/tests/test-hg-tags.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1oZy10YWdzLnQ=..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1oZy10YWdzLnQ= 100644
--- a/tests/test-hg-tags.t
+++ b/tests/test-hg-tags.t
@@ -50,8 +50,7 @@
   $ hg clone gitrepo hgrepo2 | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo2
-  $ hg log --graph | egrep -v ': *(not-master|master)'
+  $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
   @  changeset:   1:d529e9229f6d
   |  tag:         default/master
   |  tag:         tip
@@ -69,5 +68,5 @@
 
   $ echo % the tag should be in .hgtags
   % the tag should be in .hgtags
-  $ cat .hgtags
+  $ cat hgrepo2/.hgtags
   3442585be8a60c6cd476bbc4e45755339f2a23ef alpha
@@ -73,3 +72,1 @@
   3442585be8a60c6cd476bbc4e45755339f2a23ef alpha
-
-  $ cd ..
diff --git a/tests/test-incoming.t b/tests/test-incoming.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1pbmNvbWluZy50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1pbmNvbWluZy50 100755
--- a/tests/test-incoming.t
+++ b/tests/test-incoming.t
@@ -17,7 +17,6 @@
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
-  $ cd hgrepo
-  $ hg incoming | grep -v 'no changes found' | grep -v 'bookmark:'
+  $ hg -R hgrepo incoming | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
 
@@ -22,6 +21,6 @@
   comparing with $TESTTMP/gitrepo
 
-  $ cd ../gitrepo
+  $ cd gitrepo
   $ echo beta > beta
   $ git add beta
   $ fn_git_commit -m 'add beta'
@@ -25,4 +24,5 @@
   $ echo beta > beta
   $ git add beta
   $ fn_git_commit -m 'add beta'
+  $ cd ..
 
@@ -28,6 +28,5 @@
 
-  $ cd ../hgrepo
-  $ hg incoming | grep -v 'no changes found' | grep -v 'bookmark:'
+  $ hg -R hgrepo incoming | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
   changeset:   1:9497a4ee62e1
   user:        test <test@example.org>
@@ -35,7 +34,7 @@
   summary:     add beta
   
 
-  $ cd ../gitrepo
+  $ cd gitrepo
   $ git checkout -b b1 HEAD^
   Switched to a new branch 'b1'
   $ mkdir d
@@ -47,7 +46,6 @@
   $ echo gamma 2 >> d/gamma
   $ git add d/gamma
   $ fn_git_commit -m'add d/gamma line 2'
-
   $ cd ../hgrepo
   $ hg incoming -p | grep -v 'no changes found' | grep -v 'bookmark:'
   comparing with $TESTTMP/gitrepo
diff --git a/tests/test-merge.t b/tests/test-merge.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1tZXJnZS50..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1tZXJnZS50 100644
--- a/tests/test-merge.t
+++ b/tests/test-merge.t
@@ -45,6 +45,5 @@
   searching for changes
 
   $ cd ..
-  $ cd gitrepo2
   $ echo % git log in repo pushed from hg
   % git log in repo pushed from hg
@@ -49,6 +48,6 @@
   $ echo % git log in repo pushed from hg
   % git log in repo pushed from hg
-  $ git log --pretty=medium master | sed 's/\.\.\.//g'
+  $ git --git-dir=gitrepo2 log --pretty=medium master | sed 's/\.\.\.//g'
   commit 5806851511aaf3bfe813ae3a86c5027165fa9b96
   Merge: e5023f9 9497a4e
   Author: test <test@example.org>
@@ -73,7 +72,7 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-  $ git log --pretty=medium beta | sed 's/\.\.\.//g'
+  $ git --git-dir=gitrepo2 log --pretty=medium beta | sed 's/\.\.\.//g'
   commit 9497a4ee62e16ee641860d7677cdb2589ea15554
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:11 2007 +0000
@@ -85,5 +84,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
diff --git a/tests/test-octopus.t b/tests/test-octopus.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1vY3RvcHVzLnQ=..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1vY3RvcHVzLnQ= 100644
--- a/tests/test-octopus.t
+++ b/tests/test-octopus.t
@@ -69,4 +69,5 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
+  $ cd ..
 
@@ -72,6 +73,5 @@
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium | sed s/\\.\\.\\.//g
+  $ git --git-dir=gitrepo2 log --pretty=medium | sed s/\\.\\.\\.//g
   commit f0c7ec180419a130636d0c333fc34c1462cab4b5
   Merge: d8e22dd 9497a4e e5023f9
   Author: test <test@example.org>
@@ -102,5 +102,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       add alpha
-
-  $ cd ..
diff --git a/tests/test-pull-after-strip.t b/tests/test-pull-after-strip.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC1wdWxsLWFmdGVyLXN0cmlwLnQ=..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC1wdWxsLWFmdGVyLXN0cmlwLnQ= 100755
--- a/tests/test-pull-after-strip.t
+++ b/tests/test-pull-after-strip.t
@@ -34,8 +34,7 @@
   $ hg clone -r alpha gitrepo hgrepo-a | grep -v '^updating'
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-a
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
   @  changeset:   0:3442585be8a6
      tag:         alpha
      tag:         default/master
@@ -44,10 +43,8 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-
-  $ cd ..
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -49,10 +46,9 @@
   $ echo % clone a branch
   % clone a branch
   $ hg clone -r beta gitrepo hgrepo-b | grep -v '^updating'
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ cd hgrepo-b
-  $ hg log --graph | egrep -v ': *(beta|master)'
+  $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
   @  changeset:   1:7bcd915dc873
   |  tag:         default/beta
   |  tag:         tip
@@ -67,8 +63,6 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
-  $ cd ..
-
   $ cd gitrepo
   $ echo beta line 2 >> beta
   $ git add beta
diff --git a/tests/test-tree-decomposition.t b/tests/test-tree-decomposition.t
index 675f19af79cafd4a95677bf73c4d2663f5cc8022_dGVzdHMvdGVzdC10cmVlLWRlY29tcG9zaXRpb24udA==..6cc99298b69e974576e02be1bc9ee801a54c3400_dGVzdHMvdGVzdC10cmVlLWRlY29tcG9zaXRpb24udA== 100644
--- a/tests/test-tree-decomposition.t
+++ b/tests/test-tree-decomposition.t
@@ -41,4 +41,5 @@
   $ hg push ../gitrepo2
   pushing to ../gitrepo2
   searching for changes
+  $ cd ..
 
@@ -44,6 +45,5 @@
 
-  $ cd ../gitrepo2
-  $ git log --pretty=medium
+  $ git --git-dir=gitrepo2 log --pretty=medium
   commit 6e0dbd8cd92ed4823c69cb48d8a2b81f904e6e69
   Author: test <test@example.org>
   Date:   Mon Jan 1 00:00:12 2007 +0000
@@ -61,5 +61,3 @@
   Date:   Mon Jan 1 00:00:10 2007 +0000
   
       initial
-
-  $ cd ..