mercurial/cmdutil.py
changeset 26545 e99c3846d78a
parent 26533 3e61b325e79a
child 26547 b9be8ab6e628
equal deleted inserted replaced
26544:1e8e0b01faba 26545:e99c3846d78a
   989         return (msg, n, rejects)
   989         return (msg, n, rejects)
   990     finally:
   990     finally:
   991         lockmod.release(dsguard)
   991         lockmod.release(dsguard)
   992         os.unlink(tmpname)
   992         os.unlink(tmpname)
   993 
   993 
       
   994 # facility to let extensions include additional data in an exported patch
       
   995 # list of identifiers to be executed in order
       
   996 extraexport = []
       
   997 # mapping from identifier to actual export function
       
   998 # function as to return a string to be added to the header or None
       
   999 # it is given two arguments (sequencenumber, changectx)
       
  1000 extraexportmap = {}
       
  1001 
   994 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
  1002 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
   995            opts=None, match=None):
  1003            opts=None, match=None):
   996     '''export changesets as hg patches.'''
  1004     '''export changesets as hg patches.'''
   997 
  1005 
   998     total = len(revs)
  1006     total = len(revs)
  1038             write("# Branch %s\n" % branch)
  1046             write("# Branch %s\n" % branch)
  1039         write("# Node ID %s\n" % hex(node))
  1047         write("# Node ID %s\n" % hex(node))
  1040         write("# Parent  %s\n" % hex(prev))
  1048         write("# Parent  %s\n" % hex(prev))
  1041         if len(parents) > 1:
  1049         if len(parents) > 1:
  1042             write("# Parent  %s\n" % hex(parents[1]))
  1050             write("# Parent  %s\n" % hex(parents[1]))
       
  1051 
       
  1052         for headerid in extraexport:
       
  1053             header = extraexportmap[headerid](seqno, ctx)
       
  1054             if header is not None:
       
  1055                 write('# %s\n' % header)
  1043         write(ctx.description().rstrip())
  1056         write(ctx.description().rstrip())
  1044         write("\n\n")
  1057         write("\n\n")
  1045 
  1058 
  1046         for chunk, label in patch.diffui(repo, prev, node, match, opts=opts):
  1059         for chunk, label in patch.diffui(repo, prev, node, match, opts=opts):
  1047             write(chunk, label=label)
  1060             write(chunk, label=label)