[PATCH 12 of 15] wire-proto: push parentdeltas to httprepo if flag is on

Benoit Boissinot benoit.boissinot at ens-lyon.org
Tue Jul 13 08:51:15 CDT 2010


On Mon, Jul 12, 2010 at 04:19:54PM +0530, Pradeepkumar Gayam wrote:
> # HG changeset patch
> # User Pradeepkumar Gayam <in3xes at gmail.com>
> # Date 1278919594 -19800
> # Branch stable
> # Node ID c018677a0c5e6d0521433836b7143f4499d0b55f
> # Parent  5cbf744770059217f22720b935e889f841c9b508
> wire-proto: push parentdeltas to httprepo if flag is on
> 
> diff -r 5cbf74477005 -r c018677a0c5e mercurial/httprepo.py
> --- a/mercurial/httprepo.py	Mon Jul 12 12:38:29 2010 +0530
> +++ b/mercurial/httprepo.py	Mon Jul 12 12:56:34 2010 +0530
> @@ -214,7 +214,7 @@
>              f = self.do_cmd("changegroupsubset", bases=baselst, heads=headlst)
>          return util.chunkbuffer(zgenerator(f))
>  
> -    def unbundle(self, cg, heads, source):
> +    def unbundle(self, cg, heads, source, pdelta=False):
>          '''Send cg (a readable file-like object representing the
>          changegroup to push, typically a chunkbuffer object) to the
>          remote server as a bundle. Return an integer response code:
> @@ -242,10 +242,17 @@
>          fp = url.httpsendfile(tempname, "rb")
>          try:
>              try:
> -                resp = self.do_read(
> -                     'unbundle', data=fp,
> -                     headers={'Content-Type': 'application/mercurial-0.1'},
> -                     heads=' '.join(map(hex, heads)))
> +                if pdelta:
> +                    resp = self.do_read(
> +                        'unbundle', data=fp, parentdelta='parentdelta'
> +                        headers={'Content-Type': 'application/mercurial-0.1'},
> +                        heads=' '.join(map(hex, heads)))
> +                else:
> +                    resp = self.do_read(
> +                        'unbundle', data=fp,
> +                        headers={'Content-Type': 'application/mercurial-0.1'},
> +                        heads=' '.join(map(hex, heads)))
> +

I am pretty sure you can avoid duplicating the code.
>                  resp_code, output = resp.split('\n', 1)
>                  try:
>                      ret = int(resp_code)
> diff -r 5cbf74477005 -r c018677a0c5e mercurial/localrepo.py
> --- a/mercurial/localrepo.py	Mon Jul 12 12:38:29 2010 +0530
> +++ b/mercurial/localrepo.py	Mon Jul 12 12:56:34 2010 +0530
> @@ -1235,12 +1235,13 @@
>          Return an integer: see push().
>          '''
>          lock = remote.lock()
> +        pdelta = rempte.capable('parentdelta')
>          try:
> -            ret = discovery.prepush(self, remote, force, revs, newbranch)
> +            ret = discovery.prepush(self, remote, force, revs, newbranch, pdelta)

why would discovery need to know about pdelta ?

> @@ -1255,14 +1256,15 @@
>          # different heads (someone else won commit/push race), server
>          # aborts.
>  
> -        ret = discovery.prepush(self, remote, force, revs, newbranch)
> +        pdelta = remote.capable('parentdelta')
> +        ret = discovery.prepush(self, remote, force, revs, newbranch, pdelta)

ditto

Benoit
-- 
:wq


More information about the Mercurial-devel mailing list