view tests/test-log.out @ 11769:ca6cebd8734e stable

dirstate: ignore symlinks when fs cannot handle them (issue1888) When the filesystem cannot handle the executable bit, we currently ignore it completely when looking for modified files. Similarly, it is impossible to set or clear the bit when the filesystem ignores it. This patch makes Mercurial treat symbolic links the same way. Symlinks are a little different since they manifest themselves as small files containing a filename (the symlink target). On Windows, these files show up as regular files, and on Linux and Mac they show up as real symlinks. Issue1888 presents a case where the symlink files are better ignored from the Windows side. A Linux client creates symlinks in a working copy which is shared over a network between Linux and Windows clients. The Samba server is helpful and defererences the symlink when the Windows client looks at it. This means that Mercurial on the Windows side sees file content instead of a file name in the symlink, and hence flags the link as modified. Ignoring the change would be much more helpful, similarly to how Mercurial does not report any changes when executable bits are ignored in a checkout on Windows. An initial checkout of a symbolic link on a file system that cannot handle symbolic links will still result in a regular file containing the target file name as its content. Sharing such a checkout with a Linux client will not turn the file into a symlink automatically, but 'hg revert' can fix that. After the revert, the Windows client will see the correct file content (provided by the Samba server when it follows the link on the Linux side) and otherwise ignore the change. Running 'hg perfstatus' 10 times gives these results: Before: After: min: 0.544703 min: 0.546549 med: 0.547592 med: 0.548881 avg: 0.549146 avg: 0.548549 max: 0.564112 max: 0.551504 The median time is increased about 0.24%.
author Martin Geisler <mg@aragost.com>
date Mon, 09 Aug 2010 15:31:56 +0200
parents efbc09fdefd8
children dbb98d8fbcaf 28ddf67198b2
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

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