comparison mercurial/changegroup.py @ 40047:8e398628a3f2

repository: define and use revision flag constants Revlogs have a per-revision 2 byte field holding integer flags that define how revision data should be interpreted. For historical reasons, these integer values are sent verbatim on the wire protocol as part of changegroup data. From a semantic standpoint, the flags that go out over the wire are different from the flags stored internally by revlogs. Failure to establish this semantic distinction creates unwanted strong coupling between revlog's internals and the wire protocol. This commit establishes new constants on the repository module that define the revision flags used by the wire protocol (and by some internal storage APIs, sadly). The changegroups internals documentation has been updated to document them explicitly. Various references throughout the repo now use the repository constants instead of the revlog constants. This is done to make it clear that we're operating on generic revision data and this isn't tied to revlogs. Differential Revision: https://phab.mercurial-scm.org/D4860
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 03 Oct 2018 12:57:01 -0700
parents e23c03dc5cf9
children 4fd0fac48922
comparison
equal deleted inserted replaced
40046:50700a025953 40047:8e398628a3f2
24 match as matchmod, 24 match as matchmod,
25 mdiff, 25 mdiff,
26 phases, 26 phases,
27 pycompat, 27 pycompat,
28 repository, 28 repository,
29 revlog,
30 util, 29 util,
31 ) 30 )
32 31
33 _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s") 32 _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s")
34 _CHANGEGROUPV2_DELTA_HEADER = struct.Struct("20s20s20s20s20s") 33 _CHANGEGROUPV2_DELTA_HEADER = struct.Struct("20s20s20s20s20s")
714 713
715 if revision.node in adjustedparents: 714 if revision.node in adjustedparents:
716 p1node, p2node = adjustedparents[revision.node] 715 p1node, p2node = adjustedparents[revision.node]
717 revision.p1node = p1node 716 revision.p1node = p1node
718 revision.p2node = p2node 717 revision.p2node = p2node
719 revision.flags |= revlog.REVIDX_ELLIPSIS 718 revision.flags |= repository.REVISION_FLAG_ELLIPSIS
720 719
721 else: 720 else:
722 linknode = lookup(revision.node) 721 linknode = lookup(revision.node)
723 722
724 revision.linknode = linknode 723 revision.linknode = linknode