git: correctly handle "nothing changed" commits
authorAugie Fackler <raf@durin42.com>
Mon, 07 Sep 2020 16:27:12 -0400
changeset 45419 6739ef7c5fcf
parent 45418 4111954cf86d
child 45420 c67529569643
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
hgext/git/__init__.py
--- 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