|
|
==============================
|
|
|
Test the "tracked key" feature
|
|
|
==============================
|
|
|
|
|
|
The tracked key feature provide a file that get updated when the set of tracked
|
|
|
files get updated.
|
|
|
|
|
|
basic setup
|
|
|
|
|
|
$ cat << EOF >> $HGRCPATH
|
|
|
> [format]
|
|
|
> exp-dirstate-tracked-key-version=1
|
|
|
> EOF
|
|
|
|
|
|
$ hg init tracked-key-test
|
|
|
$ cd tracked-key-test
|
|
|
$ hg debugbuilddag '.+10' -n
|
|
|
$ hg log -G -T '{rev} {desc} {files}\n'
|
|
|
o 10 r10 nf10
|
|
|
|
|
|
|
o 9 r9 nf9
|
|
|
|
|
|
|
o 8 r8 nf8
|
|
|
|
|
|
|
o 7 r7 nf7
|
|
|
|
|
|
|
o 6 r6 nf6
|
|
|
|
|
|
|
o 5 r5 nf5
|
|
|
|
|
|
|
o 4 r4 nf4
|
|
|
|
|
|
|
o 3 r3 nf3
|
|
|
|
|
|
|
o 2 r2 nf2
|
|
|
|
|
|
|
o 1 r1 nf1
|
|
|
|
|
|
|
o 0 r0 nf0
|
|
|
|
|
|
$ hg up tip
|
|
|
11 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
$ hg files
|
|
|
nf0
|
|
|
nf1
|
|
|
nf10
|
|
|
nf2
|
|
|
nf3
|
|
|
nf4
|
|
|
nf5
|
|
|
nf6
|
|
|
nf7
|
|
|
nf8
|
|
|
nf9
|
|
|
|
|
|
key-file exists
|
|
|
-----------
|
|
|
|
|
|
The tracked key file should exist
|
|
|
|
|
|
$ ls -1 .hg/dirstate*
|
|
|
.hg/dirstate
|
|
|
.hg/dirstate-tracked-key
|
|
|
|
|
|
key-file stay the same if the tracked set is unchanged
|
|
|
------------------------------------------------------
|
|
|
|
|
|
(copy its content for later comparison)
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ echo foo >> nf0
|
|
|
$ sleep 1
|
|
|
$ hg status
|
|
|
M nf0
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg revert -C nf0
|
|
|
$ sleep 1
|
|
|
$ hg status
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
|
|
|
key-file change if the tracked set is changed manually
|
|
|
------------------------------------------------------
|
|
|
|
|
|
adding a file to tracking
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ echo x > x
|
|
|
$ hg add x
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
remove a file from tracking
|
|
|
(forget)
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg forget x
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
(remove)
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg remove nf1
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
key-file changes on revert (when applicable)
|
|
|
--------------------------------------------
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg status
|
|
|
R nf1
|
|
|
? x
|
|
|
$ hg revert --all
|
|
|
undeleting nf1
|
|
|
$ hg status
|
|
|
? x
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
|
|
|
`hg update` does affect the key-file (when needed)
|
|
|
--------------------------------------------------
|
|
|
|
|
|
update changing the tracked set
|
|
|
|
|
|
(removing)
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg status --rev . --rev '.#generations[-1]'
|
|
|
R nf10
|
|
|
$ hg up '.#generations[-1]'
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
(adding)
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg status --rev . --rev '.#generations[1]'
|
|
|
A nf10
|
|
|
$ hg up '.#generations[1]'
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
Files .hg/dirstate-tracked-key and ../key-bck differ
|
|
|
[1]
|
|
|
|
|
|
update not affecting the tracked set
|
|
|
|
|
|
$ echo foo >> nf0
|
|
|
$ hg commit -m foo
|
|
|
|
|
|
$ cp .hg/dirstate-tracked-key ../key-bck
|
|
|
$ hg status --rev . --rev '.#generations[-1]'
|
|
|
M nf0
|
|
|
$ hg up '.#generations[-1]'
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
$ diff --brief .hg/dirstate-tracked-key ../key-bck
|
|
|
|