mercurial/exchangev2.py
changeset 47012 d55b71393907
parent 46711 a41565bef69f
equal deleted inserted replaced
46992:5fa019ceb499 47012:d55b71393907
     9 
     9 
    10 import collections
    10 import collections
    11 import weakref
    11 import weakref
    12 
    12 
    13 from .i18n import _
    13 from .i18n import _
    14 from .node import (
    14 from .node import short
    15     nullid,
       
    16     short,
       
    17 )
       
    18 from . import (
    15 from . import (
    19     bookmarks,
    16     bookmarks,
    20     error,
    17     error,
    21     mdiff,
    18     mdiff,
    22     narrowspec,
    19     narrowspec,
   302         common |= {head for head in remoteheads if has_node(head)}
   299         common |= {head for head in remoteheads if has_node(head)}
   303 
   300 
   304         if set(remoteheads).issubset(common):
   301         if set(remoteheads).issubset(common):
   305             fetch = []
   302             fetch = []
   306 
   303 
   307     common.discard(nullid)
   304     common.discard(repo.nullid)
   308 
   305 
   309     return common, fetch, remoteheads
   306     return common, fetch, remoteheads
   310 
   307 
   311 
   308 
   312 def _fetchchangesets(repo, tr, remote, common, fetch, remoteheads):
   309 def _fetchchangesets(repo, tr, remote, common, fetch, remoteheads):
   411                 cset[b'parents'][0],
   408                 cset[b'parents'][0],
   412                 cset[b'parents'][1],
   409                 cset[b'parents'][1],
   413                 # Linknode is always itself for changesets.
   410                 # Linknode is always itself for changesets.
   414                 cset[b'node'],
   411                 cset[b'node'],
   415                 # We always send full revisions. So delta base is not set.
   412                 # We always send full revisions. So delta base is not set.
   416                 nullid,
   413                 repo.nullid,
   417                 mdiff.trivialdiffheader(len(data)) + data,
   414                 mdiff.trivialdiffheader(len(data)) + data,
   418                 # Flags not yet supported.
   415                 # Flags not yet supported.
   419                 0,
   416                 0,
   420                 # Sidedata not yet supported
   417                 # Sidedata not yet supported
   421                 {},
   418                 {},
   476 
   473 
   477             if b'delta' in extrafields:
   474             if b'delta' in extrafields:
   478                 basenode = manifest[b'deltabasenode']
   475                 basenode = manifest[b'deltabasenode']
   479                 delta = extrafields[b'delta']
   476                 delta = extrafields[b'delta']
   480             elif b'revision' in extrafields:
   477             elif b'revision' in extrafields:
   481                 basenode = nullid
   478                 basenode = repo.nullid
   482                 revision = extrafields[b'revision']
   479                 revision = extrafields[b'revision']
   483                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   480                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   484             else:
   481             else:
   485                 continue
   482                 continue
   486 
   483 
   608 
   605 
   609             if b'delta' in extrafields:
   606             if b'delta' in extrafields:
   610                 basenode = filerevision[b'deltabasenode']
   607                 basenode = filerevision[b'deltabasenode']
   611                 delta = extrafields[b'delta']
   608                 delta = extrafields[b'delta']
   612             elif b'revision' in extrafields:
   609             elif b'revision' in extrafields:
   613                 basenode = nullid
   610                 basenode = repo.nullid
   614                 revision = extrafields[b'revision']
   611                 revision = extrafields[b'revision']
   615                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   612                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   616             else:
   613             else:
   617                 continue
   614                 continue
   618 
   615 
   703 
   700 
   704             if b'delta' in extrafields:
   701             if b'delta' in extrafields:
   705                 basenode = filerevision[b'deltabasenode']
   702                 basenode = filerevision[b'deltabasenode']
   706                 delta = extrafields[b'delta']
   703                 delta = extrafields[b'delta']
   707             elif b'revision' in extrafields:
   704             elif b'revision' in extrafields:
   708                 basenode = nullid
   705                 basenode = repo.nullid
   709                 revision = extrafields[b'revision']
   706                 revision = extrafields[b'revision']
   710                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   707                 delta = mdiff.trivialdiffheader(len(revision)) + revision
   711             else:
   708             else:
   712                 continue
   709                 continue
   713 
   710