Mercurial > hg-stable
changeset 45430:6739ef7c5fcf
git: correctly handle "nothing changed" commits
I guess localrepo.commit() actually returns an Optional[node], which
is a bit of a surprise to me.
Differential Revision: https://phab.mercurial-scm.org/D8995
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Mon, 07 Sep 2020 16:27:12 -0400 |
parents | 4111954cf86d |
children | c67529569643 |
files | hgext/git/__init__.py |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/git/__init__.py Mon Sep 07 16:25:16 2020 -0400 +++ b/hgext/git/__init__.py Mon Sep 07 16:27:12 2020 -0400 @@ -297,6 +297,10 @@ def commit(self, *args, **kwargs): ret = orig.commit(self, *args, **kwargs) + if ret is None: + # there was nothing to commit, so we should skip + # the index fixup logic we'd otherwise do. + return None tid = self.store.git[gitutil.togitnode(ret)].tree.id # DANGER! This will flush any writes staged to the # index in Git, but we're sidestepping the index in a