##// END OF EJS Templates
tests: use pattern matching to mask `ECONNREFUSED` messages...
tests: use pattern matching to mask `ECONNREFUSED` messages The second and third one of these in `test-http-proxy.t` was failing on Windows. The others were found by grep and by failed tests when output was matched and an attempt was made to emit the mask pattern. The first clonebundles failure on Windows emitted: error fetching bundle: [WinError 10061] $ECONNREFUSED$ We should probably stringify that better to get rid of the "[WinError 10061]" part.

File last commit:

r50668:13c0e3b4 stable
r52835:73a43fe3 default
Show More
test-status-tracked-key.t
240 lines | 5.7 KiB | text/troff | Tads3Lexer
/ tests / test-status-tracked-key.t
tracked-key: remove the dual write and rename to tracked-hint...
r49644 ===============================
Test the "tracked hint" feature
===============================
dirstate: introduce a "tracked-key" feature...
r49533
tracked-key: remove the dual write and rename to tracked-hint...
r49644 The tracked hint feature provide a file that get updated when the set of tracked
dirstate: introduce a "tracked-key" feature...
r49533 files get updated.
basic setup
$ cat << EOF >> $HGRCPATH
> [format]
tracked-key: remove the dual write and rename to tracked-hint...
r49644 > use-dirstate-tracked-hint=yes
dirstate: introduce a "tracked-key" feature...
r49533 > EOF
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ hg init tracked-hint-test
$ cd tracked-hint-test
dirstate: introduce a "tracked-key" feature...
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
-----------
tracked-key: remove the dual write and rename to tracked-hint...
r49644 The tracked hint file should exist
dirstate: introduce a "tracked-key" feature...
r49533
$ ls -1 .hg/dirstate*
.hg/dirstate
tracked-key: remove the dual write and rename to tracked-hint...
r49644 .hg/dirstate-tracked-hint
dirstate: introduce a "tracked-key" feature...
r49533
key-file stay the same if the tracked set is unchanged
------------------------------------------------------
(copy its content for later comparison)
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ echo foo >> nf0
$ sleep 1
$ hg status
M nf0
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ hg revert -C nf0
$ sleep 1
$ hg status
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533
key-file change if the tracked set is changed manually
------------------------------------------------------
adding a file to tracking
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ echo x > x
$ hg add x
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
remove a file from tracking
(forget)
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ hg forget x
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
(remove)
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ hg remove nf1
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
key-file changes on revert (when applicable)
--------------------------------------------
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
r49533 $ hg status
R nf1
? x
$ hg revert --all
undeleting nf1
$ hg status
? x
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
`hg update` does affect the key-file (when needed)
--------------------------------------------------
update changing the tracked set
(removing)
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
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
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
(adding)
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
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
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
Files .hg/dirstate-tracked-hint and ../key-bck differ
dirstate: introduce a "tracked-key" feature...
r49533 [1]
update not affecting the tracked set
$ echo foo >> nf0
$ hg commit -m foo
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ cp .hg/dirstate-tracked-hint ../key-bck
dirstate: introduce a "tracked-key" feature...
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
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641
Test upgrade and downgrade
==========================
av6
tests: use `test -f` instead of `ls` to see if a file is present (issue6662)...
r50668 $ test -f .hg/dirstate-tracked-hint
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641 $ hg debugrequires | grep 'tracked'
tracked-key: update the requirement value...
r49642 dirstate-tracked-key-v1
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641
downgrade
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=no --run --quiet
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641 upgrade will perform the following actions:
requirements
preserved: * (glob)
tracked-key: update the requirement value...
r49642 removed: dirstate-tracked-key-v1
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641
no revlogs to process
av6
tests: use `test -f` instead of `ls` to see if a file is present (issue6662)...
r50668 $ test -f .hg/dirstate-tracked-hint
[1]
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641 $ hg debugrequires | grep 'tracked'
[1]
upgrade
tracked-key: remove the dual write and rename to tracked-hint...
r49644 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=yes --run --quiet
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641 upgrade will perform the following actions:
requirements
preserved: * (glob)
tracked-key: update the requirement value...
r49642 added: dirstate-tracked-key-v1
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641
no revlogs to process
av6
tests: use `test -f` instead of `ls` to see if a file is present (issue6662)...
r50668 $ test -f .hg/dirstate-tracked-hint
tracked-key: make it possible to upgrade to and downgrade from the feature...
r49641 $ hg debugrequires | grep 'tracked'
tracked-key: update the requirement value...
r49642 dirstate-tracked-key-v1
auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint...
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
Arseniy Alekseyev
rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade...
r50395 rhg supports this feature
$ hg status -R auto-upgrade \
> --config format.use-dirstate-tracked-hint=yes --config rhg.on-unsupported=abort
auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint...
r50089 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