diff options
author | Steven Walter <swalter@lpdev.prtdev.lexmark.com> | 2010-09-02 18:32:06 -0400 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-09-24 08:23:53 +0000 |
commit | a3c75056dc73661a6cdab180659f52cdb03b357c (patch) | |
tree | c788c2a484ca9007c5b9918495ebaf6cfc3df844 /t | |
parent | c9be27f39488b20946e3a7ba57d776e03708a1fa (diff) | |
download | git-a3c75056dc73661a6cdab180659f52cdb03b357c.tar.gz git-a3c75056dc73661a6cdab180659f52cdb03b357c.tar.xz |
git-svn: check_cherry_pick should exclude commits already in our history
The merge-base between @$parents and $merge_tip may have been reached
through a merge commit. This means that some commits that are ancestors
of @$parents will not be ancestors of $merge_base. The mergeinfo
property will not list commits that are ancestors of @$parents, so we
need to explicitly exclude them.
[ew: squashed and cleaned up test case from Steven]
Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 't')
-rw-r--r-- | t/t9157-git-svn-fetch-merge.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/t/t9157-git-svn-fetch-merge.sh b/t/t9157-git-svn-fetch-merge.sh new file mode 100644 index 000000000..da582c538 --- /dev/null +++ b/t/t9157-git-svn-fetch-merge.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Copyright (c) 2010 Steven Walter +# + +test_description='git svn merge detection' +. ./lib-git-svn.sh + +test_expect_success 'initialize source svn repo' ' + svn_cmd mkdir -m x "$svnrepo"/trunk && + svn_cmd mkdir -m x "$svnrepo"/branches && + svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && + ( + cd "$SVN_TREE" && + touch foo && + svn add foo && + svn commit -m "initial commit" && + svn cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && + touch bar && + svn add bar && + svn commit -m x && + svn cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch2 && + svn switch "$svnrepo"/branches/branch1 && + touch baz && + svn add baz && + svn commit -m x && + svn switch "$svnrepo"/trunk && + svn merge "$svnrepo"/branches/branch1 && + svn commit -m "merge" && + svn switch "$svnrepo"/branches/branch1 && + svn commit -m x && + svn switch "$svnrepo"/branches/branch2 && + svn merge "$svnrepo"/branches/branch1 && + svn commit -m "merge branch1" && + svn switch "$svnrepo"/trunk && + svn merge "$svnrepo"/branches/branch2 && + svn resolved baz && + svn commit -m "merge branch2" + ) && + rm -rf "$SVN_TREE" +' + +test_expect_success 'clone svn repo' ' + git svn init -s "$svnrepo" && + git svn fetch +' + +test_expect_success 'verify merge commit' 'git rev-parse HEAD^2' + +test_done |