annotate tests/test-dumprevlog.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 7946503ec76e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
1 % prepare repo-a
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
2 checking changesets
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
3 checking manifests
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
4 crosschecking files in changesets and manifests
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
5 checking files
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
6 1 files, 3 changesets, 3 total revisions
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
7
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
8 % dumping revlog of file a to stdout
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
9 file: .hg/store/data/a.i
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
10 node: 183d2312b35066fb6b3b449b84efc370d50993d0
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
11 linkrev: 0
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
12 parents: 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
13 length: 15
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
14 -start-
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
15 this is file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
16
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
17 -end-
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
18 node: b1047953b6e6b633c0d8197eaa5116fbdfd3095b
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
19 linkrev: 1
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
20 parents: 183d2312b35066fb6b3b449b84efc370d50993d0 0000000000000000000000000000000000000000
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
21 length: 32
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
22 -start-
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
23 this is file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
24 adding to file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
25
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
26 -end-
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
27 node: 8c4fd1f7129b8cdec6c7f58bf48fb5237a4030c1
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
28 linkrev: 2
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
29 parents: b1047953b6e6b633c0d8197eaa5116fbdfd3095b 0000000000000000000000000000000000000000
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
30 length: 54
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
31 -start-
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
32 this is file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
33 adding to file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
34 adding more to file a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
35
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
36 -end-
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
37 % dumprevlog done
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
38
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
39 % dump all revlogs to file repo.dump
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
40
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
41 % undumping into repo-b
6512
368a4ec603cc merge: introduce mergestate
Matt Mackall <mpm@selenic.com>
parents: 6465
diff changeset
42 .hg/store/00changelog.i
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
43 .hg/store/00manifest.i
6512
368a4ec603cc merge: introduce mergestate
Matt Mackall <mpm@selenic.com>
parents: 6465
diff changeset
44 .hg/store/data/a.i
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
45 % undumping done
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
46
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
47 % clone --pull repo-b repo-c to rebuild fncache
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
48 requesting all changes
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
49 adding changesets
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
50 adding manifests
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
51 adding file changes
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
52 added 3 changesets with 3 changes to 1 files
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
53
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
54 % verify repo-c
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
55 checking changesets
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
56 checking manifests
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
57 crosschecking files in changesets and manifests
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
58 checking files
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
59 1 files, 3 changesets, 3 total revisions
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
60
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
61 % comparing repos
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
62 comparing with repo-a
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
63 searching for changes
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
64 no changes found
7229
7946503ec76e introduce fncache repository layout
Adrian Buehlmann <adrian@cadifra.com>
parents: 6512
diff changeset
65 comparing with repo-c
6465
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
66 searching for changes
9b340e725c11 add tests for contrib/dumprevlog and undumprevlog
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
67 no changes found