view tests/test-tag.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 52e4ac3e63f7
children
line wrap: on
line source

changeset:   0:0acdaf898367
tag:         tip
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     test

abort: tag names cannot consist entirely of whitespace
changeset:   1:3ecf002a1c57
tag:         tip
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Added tag bleah for changeset 0acdaf898367

changeset:   0:0acdaf898367
tag:         bleah
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     test

abort: working copy of .hgtags is changed (please commit .hgtags manually)
failed
abort: tag names must be unique
failed
abort: the name 'tip' is reserved
failed
abort: tag 'bleah' already exists (use -f to force)
failed
abort: tag 'bleah' already exists (use -f to force)
failed
abort: tag 'blecch' does not exist
failed
abort: tag 'blecch' does not exist
failed
0acdaf8983679e0aac16e811534eb49d7ee1f2b4 bleah
0acdaf8983679e0aac16e811534eb49d7ee1f2b4 bleah0
868cc8fbb43b754ad09fa109885d243fc49adae7 gack
868cc8fbb43b754ad09fa109885d243fc49adae7 gawk
868cc8fbb43b754ad09fa109885d243fc49adae7 gorp
868cc8fbb43b754ad09fa109885d243fc49adae7 gack
3807bcf62c5614cb6c16436b514d7764ca5f1631 gack
3807bcf62c5614cb6c16436b514d7764ca5f1631 gack
0000000000000000000000000000000000000000 gack
868cc8fbb43b754ad09fa109885d243fc49adae7 gorp
0000000000000000000000000000000000000000 gorp
3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar
3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1
abort: '\n' cannot be used in a tag name
abort: ':' cannot be used in a tag name
% cloning local tags
changeset:   0:0acdaf898367
tag:         bleah
tag:         bleah0
tag:         foobar
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     test

changeset:   1:3ecf002a1c57
tag:         bleah1
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Added tag bleah for changeset 0acdaf898367

changeset:   2:868cc8fbb43b
tag:         gawk
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Added tag bleah0 for changeset 0acdaf898367

changeset:   3:3807bcf62c56
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Added tag gack, gawk, gorp for changeset 868cc8fbb43b

changeset:   4:140c6e8597b4
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Added tag gack for changeset 3807bcf62c56

changeset:   5:470a65fa7cc9
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     Removed tag gack, gorp

1[tip]   3ecf002a1c57   1970-01-12 13:46 +0000   test
  Added tag bleah for changeset 0acdaf898367

5[tip]   470a65fa7cc9   1970-01-12 13:46 +0000   test
  Removed tag gack, gorp

% issue 601
3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah13ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1
f68b039e72eacbb2e68b0543e1f6e50990aa2bb5 localnewline
0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar
6ae703d793c8b1f097116869275ecd97b2977a2b newline
% tag and branch using same name
marked working directory as branch tag-and-branch-same-name
warning: tag tag-and-branch-same-name conflicts with existing branch name
% test custom commit messages
custom tag message
second line