mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
c8aa337d29
Tracked files that are deleted should always be reported as such, no matter what their state was in earlier revisions. This is encoded in in two conditions in the loop in basectx._buildstatus() for modified and added files, but the check is missing for clean files. We should check for clean files too, but instead of adding the check in a third place, move it earlier and skip most of the loop body for deleted files.
163 lines
6.4 KiB
Perl
163 lines
6.4 KiB
Perl
Tests of 'hg status --rev <rev>' to make sure status between <rev> and '.' get
|
|
combined correctly with the dirstate status.
|
|
|
|
$ hg init
|
|
|
|
First commit
|
|
|
|
$ python $TESTDIR/generate-working-copy-states.py state 2 1
|
|
$ hg addremove --similarity 0
|
|
adding content1_content1_content1-tracked
|
|
adding content1_content1_content1-untracked
|
|
adding content1_content1_content3-tracked
|
|
adding content1_content1_content3-untracked
|
|
adding content1_content1_missing-tracked
|
|
adding content1_content1_missing-untracked
|
|
adding content1_content2_content1-tracked
|
|
adding content1_content2_content1-untracked
|
|
adding content1_content2_content2-tracked
|
|
adding content1_content2_content2-untracked
|
|
adding content1_content2_content3-tracked
|
|
adding content1_content2_content3-untracked
|
|
adding content1_content2_missing-tracked
|
|
adding content1_content2_missing-untracked
|
|
adding content1_missing_content1-tracked
|
|
adding content1_missing_content1-untracked
|
|
adding content1_missing_content3-tracked
|
|
adding content1_missing_content3-untracked
|
|
adding content1_missing_missing-tracked
|
|
adding content1_missing_missing-untracked
|
|
$ hg commit -m first
|
|
|
|
Second commit
|
|
|
|
$ python $TESTDIR/generate-working-copy-states.py state 2 2
|
|
$ hg addremove --similarity 0
|
|
removing content1_missing_content1-tracked
|
|
removing content1_missing_content1-untracked
|
|
removing content1_missing_content3-tracked
|
|
removing content1_missing_content3-untracked
|
|
removing content1_missing_missing-tracked
|
|
removing content1_missing_missing-untracked
|
|
adding missing_content2_content2-tracked
|
|
adding missing_content2_content2-untracked
|
|
adding missing_content2_content3-tracked
|
|
adding missing_content2_content3-untracked
|
|
adding missing_content2_missing-tracked
|
|
adding missing_content2_missing-untracked
|
|
$ hg commit -m second
|
|
|
|
Working copy
|
|
|
|
$ python $TESTDIR/generate-working-copy-states.py state 2 wc
|
|
$ hg addremove --similarity 0
|
|
adding content1_missing_content1-tracked
|
|
adding content1_missing_content1-untracked
|
|
adding content1_missing_content3-tracked
|
|
adding content1_missing_content3-untracked
|
|
adding content1_missing_missing-tracked
|
|
adding content1_missing_missing-untracked
|
|
adding missing_missing_content3-tracked
|
|
adding missing_missing_content3-untracked
|
|
adding missing_missing_missing-tracked
|
|
adding missing_missing_missing-untracked
|
|
$ hg forget *_*_*-untracked
|
|
$ rm *_*_missing-*
|
|
|
|
Status compared to parent of the working copy, i.e. the dirstate status
|
|
|
|
$ hg status -A --rev 1 'glob:missing_content2_content3-tracked'
|
|
M missing_content2_content3-tracked
|
|
$ hg status -A --rev 1 'glob:missing_content2_content2-tracked'
|
|
C missing_content2_content2-tracked
|
|
$ hg status -A --rev 1 'glob:missing_missing_content3-tracked'
|
|
A missing_missing_content3-tracked
|
|
$ hg status -A --rev 1 'glob:missing_missing_content3-untracked'
|
|
? missing_missing_content3-untracked
|
|
$ hg status -A --rev 1 'glob:missing_content2_*-untracked'
|
|
R missing_content2_content2-untracked
|
|
R missing_content2_content3-untracked
|
|
R missing_content2_missing-untracked
|
|
$ hg status -A --rev 1 'glob:missing_*_missing-tracked'
|
|
! missing_content2_missing-tracked
|
|
! missing_missing_missing-tracked
|
|
#if windows
|
|
$ hg status -A --rev 1 'glob:missing_missing_missing-untracked'
|
|
missing_missing_missing-untracked: The system cannot find the file specified
|
|
#else
|
|
$ hg status -A --rev 1 'glob:missing_missing_missing-untracked'
|
|
missing_missing_missing-untracked: No such file or directory
|
|
#endif
|
|
|
|
Status between first and second commit. Should ignore dirstate status.
|
|
|
|
$ hg status -A --rev 0:1 'glob:content1_content2_*'
|
|
M content1_content2_content1-tracked
|
|
M content1_content2_content1-untracked
|
|
M content1_content2_content2-tracked
|
|
M content1_content2_content2-untracked
|
|
M content1_content2_content3-tracked
|
|
M content1_content2_content3-untracked
|
|
M content1_content2_missing-tracked
|
|
M content1_content2_missing-untracked
|
|
$ hg status -A --rev 0:1 'glob:content1_content1_*'
|
|
C content1_content1_content1-tracked
|
|
C content1_content1_content1-untracked
|
|
C content1_content1_content3-tracked
|
|
C content1_content1_content3-untracked
|
|
C content1_content1_missing-tracked
|
|
C content1_content1_missing-untracked
|
|
$ hg status -A --rev 0:1 'glob:missing_content2_*'
|
|
A missing_content2_content2-tracked
|
|
A missing_content2_content2-untracked
|
|
A missing_content2_content3-tracked
|
|
A missing_content2_content3-untracked
|
|
A missing_content2_missing-tracked
|
|
A missing_content2_missing-untracked
|
|
$ hg status -A --rev 0:1 'glob:content1_missing_*'
|
|
R content1_missing_content1-tracked
|
|
R content1_missing_content1-untracked
|
|
R content1_missing_content3-tracked
|
|
R content1_missing_content3-untracked
|
|
R content1_missing_missing-tracked
|
|
R content1_missing_missing-untracked
|
|
$ hg status -A --rev 0:1 'glob:missing_missing_*'
|
|
|
|
Status compared to one revision back, checking that the dirstate status
|
|
is correctly combined with the inter-revision status
|
|
|
|
$ hg status -A --rev 0 'glob:content1_*_content[23]-tracked'
|
|
M content1_content1_content3-tracked
|
|
M content1_content2_content2-tracked
|
|
M content1_content2_content3-tracked
|
|
M content1_missing_content3-tracked
|
|
$ hg status -A --rev 0 'glob:content1_*_content1-tracked'
|
|
C content1_content1_content1-tracked
|
|
C content1_content2_content1-tracked
|
|
C content1_missing_content1-tracked
|
|
$ hg status -A --rev 0 'glob:missing_*_content?-tracked'
|
|
A missing_content2_content2-tracked
|
|
A missing_content2_content3-tracked
|
|
A missing_missing_content3-tracked
|
|
BROKEN: missing_content2_content[23]-untracked exist, so should be listed
|
|
$ hg status -A --rev 0 'glob:missing_*_content?-untracked'
|
|
? missing_missing_content3-untracked
|
|
$ hg status -A --rev 0 'glob:content1_*_*-untracked'
|
|
R content1_content1_content1-untracked
|
|
R content1_content1_content3-untracked
|
|
R content1_content1_missing-untracked
|
|
R content1_content2_content1-untracked
|
|
R content1_content2_content2-untracked
|
|
R content1_content2_content3-untracked
|
|
R content1_content2_missing-untracked
|
|
R content1_missing_content1-untracked
|
|
R content1_missing_content3-untracked
|
|
R content1_missing_missing-untracked
|
|
$ hg status -A --rev 0 'glob:*_*_missing-tracked'
|
|
! content1_content1_missing-tracked
|
|
! content1_content2_missing-tracked
|
|
! content1_missing_missing-tracked
|
|
! missing_content2_missing-tracked
|
|
! missing_missing_missing-tracked
|
|
$ hg status -A --rev 0 'glob:missing_*_missing-untracked'
|