view tests/test-log.out @ 11899:99cafcae25d9

log: do not --follow file that is deleted and recreated later (issue732) == What == issue732 is only one example of a buggy behaviour, but there are in fact many intricated cases. For example: ( "o" contains an alive version of the tracked file, "x" does not) tip - o - o - x - o - o - x ... \ o - o - o - o - x ... \ / o - o This repository contains at least two instances of the tracked file, but when calling "hg log -f file" only the latest one (the one alive in tip) matters to us. == How == We must extract from the filelog the history of the file instance we're interested in and discard changes related to other instances of that file. We see that we're only interested in ancestors(node), and that all other nodes in the filelog should not be considered.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Sun, 15 Aug 2010 23:17:53 +0900
parents dbb98d8fbcaf
children
line wrap: on
line source

adding a
changeset:   0:8580ff50825a
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
summary:     a

% -f, directory
abort: cannot follow nonexistent file: "dir"
% -f, but no args
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
changeset:   0:8580ff50825a
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
files:       a
description:
a


% many renames
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
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
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
4 e (dir/b)
3 b (a)
2 dir/b (b)
1 b (a)
0 
% log copies switch without --copies, with old filecopy template
4 
3 
2 
1 
0 
% log copies switch with --copies
4 e (dir/b)
3 b (a)
2 dir/b (b)
1 b (a)
0 
% log copies with hardcoded style and with --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


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
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding foo
created new head
5 e (dir/b)
% log copies, execute bit set
6 
% log -p 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
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
changeset:   0:8580ff50825a
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
files:       a
description:
a


adding base
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding b1
created new head
% 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

1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding b2
created new head
% 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

2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% log -r . with two parents
changeset:   3:e62f78d544b4
parent:      1:3d5bf5654eda
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
summary:     b1

% log -r . with one parent
changeset:   5:302e9dd6890d
tag:         tip
parent:      3:e62f78d544b4
parent:      4:ddb82e70d1a1
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
summary:     m12

% 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
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
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: parse error: empty query
% log -r <some unknown node id>
abort: unknown revision '1000000000000000000000000000000000000000'!
% log -k r1
changeset:   1:3d5bf5654eda
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
summary:     r1

% log -d -1
% 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
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(-)

adding a
adding b
changeset:   0:29a4c94f1924
user:        User One <user1@example.org>
date:        Thu Jan 01 00:00:00 1970 +0000
summary:     a

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

adding a
marked working directory as branch test
adding b
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding c
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding c
% 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
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
abort: unknown revision 'dummy'!
% 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
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 .
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
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
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)
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
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

adding init
adding foo
adding foo
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding branch
created new head
adding foo
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
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
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
@    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

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