Mercurial > hg
changeset 20501:8a9e0b523d2d
discovery: improve "note: unsynced remote changes!" warning
This message frequently caused confusion. "unsynced" is not a well established
user-facing concept in Mercurial and the message was not very specific or
helpful.
Instead, show a message like:
remote has heads on branch 'default' that are not known locally: 6c0482d977a3
This message will also (when relevant) be shown before aborting on "push
creates new remote head".
A similar (but actually very different) message was addressed in 6b618aa08b6e.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Thu, 06 Feb 2014 02:19:38 +0100 |
parents | ce3f3082ec45 |
children | 7648e9aef6ee |
files | mercurial/discovery.py tests/test-push-warn.t tests/test-ssh.t |
diffstat | 3 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/discovery.py Tue Feb 11 16:52:36 2014 -0800 +++ b/mercurial/discovery.py Thu Feb 06 02:19:38 2014 +0100 @@ -268,7 +268,6 @@ # If there are more heads after the push than before, a suitable # error message, depending on unsynced status, is displayed. error = None - unsynced = False allmissing = set(outgoing.missing) allfuturecommon = set(c.node() for c in repo.set('%ld', outgoing.common)) allfuturecommon.update(allmissing) @@ -312,8 +311,15 @@ newhs.add(nh) else: newhs = candidate_newhs - if [h for h in unsyncedheads if h not in discardedheads]: - unsynced = True + unsynced = sorted(h for h in unsyncedheads if h not in discardedheads) + if unsynced: + heads = ' '.join(short(h) for h in unsynced) + if branch is None: + repo.ui.warn(_("remote has heads that are " + "not known locally: %s\n") % heads) + else: + repo.ui.warn(_("remote has heads on branch '%s' that are " + "not known locally: %s\n") % (branch, heads)) if remoteheads is None: if len(newhs) > 1: dhs = list(newhs) @@ -350,7 +356,3 @@ repo.ui.note((" %s\n") % short(h)) if error: raise util.Abort(error, hint=hint) - - # 6. Check for unsynced changes on involved branches. - if unsynced: - repo.ui.warn(_("note: unsynced remote changes!\n"))
--- a/tests/test-push-warn.t Tue Feb 11 16:52:36 2014 -0800 +++ b/tests/test-push-warn.t Thu Feb 06 02:19:38 2014 +0100 @@ -22,6 +22,7 @@ $ hg push ../a pushing to ../a searching for changes + remote has heads on branch 'default' that are not known locally: 1c9246a22a0a abort: push creates new remote head 1e108cc5548c! (pull and merge or see "hg help push" for details about pushing new heads) [255] @@ -35,6 +36,7 @@ query 2; still undecided: 1, sample size is: 1 2 total queries listing keys for "bookmarks" + remote has heads on branch 'default' that are not known locally: 1c9246a22a0a new remote heads on branch 'default': 1e108cc5548c abort: push creates new remote head 1e108cc5548c! @@ -405,6 +407,7 @@ $ hg -R i push h pushing to h searching for changes + remote has heads on branch 'default' that are not known locally: ce4212fc8847 abort: push creates new remote head 97bd0c84d346! (pull and merge or see "hg help push" for details about pushing new heads) [255]
--- a/tests/test-ssh.t Tue Feb 11 16:52:36 2014 -0800 +++ b/tests/test-ssh.t Thu Feb 06 02:19:38 2014 +0100 @@ -223,7 +223,7 @@ $ hg push pushing to ssh://user@dummy/remote searching for changes - note: unsynced remote changes! + remote has heads on branch 'default' that are not known locally: 6c0482d977a3 remote: adding changesets remote: adding manifests remote: adding file changes