Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2006 Eric Wong |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 4 | test_description='git svn commit-diff clobber' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 5 | . ./lib-git-svn.sh |
| 6 | |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 7 | test_expect_success 'initialize repo' ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 8 | mkdir import && |
Jonathan Nieder | 18a8269 | 2010-09-06 20:42:54 -0500 | [diff] [blame] | 9 | ( |
| 10 | cd import && |
| 11 | echo initial >file && |
| 12 | svn_cmd import -m "initial" . "$svnrepo" |
Jens Lehmann | fd4ec4f | 2010-09-06 20:39:54 +0200 | [diff] [blame] | 13 | ) && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 14 | echo initial > file && |
| 15 | git update-index --add file && |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 16 | git commit -a -m "initial" |
| 17 | ' |
| 18 | test_expect_success 'commit change from svn side' ' |
Eygene Ryabinkin | da083d6 | 2009-05-08 12:06:16 +0400 | [diff] [blame] | 19 | svn_cmd co "$svnrepo" t.svn && |
Jonathan Nieder | 18a8269 | 2010-09-06 20:42:54 -0500 | [diff] [blame] | 20 | ( |
| 21 | cd t.svn && |
| 22 | echo second line from svn >>file && |
| 23 | poke file && |
| 24 | svn_cmd commit -m "second line from svn" |
Jens Lehmann | fd4ec4f | 2010-09-06 20:39:54 +0200 | [diff] [blame] | 25 | ) && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 26 | rm -rf t.svn |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 27 | ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 28 | |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 29 | test_expect_success 'commit conflicting change from git' ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 30 | echo second line from git >> file && |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 31 | git commit -a -m "second line from git" && |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 32 | test_must_fail git svn commit-diff -r1 HEAD~1 HEAD "$svnrepo" |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 33 | ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 34 | |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 35 | test_expect_success 'commit complementing change from git' ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 36 | git reset --hard HEAD~1 && |
| 37 | echo second line from svn >> file && |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 38 | git commit -a -m "second line from svn" && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 39 | echo third line from git >> file && |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 40 | git commit -a -m "third line from git" && |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 41 | git svn commit-diff -r2 HEAD~1 HEAD "$svnrepo" |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 42 | ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 43 | |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 44 | test_expect_success 'dcommit fails to commit because of conflict' ' |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 45 | git svn init "$svnrepo" && |
| 46 | git svn fetch && |
Jeff King | e1c0c15 | 2016-05-13 16:47:14 -0400 | [diff] [blame] | 47 | git reset --hard refs/remotes/git-svn && |
Eygene Ryabinkin | da083d6 | 2009-05-08 12:06:16 +0400 | [diff] [blame] | 48 | svn_cmd co "$svnrepo" t.svn && |
Jonathan Nieder | 18a8269 | 2010-09-06 20:42:54 -0500 | [diff] [blame] | 49 | ( |
| 50 | cd t.svn && |
| 51 | echo fourth line from svn >>file && |
| 52 | poke file && |
| 53 | svn_cmd commit -m "fourth line from svn" |
Jens Lehmann | fd4ec4f | 2010-09-06 20:39:54 +0200 | [diff] [blame] | 54 | ) && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 55 | rm -rf t.svn && |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 56 | echo "fourth line from git" >> file && |
| 57 | git commit -a -m "fourth line from git" && |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 58 | test_must_fail git svn dcommit |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 59 | ' |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 60 | |
| 61 | test_expect_success 'dcommit does the svn equivalent of an index merge' " |
Jeff King | e1c0c15 | 2016-05-13 16:47:14 -0400 | [diff] [blame] | 62 | git reset --hard refs/remotes/git-svn && |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 63 | echo 'index merge' > file2 && |
| 64 | git update-index --add file2 && |
| 65 | git commit -a -m 'index merge' && |
| 66 | echo 'more changes' >> file2 && |
| 67 | git update-index file2 && |
| 68 | git commit -a -m 'more changes' && |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 69 | git svn dcommit |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 70 | " |
| 71 | |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 72 | test_expect_success 'commit another change from svn side' ' |
Eygene Ryabinkin | da083d6 | 2009-05-08 12:06:16 +0400 | [diff] [blame] | 73 | svn_cmd co "$svnrepo" t.svn && |
Jonathan Nieder | 18a8269 | 2010-09-06 20:42:54 -0500 | [diff] [blame] | 74 | ( |
| 75 | cd t.svn && |
| 76 | echo third line from svn >>file && |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 77 | poke file && |
Jens Lehmann | fd4ec4f | 2010-09-06 20:39:54 +0200 | [diff] [blame] | 78 | svn_cmd commit -m "third line from svn" |
| 79 | ) && |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 80 | rm -rf t.svn |
Bryan Donlan | f69e836 | 2008-05-04 01:37:59 -0400 | [diff] [blame] | 81 | ' |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 82 | |
Nanako Shiraishi | 1364ff2 | 2008-09-08 19:02:08 +0900 | [diff] [blame] | 83 | test_expect_success 'multiple dcommit from git svn will not clobber svn' " |
Jeff King | e1c0c15 | 2016-05-13 16:47:14 -0400 | [diff] [blame] | 84 | git reset --hard refs/remotes/git-svn && |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 85 | echo new file >> new-file && |
| 86 | git update-index --add new-file && |
| 87 | git commit -a -m 'new file' && |
| 88 | echo clobber > file && |
| 89 | git commit -a -m 'clobber' && |
Stephan Beyer | d492b31 | 2008-07-12 17:47:52 +0200 | [diff] [blame] | 90 | test_must_fail git svn dcommit |
Junio C Hamano | 41ac414 | 2008-02-01 01:50:53 -0800 | [diff] [blame] | 91 | " |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 92 | |
| 93 | |
Johannes Schindelin | 51ef1da | 2008-07-21 12:51:02 +0200 | [diff] [blame] | 94 | test_expect_success 'check that rebase really failed' ' |
Elijah Newren | 2ac0d62 | 2020-02-15 21:36:40 +0000 | [diff] [blame] | 95 | git status >output && |
| 96 | grep currently.rebasing output |
Johannes Schindelin | 51ef1da | 2008-07-21 12:51:02 +0200 | [diff] [blame] | 97 | ' |
Eric Wong | 751eb39 | 2007-08-31 18:16:12 -0700 | [diff] [blame] | 98 | |
| 99 | test_expect_success 'resolve, continue the rebase and dcommit' " |
| 100 | echo clobber and I really mean it > file && |
| 101 | git update-index file && |
| 102 | git rebase --continue && |
| 103 | git svn dcommit |
| 104 | " |
| 105 | |
Eric Wong | 45bf473 | 2006-11-09 01:19:37 -0800 | [diff] [blame] | 106 | test_done |