##// END OF EJS Templates
rebase: skip obsolete commits even if they have pruned successors...
rebase: skip obsolete commits even if they have pruned successors Issue 5782 reported that `hg rebase -r <obsolete commit with pruned successor>` failed with an error saying that it would cause divergence. Commit b7e2cf114e85 (rebase: do not consider extincts for divergence detection (issue5782), 2018-02-09) fixed it by letting you rebase the commit. However, that fix seems inconsistent with how we handle `hg rebase -r <pruned commit>`. To me, it should make no difference whether a commit is pruned itself or if it has (only) pruned successors. This patch changes it so we treat these two kinds of commits the same way. I let the message we print remain "note: not rebasing <commit>, it has no successor" even though that last part is not technically correct for commits with pruned successors. I doubt it will confuse users. Differential Revision: https://phab.mercurial-scm.org/D10240

File last commit:

r43347:687b865b default
r47559:32399d08 default
Show More
constants.py
43 lines | 1006 B | text/x-python | PythonLexer
from __future__ import absolute_import
import struct
from mercurial.i18n import _
NETWORK_CAP_LEGACY_SSH_GETFILES = b'exp-remotefilelog-ssh-getfiles-1'
SHALLOWREPO_REQUIREMENT = b"exp-remotefilelog-repo-req-1"
BUNDLE2_CAPABLITY = b"exp-remotefilelog-b2cap-1"
FILENAMESTRUCT = b'!H'
FILENAMESIZE = struct.calcsize(FILENAMESTRUCT)
NODESIZE = 20
PACKREQUESTCOUNTSTRUCT = b'!I'
NODECOUNTSTRUCT = b'!I'
NODECOUNTSIZE = struct.calcsize(NODECOUNTSTRUCT)
PATHCOUNTSTRUCT = b'!I'
PATHCOUNTSIZE = struct.calcsize(PATHCOUNTSTRUCT)
FILEPACK_CATEGORY = b""
TREEPACK_CATEGORY = b"manifests"
ALL_CATEGORIES = [FILEPACK_CATEGORY, TREEPACK_CATEGORY]
# revision metadata keys. must be a single character.
METAKEYFLAG = b'f' # revlog flag
METAKEYSIZE = b's' # full rawtext size
def getunits(category):
if category == FILEPACK_CATEGORY:
return _(b"files")
if category == TREEPACK_CATEGORY:
return _(b"trees")
# Repack options passed to ``markledger``.
OPTION_PACKSONLY = b'packsonly'