summaryrefslogtreecommitdiff
path: root/t/t9159-git-svn-no-parent-mergeinfo.sh
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2011-06-18 06:47:58 (GMT)
committerEric Wong <normalperson@yhbt.net>2011-06-28 03:26:06 (GMT)
commit555bdc66eab0178d43c509ec53c1d97303675f90 (patch)
tree4722a59bddafc5883a26d48be7f68bcefb76353c /t/t9159-git-svn-no-parent-mergeinfo.sh
parentf696543dad6c7ba27b0c4fab167a5687263a9ba0 (diff)
downloadgit-555bdc66eab0178d43c509ec53c1d97303675f90.zip
git-555bdc66eab0178d43c509ec53c1d97303675f90.tar.gz
git-555bdc66eab0178d43c509ec53c1d97303675f90.tar.bz2
git-svn: Demonstrate a bug with root commits in mergeinfo ranges
If a svn:mergeinfo range starts at a commit that was converted as a git root commit (e.g., r1 or a branch that was created out of thin air), then there is an error when git-svn tries to run git rev-list "$bottom_commit^..$top_commit" because $bottom_commit (the git commit corresponding to r1) has no parent. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Acked-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 't/t9159-git-svn-no-parent-mergeinfo.sh')
-rwxr-xr-xt/t9159-git-svn-no-parent-mergeinfo.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/t/t9159-git-svn-no-parent-mergeinfo.sh b/t/t9159-git-svn-no-parent-mergeinfo.sh
new file mode 100755
index 0000000..9472de3
--- /dev/null
+++ b/t/t9159-git-svn-no-parent-mergeinfo.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+test_description='git svn handling of root commits in merge ranges'
+. ./lib-git-svn.sh
+
+test_expect_failure 'test handling of root commits in merge ranges' '
+ mkdir -p init/trunk init/branches init/tags &&
+ echo "r1" > init/trunk/file.txt &&
+ svn_cmd import -m "initial import" init "$svnrepo" &&
+ svn_cmd co "$svnrepo" tmp &&
+ (
+ cd tmp &&
+ echo "r2" > trunk/file.txt &&
+ svn_cmd commit -m "Modify file.txt on trunk" &&
+ svn_cmd cp trunk@1 branches/a &&
+ svn_cmd commit -m "Create branch a from trunk r1" &&
+ svn_cmd propset svn:mergeinfo /trunk:1-2 branches/a &&
+ svn_cmd commit -m "Fake merge of trunk r2 into branch a" &&
+ mkdir branches/b &&
+ echo "r5" > branches/b/file2.txt &&
+ svn_cmd add branches/b &&
+ svn_cmd commit -m "Create branch b from thin air" &&
+ echo "r6" > branches/b/file2.txt &&
+ svn_cmd commit -m "Modify file2.txt on branch b" &&
+ svn_cmd cp branches/b@5 branches/c &&
+ svn_cmd commit -m "Create branch c from branch b r5" &&
+ svn_cmd propset svn:mergeinfo /branches/b:5-6 branches/c &&
+ svn_cmd commit -m "Fake merge of branch b r6 into branch c"
+ ) &&
+ git svn init -s "$svnrepo" &&
+ git svn fetch
+ '
+
+test_done