Merge branch 'maint'
[gitweb.git] / t / t9106-git-svn-commit-diff-clobber.sh
index 58698b3f29966593d1f7063b04e8d07322636572..79b7968eaf4d4bfa3673edf78e31ca43b54becb3 100755 (executable)
@@ -4,13 +4,6 @@
 test_description='git-svn commit-diff clobber'
 . ./lib-git-svn.sh
 
-if test -n "$GIT_SVN_NO_LIB" && test "$GIT_SVN_NO_LIB" -ne 0
-then
-       echo 'Skipping: commit-diff clobber needs SVN libraries'
-       test_done
-       exit 0
-fi
-
 test_expect_success 'initialize repo' "
        mkdir import &&
        cd import &&
@@ -25,6 +18,7 @@ test_expect_success 'commit change from svn side' "
        svn co $svnrepo t.svn &&
        cd t.svn &&
        echo second line from svn >> file &&
+       poke file &&
        svn commit -m 'second line from svn' &&
        cd .. &&
        rm -rf t.svn
@@ -52,6 +46,7 @@ test_expect_failure 'dcommit fails to commit because of conflict' "
        svn co $svnrepo t.svn &&
        cd t.svn &&
        echo fourth line from svn >> file &&
+       poke file &&
        svn commit -m 'fourth line from svn' &&
        cd .. &&
        rm -rf t.svn &&
@@ -71,4 +66,34 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' "
        git-svn dcommit
        "
 
+test_expect_success 'commit another change from svn side' "
+       svn co $svnrepo t.svn &&
+       cd t.svn &&
+               echo third line from svn >> file &&
+               poke file &&
+               svn commit -m 'third line from svn' &&
+       cd .. &&
+       rm -rf t.svn
+       "
+
+test_expect_failure 'multiple dcommit from git-svn will not clobber svn' "
+       git reset --hard refs/remotes/git-svn &&
+       echo new file >> new-file &&
+       git update-index --add new-file &&
+       git commit -a -m 'new file' &&
+       echo clobber > file &&
+       git commit -a -m 'clobber' &&
+       git svn dcommit
+       " || true
+
+
+test_expect_success 'check that rebase really failed' 'test -d .dotest'
+
+test_expect_success 'resolve, continue the rebase and dcommit' "
+       echo clobber and I really mean it > file &&
+       git update-index file &&
+       git rebase --continue &&
+       git svn dcommit
+       "
+
 test_done