mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
776bc63f5b
Previously, it was possible to commit just one file from a merge, which is essentially always the wrong thing to do. This fixes issue 1049.
70 lines
1.1 KiB
Bash
Executable File
70 lines
1.1 KiB
Bash
Executable File
#!/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^"
|
|
|