-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use merge-recursive in git-revert/git-cherry-pick
This makes revert and cherry-pick to use merge-recursive, to allow them to notice renames. A pair of test scripts demonstrate that an old change before a rename happened can be applied (reverted) after a rename with cherry-pick (with revert). Signed-off-by: Junio C Hamano <junkio@cox.net>
- Loading branch information
Junio C Hamano
committed
Jan 15, 2007
1 parent
5fe3acc
commit acb4441
Showing
2 changed files
with
74 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#!/bin/sh | ||
|
||
test_description='test cherry-pick and revert with renames | ||
-- | ||
+ rename2: renames oops to opos | ||
+ rename1: renames oops to spoo | ||
+ added: adds extra line to oops | ||
++ initial: has lines in oops | ||
' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success setup ' | ||
for l in a b c d e f g h i j k l m n o | ||
do | ||
echo $l$l$l$l$l$l$l$l$l | ||
done >oops && | ||
test_tick && | ||
git add oops && | ||
git commit -m initial && | ||
git tag initial && | ||
test_tick && | ||
echo "Add extra line at the end" >>oops && | ||
git commit -a -m added && | ||
git tag added && | ||
test_tick && | ||
git mv oops spoo && | ||
git commit -m rename1 && | ||
git tag rename1 && | ||
test_tick && | ||
git checkout -b side initial && | ||
git mv oops opos && | ||
git commit -m rename2 && | ||
git tag rename2 | ||
' | ||
|
||
test_expect_success 'cherry-pick after renaming branch' ' | ||
git checkout rename2 && | ||
EDITOR=: VISUAL=: git cherry-pick added && | ||
test -f opos && | ||
grep "Add extra line at the end" opos | ||
' | ||
|
||
test_expect_success 'revert after renaming branch' ' | ||
git checkout rename1 && | ||
EDITOR=: VISUAL=: git revert added && | ||
test -f spoo && | ||
! grep "Add extra line at the end" spoo | ||
' | ||
|
||
test_done |