Mercurial > hg
changeset 23730:4b56219a5ac2
status: don't list files as both removed and deleted
When calculating status involving the working copy and a revision
other than the parent of the working copy, the files that are not in
the working context manifest ('mf2' in the basectx._buildstatus())
will be reported as removed (note that deleted files _are_ in the
working context manifest). However, if the file is reported as deleted
in the dirstate, it will get that status too (as shown by failing
tests).
Fix by removing deleted files from the 'removed' list after the main
loop in _buildstatus().
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 05 Jan 2015 16:52:12 -0800 |
parents | 07a6faf939dc |
children | ccbaa2ed11a4 |
files | mercurial/context.py tests/test-revert.t tests/test-status-rev.t |
diffstat | 3 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Tue Jan 06 11:23:38 2015 -0800 +++ b/mercurial/context.py Mon Jan 05 16:52:12 2015 -0800 @@ -156,6 +156,8 @@ # need to filter files if they are already reported as removed unknown = [fn for fn in unknown if fn not in mf1] ignored = [fn for fn in ignored if fn not in mf1] + # if they're deleted, don't report them as removed + removed = [fn for fn in removed if fn not in deletedset] return scmutil.status(modified, added, removed, deleted, unknown, ignored, clean)
--- a/tests/test-revert.t Tue Jan 06 11:23:38 2015 -0800 +++ b/tests/test-revert.t Mon Jan 05 16:52:12 2015 -0800 @@ -679,7 +679,6 @@ R content1_content2_missing-untracked R content1_missing_content1-untracked R content1_missing_content3-untracked - R content1_missing_missing-tracked R content1_missing_missing-untracked ! content1_content1_missing-tracked ! content1_content2_missing-tracked
--- a/tests/test-status-rev.t Tue Jan 06 11:23:38 2015 -0800 +++ b/tests/test-status-rev.t Mon Jan 05 16:52:12 2015 -0800 @@ -153,9 +153,8 @@ R content1_missing_content1-untracked R content1_missing_content3-untracked R content1_missing_missing-untracked -BROKEN: content1_*_missing-tracked appear twice; should just be '!' +BROKEN: content1_content*_missing-tracked appear twice; should just be '!' $ hg status -A --rev 0 'glob:*_*_missing-tracked' - R content1_missing_missing-tracked ! content1_content1_missing-tracked ! content1_content2_missing-tracked ! content1_missing_missing-tracked