> On Apr 9, 2018, at 9:43 AM, Yuya Nishihara <y...@tcha.org> wrote:
> 
>> On Mon, 09 Apr 2018 00:26:45 -0400, Matt Harbison wrote:
>> # HG changeset patch
>> # User Matt Harbison <matt_harbi...@yahoo.com>
>> # Date 1523211732 14400
>> #      Sun Apr 08 14:22:12 2018 -0400
>> # Node ID b8c871c097d3153d1eb71e0072cb7edf3356360c
>> # Parent  2aecf5b7dfdaeb12a6f6ac151d40c3b60f789abc
>> lfs: infer the blob store URL from an explicit push source or default-push
>> 
>> Same idea as pull, but the push command needs to hold onto the '_subtopath'
>> field slightly longer.  Since this code has already resolved an explicit 
>> path or
>> 'default-push' or 'default', it seems reasonable to make this simple tweak to
>> avoid recalculating that.
> 
>> +        opargs = dict(opts.get('opargs', {})) # copy opargs since it may 
>> mutate
>> +        opargs.setdefault('pushvars', []).extend(opts.get('pushvars', []))
>> +
>> +        pushop = exchange.push(repo, other, opts.get('force'), revs=revs,
>> +                               newbranch=opts.get('new_branch'),
>> +                               bookmarks=opts.get('bookmark', ()),
>> +                               opargs=opargs)
>> +        # _subtopath stays for this repo push to assist LFS server discovery
>>     finally:
>>         del repo._subtoppath
>> 
>> -    opargs = dict(opts.get('opargs', {})) # copy opargs since we may mutate 
>> it
>> -    opargs.setdefault('pushvars', []).extend(opts.get('pushvars', []))
>> -
>> -    pushop = exchange.push(repo, other, opts.get('force'), revs=revs,
>> -                           newbranch=opts.get('new_branch'),
>> -                           bookmarks=opts.get('bookmark', ()),
>> -                           opargs=opargs)
> 
> Can't we wrap e.g. exchange.push/pull() to temporarily replace
> repo.lfsremoteblobstore based on the remote repository?

I’ll take another look at it.  That was where I started, but it seemed 
confusing to pass in a path to blobstore.remote() (but only sometimes), and 
then use lfs.url or paths.default.  It also would require changing the 
parameters to uploadblobsfromrevs(), which is flagged as called by other (FB?) 
extensions. (Probably a path=None would work here.)

> I think the root problem is that we can't decide the remoteblobstore at
> reposetup().

Exactly.  And the path info isn’t conveniently available in other places.

_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to