test-status-tracked-key.t
238 lines
| 5.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-status-tracked-key.t
r49644 | =============================== | |||
Test the "tracked hint" feature | ||||
=============================== | ||||
r49533 | ||||
r49644 | The tracked hint feature provide a file that get updated when the set of tracked | |||
r49533 | files get updated. | |||
basic setup | ||||
$ cat << EOF >> $HGRCPATH | ||||
> [format] | ||||
r49644 | > use-dirstate-tracked-hint=yes | |||
r49533 | > EOF | |||
r49644 | $ hg init tracked-hint-test | |||
$ cd tracked-hint-test | ||||
r49533 | $ 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 | ||||
----------- | ||||
r49644 | The tracked hint file should exist | |||
r49533 | ||||
$ ls -1 .hg/dirstate* | ||||
.hg/dirstate | ||||
r49644 | .hg/dirstate-tracked-hint | |||
r49533 | ||||
key-file stay the same if the tracked set is unchanged | ||||
------------------------------------------------------ | ||||
(copy its content for later comparison) | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ echo foo >> nf0 | |||
$ sleep 1 | ||||
$ hg status | ||||
M nf0 | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg revert -C nf0 | |||
$ sleep 1 | ||||
$ hg status | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | ||||
key-file change if the tracked set is changed manually | ||||
------------------------------------------------------ | ||||
adding a file to tracking | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ echo x > x | |||
$ hg add x | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
remove a file from tracking | ||||
(forget) | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg forget x | |||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
(remove) | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg remove nf1 | |||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
key-file changes on revert (when applicable) | ||||
-------------------------------------------- | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg status | |||
R nf1 | ||||
? x | ||||
$ hg revert --all | ||||
undeleting nf1 | ||||
$ hg status | ||||
? x | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
`hg update` does affect the key-file (when needed) | ||||
-------------------------------------------------- | ||||
update changing the tracked set | ||||
(removing) | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg status --rev . --rev '.#generations[-1]' | |||
R nf10 | ||||
$ hg up '.#generations[-1]' | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
(adding) | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg status --rev . --rev '.#generations[1]' | |||
A nf10 | ||||
$ hg up '.#generations[1]' | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
Files .hg/dirstate-tracked-hint and ../key-bck differ | ||||
r49533 | [1] | |||
update not affecting the tracked set | ||||
$ echo foo >> nf0 | ||||
$ hg commit -m foo | ||||
r49644 | $ cp .hg/dirstate-tracked-hint ../key-bck | |||
r49533 | $ hg status --rev . --rev '.#generations[-1]' | |||
M nf0 | ||||
$ hg up '.#generations[-1]' | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
r49644 | $ diff --brief .hg/dirstate-tracked-hint ../key-bck | |||
r49641 | ||||
Test upgrade and downgrade | ||||
========================== | ||||
r49644 | $ ls .hg/dirstate-tracked-hint | |||
.hg/dirstate-tracked-hint | ||||
r49641 | $ hg debugrequires | grep 'tracked' | |||
r49642 | dirstate-tracked-key-v1 | |||
r49641 | ||||
downgrade | ||||
r49644 | $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=no --run --quiet | |||
r49641 | upgrade will perform the following actions: | |||
requirements | ||||
preserved: * (glob) | ||||
r49642 | removed: dirstate-tracked-key-v1 | |||
r49641 | ||||
no revlogs to process | ||||
r49644 | $ ls -1 .hg/dirstate-tracked-hint | |||
Raphaël Gomès
|
r49656 | ls: *.hg/dirstate-tracked-hint*: $ENOENT$ (glob) | ||
r49641 | [2] | |||
$ hg debugrequires | grep 'tracked' | ||||
[1] | ||||
upgrade | ||||
r49644 | $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=yes --run --quiet | |||
r49641 | upgrade will perform the following actions: | |||
requirements | ||||
preserved: * (glob) | ||||
r49642 | added: dirstate-tracked-key-v1 | |||
r49641 | ||||
no revlogs to process | ||||
r49644 | $ ls -1 .hg/dirstate-tracked-hint | |||
.hg/dirstate-tracked-hint | ||||
r49641 | $ hg debugrequires | grep 'tracked' | |||
r49642 | dirstate-tracked-key-v1 | |||
r50089 | $ cd .. | |||
Test automatic upgrade and downgrade | ||||
------------------------------------ | ||||
create an initial repository | ||||
$ hg init auto-upgrade \ | ||||
> --config format.use-dirstate-tracked-hint=no | ||||
$ hg debugbuilddag -R auto-upgrade --new-file .+5 | ||||
$ hg -R auto-upgrade update | ||||
6 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg debugformat -R auto-upgrade | grep tracked | ||||
tracked-hint: no | ||||
upgrade it to dirstate-tracked-hint automatically | ||||
$ hg status -R auto-upgrade \ | ||||
> --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ | ||||
> --config format.use-dirstate-tracked-hint=yes | ||||
automatically upgrading repository to the `tracked-hint` feature | ||||
(see `hg help config.format.use-dirstate-tracked-hint` for details) | ||||
$ hg debugformat -R auto-upgrade | grep tracked | ||||
tracked-hint: yes | ||||
downgrade it from dirstate-tracked-hint automatically | ||||
$ hg status -R auto-upgrade \ | ||||
> --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ | ||||
> --config format.use-dirstate-tracked-hint=no | ||||
automatically downgrading repository from the `tracked-hint` feature | ||||
(see `hg help config.format.use-dirstate-tracked-hint` for details) | ||||
$ hg debugformat -R auto-upgrade | grep tracked | ||||
tracked-hint: no | ||||