[PATCH STABLE] ui: support paths.default-push without paths.default set (issue4914)
Augie Fackler
raf at durin42.com
Fri Oct 23 04:04:32 CDT 2015
Queued for stable, thanks.
> On Oct 22, 2015, at 20:02, Gregory Szorc <gregory.szorc at gmail.com> wrote:
>
> # HG changeset patch
> # User Gregory Szorc <gregory.szorc at gmail.com>
> # Date 1445540343 0
> # Thu Oct 22 18:59:03 2015 +0000
> # Branch stable
> # Node ID 0d4034dd4b2993c351361519f4c6ed51b5c62834
> # Parent c7d30fdb13b229537269030c94c7b2540b6d34a0
> ui: support paths.default-push without paths.default set (issue4914)
>
> This behavior regressed as part of the paths API refactoring. Previous
> behavior was to accept "default-push" without "default" defined. Current
> behavior aborts with "default repository not configured!." This patch
> restores the old behavior and adds test coverage for the scenario, which
> was absent before.
>
> diff --git a/mercurial/ui.py b/mercurial/ui.py
> --- a/mercurial/ui.py
> +++ b/mercurial/ui.py
> @@ -1025,9 +1025,13 @@ class paths(dict):
>
> # Handle default-push, which is a one-off that defines the push URL for
> # the "default" path.
> defaultpush = ui.config('paths', 'default-push')
> - if defaultpush and 'default' in self:
> + if defaultpush:
> + # "default-push" can be defined without "default" entry. This is a
> + # bit weird, but is allowed for backwards compatibility.
> + if 'default' not in self:
> + self['default'] = path('default', rawloc=defaultpush)
> self['default']._pushloc = defaultpush
>
> def getpath(self, name, default=None):
> """Return a ``path`` from a string, falling back to a default.
> diff --git a/tests/test-default-push.t b/tests/test-default-push.t
> --- a/tests/test-default-push.t
> +++ b/tests/test-default-push.t
> @@ -45,8 +45,26 @@ Push should push to 'default-push' when
> adding manifests
> adding file changes
> added 1 changesets with 1 changes to 1 files
>
> +Push should push to 'default-push' when 'default' is not set
> +
> + $ hg -q clone a push-default-only
> + $ cd push-default-only
> + $ rm .hg/hgrc
> +
> + $ touch foo
> + $ hg -q commit -A -m 'add foo'
> + $ hg --config paths.default-push=../a push
> + pushing to $TESTTMP/a (glob)
> + searching for changes
> + adding changesets
> + adding manifests
> + adding file changes
> + added 1 changesets with 1 changes to 1 files
> +
> + $ cd ..
> +
> Pushing to a path that isn't defined should not fall back to default
>
> $ hg --cwd b push doesnotexist
> abort: repository doesnotexist does not exist!
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list