# Utility functions
-def git_id(string):
+def git_id(string, strict = False):
"""Return the GIT id
"""
if not string:
if os.path.isfile(id_file):
return read_string(id_file)
- # maybe GIT know more about this id
- return git_id
+ # maybe GIT knows more about this id
+ if not strict:
+ return git_id
elif len(string_list) == 2:
patch_name = string_list[0]
if patch_name == '':
print 'No patches applied'
def resolved(filename):
- git.update_cache([filename])
+ git.update_cache([filename], force = True)
for ext in ['.local', '.older', '.remote']:
fn = filename + ext
if os.path.isfile(fn):
"""Return a tuple consisting of the name and email parsed from a
standard 'name <email>' string
"""
- names = re.split('([^<>]*)<([^<>]*)>', string)
- if len(names) != 4:
+ str_list = re.findall('^(.*)\s+<(.*)>$', string)
+ if not str_list:
raise CmdException, 'Incorrect "name <email>" string: %s' % string
- return tuple([names[1].strip(), names[2].strip()])
+ return str_list[0]
+
+def name_email_date(string):
+ """Return a tuple consisting of the name, email and date parsed
+ from a 'name <email> date' string
+ """
+ str_list = re.findall('^(.*)\s+<(.*)>\s+(.*)$', string)
+ if not str_list:
+ raise CmdException, 'Incorrect "name <email> date" string: %s' % string
+
+ return str_list[0]