tests: unify test-log
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Sun, 15 Aug 2010 23:34:46 +0900
changeset 11900 cd7182358d9f
parent 11899 99cafcae25d9
child 11901 a80577bfea29
tests: unify test-log
tests/test-log
tests/test-log.t
tests/test-mq-caches.t
tests/test-mq-eol.t
tests/test-mq-guards.t
tests/test-mq-safety.t
tests/test-mq.t
--- a/tests/test-log	Sun Aug 15 23:17:53 2010 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-#!/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
-
-echo '% log --removed file'
-hg log --removed -v a
-echo '% log --removed revrange file'
-hg log --removed -v -r0:2 a
-
-# 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 ..
-hg init follow2
-cd follow2
-
-# Build the following history:
-# tip - o - x - o - x - x
-#    \                 /
-#     o - o - o - x
-#      \     /
-#         o
-#
-# Where "o" is a revision containing "foo" and
-# "x" is a revision without "foo"
-touch init
-hg ci -A -m "init, unrelated"
-echo 'foo' > init
-hg ci -m "change, unrelated"
-echo 'foo' > foo
-hg ci -A -m "add unrelated old foo"
-hg rm foo
-hg ci -m "delete foo, unrelated"
-echo 'related' > foo
-hg ci -A -m "add foo, related"
-
-hg up 0
-touch branch
-hg ci -A -m "first branch, unrelated"
-touch foo
-hg ci -A -m "create foo, related"
-echo 'change' > foo
-hg ci -m "change foo, related"
-
-hg up 6
-echo 'change foo in branch' > foo
-hg ci -m "change foo in branch, related"
-hg merge 7
-echo 'merge 1' > foo
-hg resolve -m foo
-hg ci -m "First merge, related"
-
-hg merge 4
-echo 'merge 2' > foo
-hg resolve -m foo
-hg ci -m "Last merge, related"
-
-hg --config "extensions.graphlog=" glog
-
-hg --traceback log -f foo
-
-exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-log.t	Sun Aug 15 23:34:46 2010 +0900
@@ -0,0 +1,1018 @@
+  $ hg init a
+
+  $ cd a
+  $ echo a > a
+  $ hg ci -Ama -d '1 0'
+  adding a
+
+  $ 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
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     a
+  
+
+-f, directory
+
+  $ hg log -f dir
+  abort: cannot follow nonexistent file: "dir"
+
+-f, but no args
+
+  $ hg log -f
+  changeset:   4:66c1345dc4f9
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:05 1970 +0000
+  summary:     e
+  
+  changeset:   3:7c6c671bb7cc
+  user:        test
+  date:        Thu Jan 01 00:00:04 1970 +0000
+  summary:     d
+  
+  changeset:   2:41dd4284081e
+  user:        test
+  date:        Thu Jan 01 00:00:03 1970 +0000
+  summary:     c
+  
+  changeset:   1:784de7cef101
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  summary:     b
+  
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     a
+  
+
+one rename
+
+  $ hg log -vf a
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  files:       a
+  description:
+  a
+  
+  
+
+many renames
+
+  $ hg log -vf e
+  changeset:   4:66c1345dc4f9
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:05 1970 +0000
+  files:       dir/b e
+  description:
+  e
+  
+  
+  changeset:   2:41dd4284081e
+  user:        test
+  date:        Thu Jan 01 00:00:03 1970 +0000
+  files:       b dir/b
+  description:
+  c
+  
+  
+  changeset:   1:784de7cef101
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  files:       b
+  description:
+  b
+  
+  
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  files:       a
+  description:
+  a
+  
+  
+
+
+log -pf dir/b
+
+  $ hg log -pf dir/b
+  changeset:   2:41dd4284081e
+  user:        test
+  date:        Thu Jan 01 00:00:03 1970 +0000
+  summary:     c
+  
+  diff -r 784de7cef101 -r 41dd4284081e dir/b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/dir/b	Thu Jan 01 00:00:03 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+  changeset:   1:784de7cef101
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  summary:     b
+  
+  diff -r 8580ff50825a -r 784de7cef101 b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:02 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     a
+  
+  diff -r 000000000000 -r 8580ff50825a a
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:01 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+
+log -vf dir/b
+
+  $ hg log -vf dir/b
+  changeset:   2:41dd4284081e
+  user:        test
+  date:        Thu Jan 01 00:00:03 1970 +0000
+  files:       b dir/b
+  description:
+  c
+  
+  
+  changeset:   1:784de7cef101
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  files:       b
+  description:
+  b
+  
+  
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  files:       a
+  description:
+  a
+  
+  
+
+
+log copies with --copies
+
+  $ hg log -vC --template '{rev} {file_copies}\n'
+  4 e (dir/b)
+  3 b (a)
+  2 dir/b (b)
+  1 b (a)
+  0 
+
+log copies switch without --copies, with old filecopy template
+
+  $ hg log -v --template '{rev} {file_copies_switch%filecopy}\n'
+  4 
+  3 
+  2 
+  1 
+  0 
+
+log copies switch with --copies
+
+  $ hg log -vC --template '{rev} {file_copies_switch}\n'
+  4 e (dir/b)
+  3 b (a)
+  2 dir/b (b)
+  1 b (a)
+  0 
+
+
+log copies with hardcoded style and with --style=default
+
+  $ hg log -vC -r4
+  changeset:   4:66c1345dc4f9
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:05 1970 +0000
+  files:       dir/b e
+  copies:      e (dir/b)
+  description:
+  e
+  
+  
+  $ hg log -vC -r4 --style=default
+  changeset:   4:66c1345dc4f9
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:05 1970 +0000
+  files:       dir/b e
+  copies:      e (dir/b)
+  description:
+  e
+  
+  
+
+
+log copies, non-linear manifest
+
+  $ hg up -C 3
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg mv dir/b e
+  $ echo foo > foo
+  $ hg ci -Ame2 -d '6 0'
+  adding foo
+  created new head
+  $ hg log -v --template '{rev} {file_copies}\n' -r 5
+  5 e (dir/b)
+
+
+log copies, execute bit set
+
+  $ chmod +x e
+  $ hg ci -me3 -d '7 0'
+  $ hg log -v --template '{rev} {file_copies}\n' -r 6
+  6 
+
+
+log -p d
+
+  $ hg log -pv d
+  changeset:   3:7c6c671bb7cc
+  user:        test
+  date:        Thu Jan 01 00:00:04 1970 +0000
+  files:       a b d
+  description:
+  d
+  
+  
+  diff -r 41dd4284081e -r 7c6c671bb7cc d
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/d	Thu Jan 01 00:00:04 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+
+
+log --removed file
+
+  $ hg log --removed -v a
+  changeset:   3:7c6c671bb7cc
+  user:        test
+  date:        Thu Jan 01 00:00:04 1970 +0000
+  files:       a b d
+  description:
+  d
+  
+  
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  files:       a
+  description:
+  a
+  
+  
+
+log --removed revrange file
+
+  $ hg log --removed -v -r0:2 a
+  changeset:   0:8580ff50825a
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  files:       a
+  description:
+  a
+  
+  
+
+
+log --follow tests
+
+  $ hg init ../follow
+  $ cd ../follow
+
+  $ echo base > base
+  $ hg ci -Ambase -d '1 0'
+  adding base
+
+  $ echo r1 >> base
+  $ hg ci -Amr1 -d '1 0'
+  $ echo r2 >> base
+  $ hg ci -Amr2 -d '1 0'
+
+  $ hg up -C 1
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo b1 > b1
+  $ hg ci -Amb1 -d '1 0'
+  adding b1
+  created new head
+
+
+log -f
+
+  $ hg log -f
+  changeset:   3:e62f78d544b4
+  tag:         tip
+  parent:      1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1
+  
+  changeset:   1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     r1
+  
+  changeset:   0:67e992f2c4f3
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     base
+  
+
+
+log -f -r 1:tip
+
+  $ hg up -C 0
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo b2 > b2
+  $ hg ci -Amb2 -d '1 0'
+  adding b2
+  created new head
+  $ hg log -f -r 1:tip
+  changeset:   1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     r1
+  
+  changeset:   2:60c670bf5b30
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     r2
+  
+  changeset:   3:e62f78d544b4
+  parent:      1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1
+  
+
+
+log -r .  with two parents
+
+  $ hg up -C 3
+  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg merge tip
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  $ hg log -r .
+  changeset:   3:e62f78d544b4
+  parent:      1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1
+  
+
+
+log -r .  with one parent
+
+  $ hg ci -mm12 -d '1 0'
+  $ hg log -r .
+  changeset:   5:302e9dd6890d
+  tag:         tip
+  parent:      3:e62f78d544b4
+  parent:      4:ddb82e70d1a1
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     m12
+  
+
+  $ echo postm >> b1
+  $ hg ci -Amb1.1 -d'1 0'
+
+
+log --follow-first
+
+  $ hg log --follow-first
+  changeset:   6:2404bbcab562
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1.1
+  
+  changeset:   5:302e9dd6890d
+  parent:      3:e62f78d544b4
+  parent:      4:ddb82e70d1a1
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     m12
+  
+  changeset:   3:e62f78d544b4
+  parent:      1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1
+  
+  changeset:   1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     r1
+  
+  changeset:   0:67e992f2c4f3
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     base
+  
+
+
+log -P 2
+
+  $ hg log -P 2
+  changeset:   6:2404bbcab562
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1.1
+  
+  changeset:   5:302e9dd6890d
+  parent:      3:e62f78d544b4
+  parent:      4:ddb82e70d1a1
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     m12
+  
+  changeset:   4:ddb82e70d1a1
+  parent:      0:67e992f2c4f3
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b2
+  
+  changeset:   3:e62f78d544b4
+  parent:      1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1
+  
+
+
+log -r tip -p --git
+
+  $ hg log -r tip -p --git
+  changeset:   6:2404bbcab562
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1.1
+  
+  diff --git a/b1 b/b1
+  --- a/b1
+  +++ b/b1
+  @@ -1,1 +1,2 @@
+   b1
+  +postm
+  
+
+
+log -r ""
+
+  $ hg log -r ''
+  hg: parse error: empty query
+
+log -r <some unknown node id>
+
+  $ hg log -r 1000000000000000000000000000000000000000
+  abort: unknown revision '1000000000000000000000000000000000000000'!
+
+log -k r1
+
+  $ hg log -k r1
+  changeset:   1:3d5bf5654eda
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     r1
+  
+
+
+log -d -1
+
+  $ hg log -d -1
+
+
+log -p -l2 --color=always
+
+  $ hg --config extensions.color= --config color.mode=ansi \
+  >  log -p -l2 --color=always
+  changeset:   6:2404bbcab562
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1.1
+  
+  diff -r 302e9dd6890d -r 2404bbcab562 b1
+  --- a/b1	Thu Jan 01 00:00:01 1970 +0000
+  +++ b/b1	Thu Jan 01 00:00:01 1970 +0000
+  @@ -1,1 +1,2 @@
+   b1
+  +postm
+  
+  changeset:   5:302e9dd6890d
+  parent:      3:e62f78d544b4
+  parent:      4:ddb82e70d1a1
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     m12
+  
+  diff -r e62f78d544b4 -r 302e9dd6890d b2
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b2	Thu Jan 01 00:00:01 1970 +0000
+  @@ -0,0 +1,1 @@
+  +b2
+  
+
+
+log -r tip --stat
+
+  $ hg log -r tip --stat
+  changeset:   6:2404bbcab562
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     b1.1
+  
+   b1 |  1 +
+   1 files changed, 1 insertions(+), 0 deletions(-)
+  
+
+  $ cd ..
+
+  $ hg init usertest
+  $ cd usertest
+
+  $ echo a > a
+  $ hg ci -A -m "a" -u "User One <user1@example.org>"
+  adding a
+  $ echo b > b
+  $ hg ci -A -m "b" -u "User Two <user2@example.org>"
+  adding b
+
+  $ hg log -u "User One <user1@example.org>"
+  changeset:   0:29a4c94f1924
+  user:        User One <user1@example.org>
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     a
+  
+  $ hg log -u "user1" -u "user2"
+  changeset:   1:e834b5e69c0e
+  tag:         tip
+  user:        User Two <user2@example.org>
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     b
+  
+  changeset:   0:29a4c94f1924
+  user:        User One <user1@example.org>
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     a
+  
+  $ hg log -u "user3"
+
+  $ cd ..
+
+  $ hg init branches
+  $ cd branches
+
+  $ echo a > a
+  $ hg ci -A -m "commit on default"
+  adding a
+  $ hg branch test
+  marked working directory as branch test
+  $ echo b > b
+  $ hg ci -A -m "commit on test"
+  adding b
+
+  $ hg up default
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo c > c
+  $ hg ci -A -m "commit on default"
+  adding c
+  $ hg up test
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo c > c
+  $ hg ci -A -m "commit on test"
+  adding c
+
+
+log -b default
+
+  $ hg log -b default
+  changeset:   2:c3a4f03cc9a7
+  parent:      0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+
+
+log -b test
+
+  $ hg log -b test
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+
+
+log -b dummy
+
+  $ hg log -b dummy
+  abort: unknown revision 'dummy'!
+
+
+log -b .
+
+  $ hg log -b .
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+
+
+log -b default -b test
+
+  $ hg log -b default -b test
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   2:c3a4f03cc9a7
+  parent:      0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+
+
+log -b default -b .
+
+  $ hg log -b default -b .
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   2:c3a4f03cc9a7
+  parent:      0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+
+
+log -b . -b test
+
+  $ hg log -b . -b test
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+
+
+log -b 2
+
+  $ hg log -b 2
+  changeset:   2:c3a4f03cc9a7
+  parent:      0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+
+
+log -p --cwd dir (in subdir)
+
+  $ mkdir dir
+  $ hg log -p --cwd dir
+  changeset:   3:f5d8de11c2e2
+  branch:      test
+  tag:         tip
+  parent:      1:d32277701ccb
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  diff -r d32277701ccb -r f5d8de11c2e2 c
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +c
+  
+  changeset:   2:c3a4f03cc9a7
+  parent:      0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  diff -r 24427303d56f -r c3a4f03cc9a7 c
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +c
+  
+  changeset:   1:d32277701ccb
+  branch:      test
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on test
+  
+  diff -r 24427303d56f -r d32277701ccb b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +b
+  
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  diff -r 000000000000 -r 24427303d56f a
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+
+
+log -p -R repo
+
+  $ cd dir
+  $ hg log -p -R .. ../a
+  changeset:   0:24427303d56f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit on default
+  
+  diff -r 000000000000 -r 24427303d56f a
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  
+
+
+  $ cd ..
+  $ hg init follow2
+  $ cd follow2
+
+
+# Build the following history:
+# tip - o - x - o - x - x
+#    \                 /
+#     o - o - o - x
+#      \     /
+#         o
+#
+
+# Where "o" is a revision containing "foo" and
+# "x" is a revision without "foo"
+
+  $ touch init
+  $ hg ci -A -m "init, unrelated"
+  adding init
+  $ echo 'foo' > init
+  $ hg ci -m "change, unrelated"
+  $ echo 'foo' > foo
+  $ hg ci -A -m "add unrelated old foo"
+  adding foo
+  $ hg rm foo
+  $ hg ci -m "delete foo, unrelated"
+  $ echo 'related' > foo
+  $ hg ci -A -m "add foo, related"
+  adding foo
+
+  $ hg up 0
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ touch branch
+  $ hg ci -A -m "first branch, unrelated"
+  adding branch
+  created new head
+  $ touch foo
+  $ hg ci -A -m "create foo, related"
+  adding foo
+  $ echo 'change' > foo
+  $ hg ci -m "change foo, related"
+
+  $ hg up 6
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo 'change foo in branch' > foo
+  $ hg ci -m "change foo in branch, related"
+  created new head
+  $ hg merge 7
+  merging foo
+  warning: conflicts during merge.
+  merging foo failed!
+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
+  $ echo 'merge 1' > foo
+  $ hg resolve -m foo
+  $ hg ci -m "First merge, related"
+
+  $ hg merge 4
+  merging foo
+  warning: conflicts during merge.
+  merging foo failed!
+  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
+  $ echo 'merge 2' > foo
+  $ hg resolve -m foo
+  $ hg ci -m "Last merge, related"
+
+  $ hg --config "extensions.graphlog=" glog
+  @    changeset:   10:4dae8563d2c5
+  |\   tag:         tip
+  | |  parent:      9:7b35701b003e
+  | |  parent:      4:88176d361b69
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     Last merge, related
+  | |
+  | o    changeset:   9:7b35701b003e
+  | |\   parent:      8:e5416ad8a855
+  | | |  parent:      7:87fe3144dcfa
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     First merge, related
+  | | |
+  | | o  changeset:   8:e5416ad8a855
+  | | |  parent:      6:dc6c325fe5ee
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     change foo in branch, related
+  | | |
+  | o |  changeset:   7:87fe3144dcfa
+  | |/   user:        test
+  | |    date:        Thu Jan 01 00:00:00 1970 +0000
+  | |    summary:     change foo, related
+  | |
+  | o  changeset:   6:dc6c325fe5ee
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     create foo, related
+  | |
+  | o  changeset:   5:73db34516eb9
+  | |  parent:      0:e87515fd044a
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     first branch, unrelated
+  | |
+  o |  changeset:   4:88176d361b69
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     add foo, related
+  | |
+  o |  changeset:   3:dd78ae4afb56
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     delete foo, unrelated
+  | |
+  o |  changeset:   2:c4c64aedf0f7
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     add unrelated old foo
+  | |
+  o |  changeset:   1:e5faa7440653
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    summary:     change, unrelated
+  |
+  o  changeset:   0:e87515fd044a
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     init, unrelated
+  
+
+  $ hg --traceback log -f foo
+  changeset:   10:4dae8563d2c5
+  tag:         tip
+  parent:      9:7b35701b003e
+  parent:      4:88176d361b69
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     Last merge, related
+  
+  changeset:   9:7b35701b003e
+  parent:      8:e5416ad8a855
+  parent:      7:87fe3144dcfa
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     First merge, related
+  
+  changeset:   8:e5416ad8a855
+  parent:      6:dc6c325fe5ee
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     change foo in branch, related
+  
+  changeset:   7:87fe3144dcfa
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     change foo, related
+  
+  changeset:   6:dc6c325fe5ee
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     create foo, related
+  
+  changeset:   4:88176d361b69
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     add foo, related
+  
+
+  $ exit 0