##// END OF EJS Templates
add a fix for issue 1175...
add a fix for issue 1175 If we copy a file followed by an update, it's possible for the parent manifest to no longer contain the source file of the copy, which could cause commit to fail. If this happens, we search backwares from the first parent to find the most likely original revision.

File last commit:

r4744:44e17f50 default
r6875:0d714a48 default
Show More
test-copy2
70 lines | 1.3 KiB | text/plain | TextLexer
#!/bin/sh
hg init
echo foo > foo
echo "# should fail - foo is not managed"
hg mv foo bar
hg st -A
hg add foo
echo "# dry-run; print a warning that this is not a real copy; foo is added"
hg mv --dry-run foo bar
hg st -A
echo "# should print a warning that this is not a real copy; bar is added"
hg mv foo bar
hg st -A
echo "# should print a warning that this is not a real copy; foo is added"
hg cp bar foo
hg rm -f bar
rm bar
hg st -A
hg commit -m1 -d"0 0"
echo "# dry-run; should show that foo is clean"
hg copy --dry-run foo bar
hg st -A
echo "# should show copy"
hg copy foo bar
hg st -C
echo "# shouldn't show copy"
hg commit -m2 -d"0 0"
hg st -C
echo "# should match"
hg debugindex .hg/store/data/foo.i
hg debugrename bar
echo bleah > foo
echo quux > bar
hg commit -m3 -d"0 0"
echo "# should not be renamed"
hg debugrename bar
hg copy -f foo bar
echo "# should show copy"
hg st -C
hg commit -m3 -d"0 0"
echo "# should show no parents for tip"
hg debugindex .hg/store/data/bar.i
echo "# should match"
hg debugindex .hg/store/data/foo.i
hg debugrename bar
echo "# should show no copies"
hg st -C
echo "# copy --after on an added file"
cp bar baz
hg add baz
hg cp -A bar baz
hg st -C
echo "# foo was clean:"
hg st -AC foo
echo "# but it's considered modified after a copy --after --force"
hg copy -Af bar foo
hg st -AC foo
exit 0