# HG changeset patch # User Pierre-Yves David # Date 1444206049 25200 # Node ID 23f3f1cbd53b6d80def2dacfbd5c1123038dd9fd # Parent 2bef84fad19f0eaec54041e535526d6b547cb613 extract: add some facility for extensible header parsing We need a way for extension to extend the header we can parse. We start with a very simple mechanism that will be used in the next changeset. diff -r 2bef84fad19f -r 23f3f1cbd53b mercurial/patch.py --- a/mercurial/patch.py Tue Oct 06 02:16:24 2015 -0700 +++ b/mercurial/patch.py Wed Oct 07 01:20:49 2015 -0700 @@ -151,6 +151,10 @@ # if we are here, we have a very plain patch return remainder(cur) +## Some facility for extensible patch parsing: +# list of pairs ("header to match", "data key") +patchheadermap = [] + def extract(ui, fileobj): '''extract patch from data read from fileobj. @@ -238,7 +242,12 @@ data['nodeid'] = line[10:] elif line.startswith("# Parent "): parents.append(line[9:].lstrip()) - elif not line.startswith("# "): + elif line.startswith("# "): + for header, key in patchheadermap: + prefix = '# %s ' % header + if line.startswith(prefix): + data[key] = line[len(prefix):] + else: hgpatchheader = False elif line == '---': ignoretext = True