Mercurial > public > mercurial-scm > hg-stable
diff mercurial/cmdutil.py @ 45831:976b26bdd0d8
commit: warn the user when a commit already exists
Sometimes, a commit will result in an exact match of a preexisting
commit, and if that commit isn't a branch head, hg will incorrectly
note that it created a new head. Instead, we should warn the user that
commit already existed in the repository.
In practice, this bug is rather uncommon, and will only occur when the
usr explicitly sets the date.
Please note that this commit contains an API change to
cmdutil.commitstatus()
Differential Revision: https://phab.mercurial-scm.org/D9257
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Thu, 29 Oct 2020 13:54:25 +0100 |
parents | e9555305c5c6 |
children | 8d72e29ad1e0 |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Tue Oct 06 13:34:51 2020 +0200 +++ b/mercurial/cmdutil.py Thu Oct 29 13:54:25 2020 +0100 @@ -3113,13 +3113,18 @@ return b"\n".join(edittext) -def commitstatus(repo, node, branch, bheads=None, opts=None): +def commitstatus(repo, node, branch, bheads=None, tip=None, opts=None): if opts is None: opts = {} ctx = repo[node] parents = ctx.parents() - if ( + if tip is not None and repo.changelog.tip() == tip: + # avoid reporting something like "committed new head" when + # recommitting old changesets, and issue a helpful warning + # for most instances + repo.ui.warn(_("warning: commit already existed in the repository!\n")) + elif ( not opts.get(b'amend') and bheads and node not in bheads