git: fix index handling of removed files during commit (issue6398)
Other changes in this series also changed the behavior here in
positive ways, but this was the final step that actually fixed things.
Differential Revision: https://phab.mercurial-scm.org/D8999
--- a/hgext/git/dirstate.py Mon Sep 07 17:14:59 2020 -0400
+++ b/hgext/git/dirstate.py Mon Sep 07 17:16:16 2020 -0400
@@ -303,8 +303,10 @@
def drop(self, f):
index = self.git.index
index.read()
- index.remove(pycompat.fsdecode(f))
- index.write()
+ fs = pycompat.fsdecode(f)
+ if fs in index:
+ index.remove(fs)
+ index.write()
def remove(self, f):
index = self.git.index
--- a/tests/test-git-interop.t Mon Sep 07 17:14:59 2020 -0400
+++ b/tests/test-git-interop.t Mon Sep 07 17:16:16 2020 -0400
@@ -270,3 +270,8 @@
+++ b/beta Mon Jan 01 00:00:11 2007 +0000
@@ -0,0 +1,1 @@
+beta
+
+
+Deleting files should also work (this was issue6398)
+ $ hg rm beta
+ $ hg ci -m 'remove beta'