changeset 1151:cfe1b9d3e5d9 stable

import: handle patch with no node information patch created by old Mercurial version or other tool have no node information. We cannot create marker in this case.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 14 Aug 2014 15:17:02 -0700
parents 93e920feff5e
children edfb9a0ad085 168dfc839eca
files hgext/evolve.py
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -933,7 +933,8 @@
 def tryimportone(orig, ui, repo, hunk, parents, opts, *args, **kwargs):
     extracted = patch.extract(ui, hunk)
     expected = extracted[5]
-    expected = node.bin(expected)
+    if extracted is not None:
+        expected = node.bin(expected)
     oldextract = patch.extract
     try:
         patch.extract = lambda ui, hunk: extracted
@@ -941,7 +942,8 @@
     finally:
         patch.extract = oldextract
     created = ret[1]
-    if opts['obsolete'] and created is not None and created != expected:
+    if (opts['obsolete'] and None not in (created, expected)
+        and created != expected):
             tr = repo.transaction('import-obs')
             try:
                 metadata = {'user': ui.username()}