On Tue, 29 May 2018 00:42:23 -0400, Matt Harbison wrote: > # HG changeset patch > # User Matt Harbison <matt_harbi...@yahoo.com> > # Date 1527485794 14400 > # Mon May 28 01:36:34 2018 -0400 > # Node ID 8544cdf89153aa7c0ce5be9c4dfdc052b2bf5d60 > # Parent cc9aa88792fe8daf041521710f52be59c69b79eb > outgoing: pay attention to `default:pushurl` for bookmarks and subrepos > > The problem here was that `default:pushurl` and `default` get translated to a > single entry in `ui.paths` named 'default', with an attribute for 'pushloc', > 'loc', and 'rawloc'. ui.expandpath() then always takes the `rawloc` > attribute. > Maybe the ui.expandpath() API is busted and should be removed? Or maybe > getpath() should return a copy that adds an attribute reflecting the URL of > the > path chosen?
IIRC, ui.expandpath() is supposed to be superseded by ui.paths API. > I thought that I could remove the code in hg._outgoing() and pass the location > resolved in commands.py as `dest`, but unfortunately that code is needed there > to resolve #branch type URLs. Maybe that should be pulled up to commands.py, > because I can't see any reasonable behavior for a subrepo path that's > constructed out of that type of URL. > > The push command already resolves this early, so that works properly. But it > looks like bundle, histedit, largefiles, patchbomb, and summary use a similar > pattern, so they are likely similarly affected. > @@ -3711,6 +3711,13 @@ def outgoing(ui, repo, dest=None, **opts > > Returns 0 if there are outgoing changes, 1 otherwise. > """ > + # hg._outgoing() needs to re-resolve the path in order to handle #branch > + # style URLs, so don't overwrite dest. > + path = ui.paths.getpath(dest, default=('default-push', 'default')) > + if not path: > + raise error.Abort(_('default repository not configured!'), > + hint=_("see 'hg help config.paths'")) > + > opts = pycompat.byteskwargs(opts) > if opts.get('graph'): > logcmdutil.checkunsupportedgraphflags([], opts) > @@ -3728,7 +3735,7 @@ def outgoing(ui, repo, dest=None, **opts > return 0 > > if opts.get('bookmarks'): > - dest = ui.expandpath(dest or 'default-push', dest or 'default') > + dest = path.pushloc or path.loc > dest, branches = hg.parseurl(dest, opts.get('branch')) It isn't your fault, but maybe we shouldn't overwrite 'dest' here? > @@ -3738,7 +3745,7 @@ def outgoing(ui, repo, dest=None, **opts > ui.pager('outgoing') > return bookmarks.outgoing(ui, repo, other) > > - repo._subtoppath = ui.expandpath(dest or 'default-push', dest or > 'default') > + repo._subtoppath = path.pushloc or path.loc > try: > return hg.outgoing(ui, repo, dest, opts) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel