##// END OF EJS Templates
changegroup: move deltaparent() from narrow...
Gregory Szorc -
r38921:5839a170 default
parent child Browse files
Show More
@@ -316,20 +316,3 b' def setup():'
316 yield changegroup.ellipsisdata(
316 yield changegroup.ellipsisdata(
317 self, rev, revlog, p1, p2, revlog.revision(n), linknode)
317 self, rev, revlog, p1, p2, revlog.revision(n), linknode)
318 extensions.wrapfunction(changegroup.cg1packer, 'revchunk', revchunk)
318 extensions.wrapfunction(changegroup.cg1packer, 'revchunk', revchunk)
319
320 def deltaparent(orig, self, revlog, rev, p1, p2, prev):
321 if util.safehasattr(self, 'full_nodes'):
322 # TODO: send better deltas when in narrow mode.
323 #
324 # changegroup.group() loops over revisions to send,
325 # including revisions we'll skip. What this means is that
326 # `prev` will be a potentially useless delta base for all
327 # ellipsis nodes, as the client likely won't have it. In
328 # the future we should do bookkeeping about which nodes
329 # have been sent to the client, and try to be
330 # significantly smarter about delta bases. This is
331 # slightly tricky because this same code has to work for
332 # all revlogs, and we don't have the linkrev/linknode here.
333 return p1
334 return orig(self, revlog, rev, p1, p2, prev)
335 extensions.wrapfunction(changegroup.cg2packer, 'deltaparent', deltaparent)
@@ -851,6 +851,21 b' class cg2packer(cg1packer):'
851 self._reorder = False
851 self._reorder = False
852
852
853 def deltaparent(self, revlog, rev, p1, p2, prev):
853 def deltaparent(self, revlog, rev, p1, p2, prev):
854 # Narrow ellipses mode.
855 if util.safehasattr(self, 'full_nodes'):
856 # TODO: send better deltas when in narrow mode.
857 #
858 # changegroup.group() loops over revisions to send,
859 # including revisions we'll skip. What this means is that
860 # `prev` will be a potentially useless delta base for all
861 # ellipsis nodes, as the client likely won't have it. In
862 # the future we should do bookkeeping about which nodes
863 # have been sent to the client, and try to be
864 # significantly smarter about delta bases. This is
865 # slightly tricky because this same code has to work for
866 # all revlogs, and we don't have the linkrev/linknode here.
867 return p1
868
854 dp = revlog.deltaparent(rev)
869 dp = revlog.deltaparent(rev)
855 if dp == nullrev and revlog.storedeltachains:
870 if dp == nullrev and revlog.storedeltachains:
856 # Avoid sending full revisions when delta parent is null. Pick prev
871 # Avoid sending full revisions when delta parent is null. Pick prev
General Comments 0
You need to be logged in to leave comments. Login now