diff --git a/hgext/strip.py b/hgext/strip.py index 27822b8436bfb1dd1a394b77468ea9e67df678bd_aGdleHQvc3RyaXAucHk=..2bc978921e8a0ee570a5c44c6b54e955cfc3c4b1_aGdleHQvc3RyaXAucHk= 100644 --- a/hgext/strip.py +++ b/hgext/strip.py @@ -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 diff --git a/tests/test-strip.t b/tests/test-strip.t index 27822b8436bfb1dd1a394b77468ea9e67df678bd_dGVzdHMvdGVzdC1zdHJpcC50..2bc978921e8a0ee570a5c44c6b54e955cfc3c4b1_dGVzdHMvdGVzdC1zdHJpcC50 100644 --- a/tests/test-strip.t +++ b/tests/test-strip.t @@ -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,7 +1264,4 @@ summary: commitA -BROKEN: 'bar.txt' cannot possibly be clean since it is not part of the current -working copy parents. - $ hg status -A @@ -1266,3 +1267,4 @@ $ hg status -A + ? bar.txt C a C b @@ -1267,6 +1269,5 @@ C a C b - C bar.txt C foo.txt $ cat bar.txt bar