##// END OF EJS Templates
merge: don't report progress for dr/rd actions...
merge: don't report progress for dr/rd actions It is easier to reason about certain algorithms in terms of a file->action mapping than the current action->list-of-files. Bid merge is already written this way (but with a list of actions per file), and largefiles' overridecalculateupdates() will also benefit. However, that requires us to have at most one action per file. That requirement is currently violated by 'dr' (divergent rename) and 'rd' (rename and delete) actions, which can exist for the same file as some other action. These actions are only used for displaying warnings to the user; they don't change anything in the working copy or the dirstate. In this way, they are similar to the 'k' (keep) action. However, they are even less action-like than 'k' is: 'k' at least describes what to do with the file ("do nothing"), while 'dr' and 'rd' or only annotations for files for which there may exist other, "real" actions. As a first step towards separating these acitons out, stop including them in the progress output, just like we already exclude the 'k' action.

File last commit:

r22406:2e47e461 default
r23524:a1a7c94d default
Show More
test-dirstate.t
88 lines | 1.8 KiB | text/troff | Tads3Lexer
Adrian Buehlmann
tests: combine test-dirstate-future.t...
r11888 ------ Test dirstate._dirs refcounting
Adrian Buehlmann
tests: unify test-dirstatedirs
r11887
$ hg init t
$ cd t
$ mkdir -p a/b/c/d
$ touch a/b/c/d/x
$ touch a/b/c/d/y
$ touch a/b/c/d/z
$ hg ci -Am m
adding a/b/c/d/x
adding a/b/c/d/y
adding a/b/c/d/z
$ hg mv a z
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 moving a/b/c/d/x to z/b/c/d/x (glob)
moving a/b/c/d/y to z/b/c/d/y (glob)
moving a/b/c/d/z to z/b/c/d/z (glob)
Joshua Redstone
dirstate: add dir/file collision test...
r17095
Test name collisions
$ rm z/b/c/d/x
$ mkdir z/b/c/d/x
$ touch z/b/c/d/x/y
$ hg add z/b/c/d/x/y
abort: file 'z/b/c/d/x' in dirstate clashes with 'z/b/c/d/x/y'
[255]
$ rm -rf z/b/c/d
$ touch z/b/c/d
$ hg add z/b/c/d
abort: directory 'z/b/c/d' already in dirstate
[255]
Adrian Buehlmann
tests: combine test-dirstate-future.t...
r11888 $ cd ..
Adrian Buehlmann
tests: unify test-dirstatedirs
r11887
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1790: dirstate entry locked into unset if file mtime is set into
the future
Adrian Buehlmann
tests: combine test-dirstate-future.t...
r11888
Prepare test repo:
$ hg init u
$ cd u
$ echo a > a
$ hg add
adding a
$ hg ci -m1
Set mtime of a into the future:
$ touch -t 202101011200 a
Status must not set a's entry to unset (issue1790):
$ hg status
$ hg debugstate
n 644 2 2021-01-01 12:00:00 a
Matt Mackall
dirstate: handle large dates and times with masking (issue2608)...
r17733
Test modulo storage/comparison of absurd dates:
Adrian Buehlmann
tests: combine test-dirstate-future.t...
r11888
Jim Hague
tests: AIX can't handle negative date in test-dirstate.t...
r19092 #if no-aix
Matt Mackall
dirstate: handle large dates and times with masking (issue2608)...
r17733 $ touch -t 195001011200 a
$ hg st
$ hg debugstate
n 644 2 2018-01-19 15:14:08 a
Jim Hague
tests: AIX can't handle negative date in test-dirstate.t...
r19092 #endif
Durham Goode
dirstate: add test for exceptions during updates...
r22406
Verify that exceptions during a dirstate change leave the dirstate
coherent (issue4353)
$ cat > ../dirstateexception.py <<EOF
> from mercurial import merge, extensions, util
>
> def wraprecordupdates(orig, repo, actions, branchmerge):
> raise util.Abort("simulated error while recording dirstateupdates")
>
> def reposetup(ui, repo):
> extensions.wrapfunction(merge, 'recordupdates', wraprecordupdates)
> EOF
$ hg rm a
$ hg commit -m 'rm a'
$ echo "[extensions]" >> .hg/hgrc
$ echo "dirstateex=../dirstateexception.py" >> .hg/hgrc
$ hg up 0
abort: simulated error while recording dirstateupdates
[255]
$ hg log -r . -T '{rev}\n'
1
$ hg status
? a