[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