[PATCH 3 of 4 V3] largefiles: add support for 'largefiles://' url scheme

Boris Feld boris.feld at octobus.net
Thu Jan 18 11:14:18 EST 2018


`On Tue, 2018-01-09 at 21:08 +0900, Yuya Nishihara wrote:
> On Mon, 08 Jan 2018 22:16:47 +0100, Boris Feld wrote:
> > # HG changeset patch
> > # User Boris Feld <boris.feld at octobus.net>
> > # Date 1513861077 -3600
> > #      Thu Dec 21 13:57:57 2017 +0100
> > # Node ID 18db7b5d796d31fbced9d41dd50a61d0e62e6fcb
> > # Parent  a503a19221d6c6113ad1e3add9eb084be3177daf
> > # EXP-Topic largefile-url
> > # Available At https://bitbucket.org/octobus/mercurial-devel/
> > #              hg pull https://bitbucket.org/octobus/mercurial-deve
> > l/ -r 18db7b5d796d
> > largefiles: add support for 'largefiles://' url scheme
> > +_lfscheme = 'largefile://'
> > +def openlargefile(orig, ui, url_, data=''):
> 
> Nit: s/data=''/data=None/ according to the signature of url.open().
> 
> > +    if url_.startswith(_lfscheme):
> > +        if data:
> > +            msg = "cannot use data on a 'largefile://' url"
> > +            raise error.ProgrammingError(msg)
> 
> If the error can be triggered by user (by e.g. setting crafted repo
> path),
> it shouldn't be a ProgrammingError.

How could the user trigger that?

> 
> > +def getlfile(ui, hash):
> > +    return util.chunkbuffer(openstore(ui=ui)._get(hash))
> 
> AttributeError would be raised if the default path isn't remote. Can
> you
> send a follow up?

What attribute error? Could you be a bit more specific?

> > --- a/tests/test-url-download.t
> > +++ b/tests/test-url-download.t
> > @@ -34,3 +34,21 @@ Check other kind of compatible url
> >    $ hg debugdownload ./null.txt
> >    1 0000000000000000000000000000000000000000
> >  
> > +Test largefile URL
> > +------------------
> > +
> > +  $ cat << EOF >> $HGRCPATH
> > +  > [extensions]
> > +  > largefiles=
> > +  > EOF
> > +
> > +  $ killdaemons.py
> > +  $ rm -f error.log hg1.pid
> > +  $ hg serve -R server -p $HGPORT -d --pid-file=hg1.pid -E
> > error.log
> > +  $ cat hg1.pid >> $DAEMON_PIDS
> > +
> > +  $ hg -R server debuglfput null.txt
> > +  a57b57b39ee4dc3da1e03526596007f480ecdbe8
> > +
> > +  $ hg --traceback debugdownload "largefile://a57b57b39ee4dc3da1e0
> > 3526596007f480ecdbe8" --config paths.default=http://localhost:$HGPO
> > RT/
> 
> debugdownload command could be optionalrepo=True so repo/.hg/hgrc are
> loaded.

We just sent a followup for this one.


More information about the Mercurial-devel mailing list