Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2006 Eric Wong |
| 4 | test_description='git-svn commit-diff clobber' |
| 5 | . ./lib-git-svn.sh |
| 6 | |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 7 | test_expect_success 'initialize repo' " |
| 8 | mkdir import && |
| 9 | cd import && |
| 10 | echo initial > file && |
| 11 | svn import -m 'initial' . $svnrepo && |
| 12 | cd .. && |
| 13 | echo initial > file && |
| 14 | git update-index --add file && |
| 15 | git commit -a -m 'initial' |
| 16 | " |
| 17 | test_expect_success 'commit change from svn side' " |
| 18 | svn co $svnrepo t.svn && |
| 19 | cd t.svn && |
| 20 | echo second line from svn >> file && |
Michael Spang | 7b3fab8 | 2007-02-12 19:33:37 -0500 | [diff] [blame] | 21 | poke file && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 22 | svn commit -m 'second line from svn' && |
| 23 | cd .. && |
| 24 | rm -rf t.svn |
| 25 | " |
| 26 | |
| 27 | test_expect_failure 'commit conflicting change from git' " |
| 28 | echo second line from git >> file && |
| 29 | git commit -a -m 'second line from git' && |
| 30 | git-svn commit-diff -r1 HEAD~1 HEAD $svnrepo |
| 31 | " || true |
| 32 | |
| 33 | test_expect_success 'commit complementing change from git' " |
| 34 | git reset --hard HEAD~1 && |
| 35 | echo second line from svn >> file && |
| 36 | git commit -a -m 'second line from svn' && |
| 37 | echo third line from git >> file && |
| 38 | git commit -a -m 'third line from git' && |
| 39 | git-svn commit-diff -r2 HEAD~1 HEAD $svnrepo |
| 40 | " |
| 41 | |
| 42 | test_expect_failure 'dcommit fails to commit because of conflict' " |
| 43 | git-svn init $svnrepo && |
| 44 | git-svn fetch && |
| 45 | git reset --hard refs/remotes/git-svn && |
| 46 | svn co $svnrepo t.svn && |
| 47 | cd t.svn && |
| 48 | echo fourth line from svn >> file && |
Michael Spang | 7b3fab8 | 2007-02-12 19:33:37 -0500 | [diff] [blame] | 49 | poke file && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 50 | svn commit -m 'fourth line from svn' && |
| 51 | cd .. && |
| 52 | rm -rf t.svn && |
| 53 | echo 'fourth line from git' >> file && |
| 54 | git commit -a -m 'fourth line from git' && |
| 55 | git-svn dcommit |
| 56 | " || true |
| 57 | |
| 58 | test_expect_success 'dcommit does the svn equivalent of an index merge' " |
| 59 | git reset --hard refs/remotes/git-svn && |
| 60 | echo 'index merge' > file2 && |
| 61 | git update-index --add file2 && |
| 62 | git commit -a -m 'index merge' && |
| 63 | echo 'more changes' >> file2 && |
| 64 | git update-index file2 && |
| 65 | git commit -a -m 'more changes' && |
| 66 | git-svn dcommit |
| 67 | " |
| 68 | |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 69 | test_expect_success 'commit another change from svn side' " |
| 70 | svn co $svnrepo t.svn && |
| 71 | cd t.svn && |
| 72 | echo third line from svn >> file && |
| 73 | poke file && |
| 74 | svn commit -m 'third line from svn' && |
| 75 | cd .. && |
| 76 | rm -rf t.svn |
| 77 | " |
| 78 | |
| 79 | test_expect_failure 'multiple dcommit from git-svn will not clobber svn' " |
| 80 | git reset --hard refs/remotes/git-svn && |
| 81 | echo new file >> new-file && |
| 82 | git update-index --add new-file && |
| 83 | git commit -a -m 'new file' && |
| 84 | echo clobber > file && |
| 85 | git commit -a -m 'clobber' && |
| 86 | git svn dcommit |
| 87 | " || true |
| 88 | |
| 89 | |
| 90 | test_expect_success 'check that rebase really failed' 'test -d .dotest' |
| 91 | |
| 92 | test_expect_success 'resolve, continue the rebase and dcommit' " |
| 93 | echo clobber and I really mean it > file && |
| 94 | git update-index file && |
| 95 | git rebase --continue && |
| 96 | git svn dcommit |
| 97 | " |
| 98 | |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 99 | test_done |