sapling/tests/test-merge.t
David M. Carr d1a4bffd12 tests: extract commonly used commit/tag functions into testutil library
Thanks to Felipe Contreras for the patch which this was based on.

The functions were renamed to make it clearer that these are shell functions
rather than normal git/hg commands, and to make it clearer which tool is being
invoked.

Old name | New name
------------------------
commit   | fn_git_commit
tag      | fn_git_tag
hgcommit | fn_hg_commit
hgtag    | fn_hg_tag

Extraction from test-encoding.t was left for a subsequent patch, as I was seeing
unexpected output changes when I attempted the extraction.

The gitcommit and hgcommit functions in test-bookmark-workflow.t were left
as-is for now, as they have a different behavior than the standard version
(separate counters for each).
2012-10-30 22:59:20 -04:00

100 lines
2.6 KiB
Turing

Load commonly used test logic
$ . "$TESTDIR/testutil"
bail if the user does not have git command-line client
$ "$TESTDIR/hghave" git || exit 80
bail if the user does not have dulwich
$ python -c 'import dulwich, dulwich.repo' || exit 80
$ mkdir gitrepo
$ cd gitrepo
$ git init
Initialized empty Git repository in $TESTTMP/gitrepo/.git/
$ echo alpha > alpha
$ git add alpha
$ fn_git_commit -m 'add alpha'
$ git checkout -b beta 2>&1 | sed s/\'/\"/g
Switched to a new branch "beta"
$ echo beta > beta
$ git add beta
$ fn_git_commit -m 'add beta'
$ git checkout master 2>&1 | sed s/\'/\"/g
Switched to branch "master"
$ echo gamma > gamma
$ git add gamma
$ fn_git_commit -m 'add gamma'
clean merge
$ git merge beta | sed "s/the '//;s/' strategy//" | sed 's/^Merge.*recursive.*$/Merge successful/' | sed 's/files/file/;s/insertions/insertion/;s/, 0 deletions.*//' | sed 's/| */| /'
Merge successful
beta | 1 +
1 file changed, 1 insertion(+)
create mode 100644 beta
$ cd ..
$ mkdir gitrepo2
$ cd gitrepo2
$ git init --bare
Initialized empty Git repository in $TESTTMP/gitrepo2/
$ cd ..
$ hg clone gitrepo hgrepo | grep -v '^updating'
importing git objects into hg
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd hgrepo
$ echo % clear the cache to be sure it is regenerated correctly
% clear the cache to be sure it is regenerated correctly
$ hg gclear
clearing out the git cache data
$ hg push ../gitrepo2
pushing to ../gitrepo2
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'
commit 5806851511aaf3bfe813ae3a86c5027165fa9b96
Merge: e5023f9 9497a4e
Author: test <test@example.org>
Date: Mon Jan 1 00:00:12 2007 +0000
Merge branch 'beta'
commit e5023f9e5cb24fdcec7b6c127cec45d8888e35a9
Author: test <test@example.org>
Date: Mon Jan 1 00:00:12 2007 +0000
add gamma
commit 9497a4ee62e16ee641860d7677cdb2589ea15554
Author: test <test@example.org>
Date: Mon Jan 1 00:00:11 2007 +0000
add beta
commit 7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03
Author: test <test@example.org>
Date: Mon Jan 1 00:00:10 2007 +0000
add alpha
$ git log --pretty=medium beta | sed 's/\.\.\.//g'
commit 9497a4ee62e16ee641860d7677cdb2589ea15554
Author: test <test@example.org>
Date: Mon Jan 1 00:00:11 2007 +0000
add beta
commit 7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03
Author: test <test@example.org>
Date: Mon Jan 1 00:00:10 2007 +0000
add alpha
$ cd ..