]> git.notmuchmail.org Git - notmuch/blobdiff - devel/nmbug/nmbug
test/T391-python-cffi
[notmuch] / devel / nmbug / nmbug
index 0cd911487a80b950090566cd4d3c41adfb91f484..043c186369c1f55fce114b230746f138d7bc2345 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (c) 2011-2014 David Bremner <david@tethera.net>
 #                         W. Trevor King <wking@tremily.us>
@@ -51,7 +51,7 @@ except ImportError:  # Python 2
     from urllib import unquote as _unquote
 
 
-__version__ = '0.2'
+__version__ = '0.3'
 
 _LOG = _logging.getLogger('nmbug')
 _LOG.setLevel(_logging.WARNING)
@@ -65,7 +65,8 @@ if _os.path.isdir(_NMBGIT):
 
 TAG_PREFIX = _os.getenv('NMBPREFIX', 'notmuch::')
 _HEX_ESCAPE_REGEX = _re.compile('%[0-9A-F]{2}')
-_TAG_FILE_REGEX = _re.compile('tags/(?P<id>[^/]*)/(?P<tag>[^/]*)')
+_TAG_DIRECTORY = 'tags/'
+_TAG_FILE_REGEX = _re.compile(_TAG_DIRECTORY + '(?P<id>[^/]*)/(?P<tag>[^/]*)')
 
 # magic hash for Git (git hash-object -t blob /dev/null)
 _EMPTYBLOB = 'e69de29bb2d1d6434b8b29ae775ad8c2e48c5391'
@@ -683,8 +684,11 @@ def _unpack_diff_lines(stream):
     for line in stream:
         match = _TAG_FILE_REGEX.match(line.strip())
         if not match:
-            raise ValueError(
-                'Invalid line in diff: {!r}'.format(line.strip()))
+            message = 'non-tag line in diff: {!r}'.format(line.strip())
+            if line.startswith(_TAG_DIRECTORY):
+                raise ValueError(message)
+            _LOG.info(message)
+            continue
         id = _unquote(match.group('id'))
         tag = _unquote(match.group('tag'))
         yield (id, tag)