Mercurial > public > mercurial-scm > hg-stable
diff hgext/fix.py @ 45828:136a86327316
fix: don't include obsolete descendants with -s
The `-s/--source` option is for regular users (`-r` is there for power
users). If there are obsolete commits that are descendants of the
given revision(s), then they almost definitely should just be left
alone. That's what `hg rebase` does as well. So this patch makes it so
we skip obsolete commits (including those in the input set itself).
Differential Revision: https://phab.mercurial-scm.org/D9226
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 16 Oct 2020 15:02:46 -0700 |
parents | f90943d753ef |
children | 09914d934cf4 |
line wrap: on
line diff
--- a/hgext/fix.py Fri Oct 16 11:15:00 2020 -0700 +++ b/hgext/fix.py Fri Oct 16 15:02:46 2020 -0700 @@ -417,7 +417,7 @@ revs = repo.revs(b'(not public() and not obsolete()) or wdir()') elif opts[b'source']: source_revs = scmutil.revrange(repo, opts[b'source']) - revs = set(repo.revs(b'%ld::', source_revs)) + revs = set(repo.revs(b'(%ld::) - obsolete()', source_revs)) if wdirrev in source_revs: # `wdir()::` is currently empty, so manually add wdir revs.add(wdirrev)