##// 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:

r6425:2d9328a2 default
r6875:0d714a48 default
Show More
test-mv-cp-st-diff
76 lines | 1.3 KiB | text/plain | TextLexer
#!/bin/sh
add()
{
echo $2 >> $1
}
hg init t
cd t
# set up a boring main branch
add a a
hg add a
mkdir x
add x/x x
hg add x/x
hg ci -m0
add a m1
hg ci -m1
add a m2
add x/y y1
hg add x/y
hg ci -m2
show()
{
echo "- $2: $1"
hg st -C $1
echo
hg diff --git $1
echo
}
count=0
# make a new branch and get diff/status output
# $1 - first commit
# $2 - second commit
# $3 - working dir action
# $4 - test description
tb()
{
hg co -q -C 0
add a $count
count=`expr $count + 1`
hg ci -m "t0"
$1
hg ci -m "t1"
$2
hg ci -m "t2"
$3
echo "** $4 **"
echo "** $1 / $2 / $3"
show "" "working to parent"
show "--rev 0" "working to root"
show "--rev 2" "working to branch"
show "--rev 0 --rev ." "root to parent"
show "--rev . --rev 0" "parent to root"
show "--rev 2 --rev ." "branch to parent"
show "--rev . --rev 2" "parent to branch"
echo
}
tb "add a a1" "add a a2" "hg mv a b" "rename in working dir"
tb "add a a1" "add a a2" "hg cp a b" "copy in working dir"
tb "hg mv a b" "add b b1" "add b w" "single rename"
tb "hg cp a b" "add b b1" "add a w" "single copy"
tb "hg mv a b" "hg mv b c" "hg mv c d" "rename chain"
tb "hg cp a b" "hg cp b c" "hg cp c d" "copy chain"
tb "add a a1" "hg mv a b" "hg mv b a" "circular rename"
tb "hg mv x y" "add y/x x1" "add y/x x2" "directory move"