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

r6385:0d4e068e default
r6875:0d714a48 default
Show More
test-parentrevspec
69 lines | 1.1 KiB | text/plain | TextLexer
#!/bin/sh
commit()
{
msg=$1
p1=$2
p2=$3
if [ "$p1" ]; then
hg up -qC $p1
fi
if [ "$p2" ]; then
HGMERGE=true hg merge -q $p2
fi
echo >> foo
hg commit -d '0 0' -qAm "$msg"
}
hg init repo
cd repo
echo '[extensions]' > .hg/hgrc
echo 'hgext.parentrevspec =' >> .hg/hgrc
commit '0: add foo'
commit '1: change foo 1'
commit '2: change foo 2a'
commit '3: change foo 3a'
commit '4: change foo 2b' 1
commit '5: merge' 3 4
commit '6: change foo again'
hg log --template '#rev#:#node|short# #parents#\n'
echo
lookup()
{
for rev in "$@"; do
printf "$rev: "
hg id -nr $rev
done
true
}
tipnode=`hg id -ir tip`
echo 'should work with tag/branch/node/rev'
for r in tip default $tipnode 6; do
lookup "$r^"
done
echo
echo 'some random lookups'
lookup "6^^" "6^^^" "6^^^^" "6^^^^^" "6^^^^^^" "6^1" "6^2" "6^^2" "6^1^2" "6^^3"
lookup "6~" "6~1" "6~2" "6~3" "6~4" "6~5" "6~42" "6~1^2" "6~1^2~2"
echo
echo 'with a tag "6^" pointing to rev 1'
hg tag -l -r 1 "6^"
lookup "6^" "6^1" "6~1" "6^^"
echo
echo 'with a tag "foo^bar" pointing to rev 2'
hg tag -l -r 2 "foo^bar"
lookup "foo^bar" "foo^bar^"