sapling/tests/test-log
Mads Kiilerich 48773bdeed log: include unmodified-in-merge files in log diff/stat (issue2383)
f02da4369319 assumed that walkchangerevs called prep with all relevant matched
filenames, but actually it only contains the names of files changed in the
relevant changeset. That meant that log diff/stat of merges missed the diff for
files only changed in the other branch.

This is a minimal fix for making sure we only use fns when we are following and
thus will have problems with merges anyway ...
2010-09-23 01:23:16 +02:00

220 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
hg init a
cd a
echo a > a
hg ci -Ama -d '1 0'
hg cp a b
hg ci -mb -d '2 0'
mkdir dir
hg mv b dir
hg ci -mc -d '3 0'
hg mv a b
echo a > d
hg add d
hg ci -md -d '4 0'
hg mv dir/b e
hg ci -me -d '5 0'
hg log a
echo % -f, directory
hg log -f dir
echo % -f, but no args
hg log -f
echo % one rename
hg log -vf a
echo % many renames
hg log -vf e
echo % log -pf dir/b
hg log -pf dir/b
echo % log -vf dir/b
hg log -vf dir/b
echo '% log copies with --copies'
hg log -vC --template '{rev} {file_copies}\n'
echo '% log copies switch without --copies, with old filecopy template'
hg log -v --template '{rev} {file_copies_switch%filecopy}\n'
echo '% log copies switch with --copies'
hg log -vC --template '{rev} {file_copies_switch}\n'
echo '% log copies with hardcoded style and with --style=default'
hg log -vC -r4
hg log -vC -r4 --style=default
echo % log copies, non-linear manifest
hg up -C 3
hg mv dir/b e
echo foo > foo
hg ci -Ame2 -d '6 0'
hg log -v --template '{rev} {file_copies}\n' -r 5
echo % log copies, execute bit set
chmod +x e
hg ci -me3 -d '7 0'
hg log -v --template '{rev} {file_copies}\n' -r 6
echo '% log -p d'
hg log -pv d
# log --follow tests
hg init ../follow
cd ../follow
echo base > base
hg ci -Ambase -d '1 0'
echo r1 >> base
hg ci -Amr1 -d '1 0'
echo r2 >> base
hg ci -Amr2 -d '1 0'
hg up -C 1
echo b1 > b1
hg ci -Amb1 -d '1 0'
echo % log -f
hg log -f
hg up -C 0
echo b2 > b2
hg ci -Amb2 -d '1 0'
echo % log -f -r 1:tip
hg log -f -r 1:tip
hg up -C 3
hg merge tip
echo % log -r . with two parents
hg log -r .
hg ci -mm12 -d '1 0'
echo % log -r . with one parent
hg log -r .
echo postm >> b1
hg ci -Amb1.1 -d'1 0'
echo % log --follow-first
hg log --follow-first
echo % log -P 2
hg log -P 2
echo '% log -r tip -p --git'
hg log -r tip -p --git
echo '% log -r ""'
hg log -r ''
echo '% log -r <some unknown node id>'
hg log -r 1000000000000000000000000000000000000000
echo '% log -k r1'
hg log -k r1
echo '% log -d -1'
hg log -d -1
echo '% log -p -l2 --color=always'
hg --config extensions.color= --config color.mode=ansi \
log -p -l2 --color=always
echo '% log -r tip --stat'
hg log -r tip --stat
cd ..
hg init usertest
cd usertest
echo a > a
hg ci -A -m "a" -u "User One <user1@example.org>"
echo b > b
hg ci -A -m "b" -u "User Two <user2@example.org>"
hg log -u "User One <user1@example.org>"
hg log -u "user1" -u "user2"
hg log -u "user3"
cd ..
hg init branches
cd branches
echo a > a
hg ci -A -m "commit on default"
hg branch test
echo b > b
hg ci -A -m "commit on test"
hg up default
echo c > c
hg ci -A -m "commit on default"
hg up test
echo c > c
hg ci -A -m "commit on test"
echo '% log -b default'
hg log -b default
echo '% log -b test'
hg log -b test
echo '% log -b dummy'
hg log -b dummy
echo '% log -b .'
hg log -b .
echo '% log -b default -b test'
hg log -b default -b test
echo '% log -b default -b .'
hg log -b default -b .
echo '% log -b . -b test'
hg log -b . -b test
echo '% log -b 2'
hg log -b 2
echo '% log -p --cwd dir (in subdir)'
mkdir dir
hg log -p --cwd dir
echo '% log -p -R repo'
cd dir
hg log -p -R .. ../a
cd ..
echo '% issue2383'
hg init issue2383
cd issue2383
echo a > a
hg ci -Am0
echo b > b
hg ci -Am1
hg co 0
echo b > a
hg ci -m2
hg merge
echo c > a
hg ci -m3
echo
echo % diff
hg diff --rev 2:3
echo
echo % log
hg log -vpr 3
cd ..