[PATCH stable] eol: fix crash when handling removed files

Mads Kiilerich mads at kiilerich.com
Wed Oct 22 09:10:32 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1413987023 -7200
#      Wed Oct 22 16:10:23 2014 +0200
# Branch stable
# Node ID 67e1820879c6287c8daccdd4a69ea93fed8433f3
# Parent  c1ae0b2c1719f56b906472efea8b20ca0774c968
eol: fix crash when handling removed files

ci --amend would in some cases fail after 650b5b6e75ed failed to refactor the
eol extension too.

diff --git a/hgext/eol.py b/hgext/eol.py
--- a/hgext/eol.py
+++ b/hgext/eol.py
@@ -333,10 +333,10 @@ def reposetup(ui, repo):
             for f in sorted(ctx.added() + ctx.modified()):
                 if not self._eolfile(f):
                     continue
-                try:
-                    data = ctx[f].data()
-                except IOError:
+                fctx = ctx[f]
+                if fctx is None:
                     continue
+                data = fctx.data()
                 if util.binary(data):
                     # We should not abort here, since the user should
                     # be able to say "** = native" to automatically
diff --git a/tests/test-eol.t b/tests/test-eol.t
--- a/tests/test-eol.t
+++ b/tests/test-eol.t
@@ -525,4 +525,19 @@ append a line without trailing newline
   fourth
   fifth
 
+amend of changesets with renamed/deleted files expose new code paths
+
+  $ hg mv a.txt b.txt
+  $ hg ci --amend -q
+  $ hg diff -c.
+  diff --git a/a.txt b/b.txt
+  rename from a.txt
+  rename to b.txt
+  --- a/a.txt
+  +++ b/b.txt
+  @@ -1,2 +1,3 @@
+   third
+   fourth
+  +fifth
+
   $ cd ..


More information about the Mercurial-devel mailing list