Mercurial allows specifying which repository to use via the -R/--repository
option. Git allows a similar function using the --git-dir option. By using
these options, in many cases we can avoid checking the current directory.
This makes tests easier to understand, as you don't need to remember which
directory you're in to understand what's going on. It also makes tests easier
to write, as you don't need to remember to cd out of a directory when you're
done doing things there.
Thanks to Felipe Contreras for the patch which this was based on.
diff --git a/tests/test-clone.t b/tests/test-clone.t
--- 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,15 +32,12 @@
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
- $ 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
--- a/tests/test-conflict-1.t
+++ b/tests/test-conflict-1.t
@@ -55,10 +55,9 @@
$ 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
- $ 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
--- a/tests/test-conflict-2.t
+++ b/tests/test-conflict-2.t
@@ -55,10 +55,9 @@
$ 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
- $ 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
--- a/tests/test-convergedmerge.t
+++ b/tests/test-convergedmerge.t
@@ -56,10 +56,9 @@
$ 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
- $ 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
--- a/tests/test-empty-working-tree.t
+++ b/tests/test-empty-working-tree.t
@@ -22,13 +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 <te...@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
--- 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 <te...@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
--- 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 <te...@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
--- 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
--- 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
--- 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 ?te...@example.com <test ?te...@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
--- 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
--- 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,7 +68,5 @@
$ echo % the tag should be in .hgtags
% the tag should be in .hgtags
- $ cat .hgtags
+ $ cat hgrepo2/.hgtags
3442585be8a60c6cd476bbc4e45755339f2a23ef alpha
-
- $ cd ..
diff --git a/tests/test-incoming.t b/tests/test-incoming.t
--- a/tests/test-incoming.t
+++ b/tests/test-incoming.t
@@ -17,17 +17,16 @@
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
- $ cd ../gitrepo
+ $ cd gitrepo
$ echo beta > beta
$ git add beta
$ fn_git_commit -m 'add beta'
+ $ cd ..
- $ 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 <te...@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
--- a/tests/test-merge.t
+++ b/tests/test-merge.t
@@ -45,10 +45,9 @@
searching for changes
$ cd ..
- $ cd gitrepo2
$ 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 <te...@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 <te...@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
--- a/tests/test-octopus.t
+++ b/tests/test-octopus.t
@@ -69,9 +69,9 @@
$ hg push ../gitrepo2
pushing to ../gitrepo2
searching for changes
+ $ cd ..
- $ 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 <te...@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
--- 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,15 +43,12 @@
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
- $ 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
--- a/tests/test-tree-decomposition.t
+++ b/tests/test-tree-decomposition.t
@@ -41,9 +41,9 @@
$ hg push ../gitrepo2
pushing to ../gitrepo2
searching for changes
+ $ cd ..
- $ cd ../gitrepo2
- $ git log --pretty=medium
+ $ git --git-dir=gitrepo2 log --pretty=medium
commit 6e0dbd8cd92ed4823c69cb48d8a2b81f904e6e69
Author: test <te...@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 ..
It looks like Git 1.8.0 started silently converting latin1 commit messages to
utf-8. That changed the result of this test. This changeset alters the test
to make it accept both the pre-1.8.0 and post-1.8.0 behaviors.
https://raw.github.com/git/git/master/Documentation/RelNotes/1.8.0.txt
diff --git a/tests/test-encoding.t b/tests/test-encoding.t
--- a/tests/test-encoding.t
+++ b/tests/test-encoding.t
@@ -28,11 +28,13 @@
$ git add alpha
$ commit -m 'add älphà'
+Create some commits using latin1 encoding
+The warning message changed in Git 1.8.0
$ . $TESTDIR/latin-1-encoding
- Warning: commit message does not conform to UTF-8.
+ Warning: commit message (did|does) not conform to UTF-8. (re)
You may want to amend it after fixing the message, or set the config
variable i18n.commitencoding to the encoding your project uses.
- Warning: commit message does not conform to UTF-8.
+ Warning: commit message (did|does) not conform to UTF-8. (re)
You may want to amend it after fixing the message, or set the config
variable i18n.commitencoding to the encoding your project uses.
@@ -45,48 +47,45 @@
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd hgrepo
- $ HGENCODING=utf-8 hg log --graph --debug | grep -v ': *master' | grep -v phase:
- @ changeset: 3:8549ee7fe0801b2dafc06047ca6f66d36da709f5
+Latin1 commit messages started being automatically converted to UTF-8 in
+Git 1.8.0, so we accept the output of either version.
+ $ HGENCODING=utf-8 hg log --graph --debug | grep -v ': *master' | grep -v 'phase:' | grep -v ': *author=' | grep -v ': *message='
+ @ changeset: 3:(8549ee7fe0801b2dafc06047ca6f66d36da709f5|c3d3e39fc04f7e2e8cdb95f090415ec1ddc1be70) (re)
| tag: default/master
| tag: tip
- | parent: 2:0422fbb4ec39fb69e87b94a3874ac890333de11a
+ | parent: 2:(0422fbb4ec39fb69e87b94a3874ac890333de11a|f8aa41895a3a771a72520ca205a4685b76649fdd) (re)
| parent: -1:0000000000000000000000000000000000000000
| manifest: 3:ea49f93388380ead5601c8fcbfa187516e7c2ed8
| user: tést èncödîng <te...@example.org>
| date: Mon Jan 01 00:00:13 2007 +0000
| files+: delta
- | extra: author=$ \x90\x01\x01\xe9\x91\x03\x03\x01\xe8\x91\x08\x02\x01\xf6\x91\x0c\x01\x01\xee\x91\x0f\x15
| extra: branch=default
| extra: committer=test <te...@example.org> 1167609613 0
| extra: encoding=latin-1
- | extra: message=\x0c\n\x90\x05\x01\xe9\x91\x07\x02\x01\xe0\x91\x0b\x01
| description:
| add déltà
|
|
- o changeset: 2:0422fbb4ec39fb69e87b94a3874ac890333de11a
- | parent: 1:9f6268bfc9eb3956c5ab8752d7b983b0ffe57115
+ o changeset: 2:(0422fbb4ec39fb69e87b94a3874ac890333de11a|f8aa41895a3a771a72520ca205a4685b76649fdd) (re)
+ | parent: 1:(9f6268bfc9eb3956c5ab8752d7b983b0ffe57115|955b24cf6f8f293741d3f39110c6fe554c292533) (re)
| parent: -1:0000000000000000000000000000000000000000
| manifest: 2:f580e7da3673c137370da2b931a1dee83590d7b4
| user: tést èncödîng <te...@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| files+: gamma
- | extra: author=$ \x90\x01\x01\xe9\x91\x03\x03\x01\xe8\x91\x08\x02\x01\xf6\x91\x0c\x01\x01\xee\x91\x0f\x15
| extra: branch=default
| extra: committer=test <te...@example.org> 1167609612 0
- | extra: message=\x0c\n\x90\x05\x01\xe4\x91\x07\x02\x01\xe2\x91\x0b\x01
| description:
| add gämmâ
|
|
- o changeset: 1:9f6268bfc9eb3956c5ab8752d7b983b0ffe57115
+ o changeset: 1:(9f6268bfc9eb3956c5ab8752d7b983b0ffe57115|955b24cf6f8f293741d3f39110c6fe554c292533) (re)
| parent: 0:bb7d36568d6188ce0de2392246c43f6f213df954
| parent: -1:0000000000000000000000000000000000000000
| manifest: 1:f0bd6fbafbaebe4bb59c35108428f6fce152431d
| user: tést èncödîng <te...@example.org>
| date: Mon Jan 01 00:00:11 2007 +0000
| files+: beta
- | extra: author=$ \x90\x01\x01\xe9\x91\x03\x03\x01\xe8\x91\x08\x02\x01\xf6\x91\x0c\x01\x01\xee\x91\x0f\x15
| extra: branch=default
| extra: committer=test <te...@example.org> 1167609611 0
| description:
@@ -113,21 +112,23 @@
searching for changes
$ cd ..
+Latin1 commit messages started being automatically converted to UTF-8 in
+Git 1.8.0, so we accept the output of either version.
$ git --git-dir=gitrepo2 log --pretty=medium
- commit da0edb01d4f3d1abf08b1be298379b0b2960e680
+ commit (da0edb01d4f3d1abf08b1be298379b0b2960e680|51c509c1c7eeb8f0a5b20aa3e894e8823f39171f) (re)
Author: t\xe9st \xe8nc\xf6d\xeeng <te...@example.org> (esc)
Date: Mon Jan 1 00:00:13 2007 +0000
add d\xe9lt\xe0 (esc)
- commit 2372b6c8f1b91f2db8ae5eb0f9e0427c318b449c
- Author: t\xe9st \xe8nc\xf6d\xeeng <te...@example.org> (esc)
+ commit (2372b6c8f1b91f2db8ae5eb0f9e0427c318b449c|bd576458238cbda49ffcfbafef5242e103f1bc24) (re)
+ Author: * <te...@example.org> (glob)
Date: Mon Jan 1 00:00:12 2007 +0000
- add g\xe4mm\xe2 (esc)
+ add g*mm* (glob)
- commit 9ef7f6dcffe643b89ba63f3323621b9a923e4802
- Author: t\xe9st \xe8nc\xf6d\xeeng <te...@example.org> (esc)
+ commit (9ef7f6dcffe643b89ba63f3323621b9a923e4802|7a7e86fc1b24db03109c9fe5da28b352de59ce90) (re)
+ Author: * <te...@example.org> (glob)
Date: Mon Jan 1 00:00:11 2007 +0000
add beta