Mercurial > hg
changeset 45509:2bc978921e8a stable
strip: with --keep, consider all revs "removed" from the wcp (issue6270)
The current code was blink to change from other branches when stripping merges
that are ancestors of the working copy parents.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 18 Sep 2020 12:20:28 +0200 |
parents | 27822b8436bf |
children | 93a0f3ba36bb 5a555d6e0d90 |
files | hgext/strip.py tests/test-strip.t |
diffstat | 2 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/strip.py Fri Sep 18 12:10:12 2020 +0200 +++ b/hgext/strip.py Fri Sep 18 12:20:28 2020 +0200 @@ -254,7 +254,7 @@ # only reset the dirstate for files that would actually change # between the working context and uctx - descendantrevs = repo.revs(b"%d::.", uctx.rev()) + descendantrevs = repo.revs(b"only(., %d)", uctx.rev()) changedfiles = [] for rev in descendantrevs: # blindly reset the files, regardless of what actually changed
--- a/tests/test-strip.t Fri Sep 18 12:10:12 2020 +0200 +++ b/tests/test-strip.t Fri Sep 18 12:20:28 2020 +0200 @@ -1179,7 +1179,11 @@ stripping a set containing a merge properly reset file content, including items on other branches -BROKEN, The added file should move to unknown, which is the behavior we have been seeing for other `hg strip --keep` call. +The added file is moved to unknown, which is the behavior we have been seeing for other `hg strip --keep` call. + +stripping a set containing a merge properly reset file content, including items on other branches + +The added file is moved to unknown, which is the behavior we have been seeing for other `hg strip --keep` call. $ hg unbundle -u $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg adding changesets @@ -1260,13 +1264,10 @@ summary: commitA -BROKEN: 'bar.txt' cannot possibly be clean since it is not part of the current -working copy parents. - $ hg status -A + ? bar.txt C a C b - C bar.txt C foo.txt $ cat bar.txt bar