[PATCH 14 of 15] sshserver: support parentdeltas

Pradeepkumar Gayam in3xes at gmail.com
Mon Jul 12 05:49:56 CDT 2010


# HG changeset patch
# User Pradeepkumar Gayam <in3xes at gmail.com>
# Date 1278922670 -19800
# Branch stable
# Node ID 139c4be10f57966809a1b4fdc6d60116b554905d
# Parent  57655345de4bda2ed96cd0ac1d681065c14b4203
sshserver: support parentdeltas

diff -r 57655345de4b -r 139c4be10f57 mercurial/sshserver.py
--- a/mercurial/sshserver.py	Mon Jul 12 13:47:30 2010 +0530
+++ b/mercurial/sshserver.py	Mon Jul 12 13:47:50 2010 +0530
@@ -13,7 +13,7 @@
 
 class sshserver(object):
 
-    caps = 'unbundle lookup changegroupsubset branchmap pushkey'.split()
+    caps = 'unbundle lookup changegroupsubset branchmap pushkey parentdelta'.split()
 
     def __init__(self, ui, repo):
         self.ui = ui
@@ -127,10 +127,11 @@
 
     def do_changegroup(self):
         nodes = []
-        arg, roots = self.getarg()
-        nodes = map(bin, roots.split(" "))
+        argmap = dict([self.getarg(), self.getarg()])
+        nodes = [bin(n) for n in argmap['roots'].split(' ')]
+        pdelta = 'parentdelta' in argmap
 
-        cg = self.repo.changegroup(nodes, 'serve')
+        cg = self.repo.changegroup(nodes, 'serve', pdelta)
         while True:
             d = cg.read(4096)
             if not d:
@@ -140,11 +141,12 @@
         self.fout.flush()
 
     def do_changegroupsubset(self):
-        argmap = dict([self.getarg(), self.getarg()])
+        argmap = dict([self.getarg(), self.getarg(), self.getarg()])
         bases = [bin(n) for n in argmap['bases'].split(' ')]
         heads = [bin(n) for n in argmap['heads'].split(' ')]
+        pdelta = 'parentdelta' in argmap
 
-        cg = self.repo.changegroupsubset(bases, heads, 'serve')
+        cg = self.repo.changegroupsubset(bases, heads, 'serve', padelta=pdelta)
         while True:
             d = cg.read(4096)
             if not d:
@@ -156,13 +158,17 @@
     def do_addchangegroup(self):
         '''DEPRECATED'''
 
+        args = self.getarg()
+        pdelta = False
+        if args not None and 'parentdelta' in args:
+            pdelta = True
         if not self.lock:
             self.respond("not locked")
             return
 
         self.respond("")
         r = self.repo.addchangegroup(self.fin, 'serve', self.client_url(),
-                                     lock=self.lock)
+                                     lock=self.lock, pdelta=pdelta)
         self.respond(str(r))
 
     def client_url(self):


More information about the Mercurial-devel mailing list