mercurial/cmdutil.py
changeset 26562 dd2f5e014806
parent 26561 1f14920a892c
child 26578 8bd2759f1fa7
equal deleted inserted replaced
26561:1f14920a892c 26562:dd2f5e014806
   832         return runfn()
   832         return runfn()
   833 
   833 
   834 ## facility to let extension process additional data into an import patch
   834 ## facility to let extension process additional data into an import patch
   835 # list of identifier to be executed in order
   835 # list of identifier to be executed in order
   836 extrapreimport = []  # run before commit
   836 extrapreimport = []  # run before commit
       
   837 extrapostimport = [] # run after commit
   837 # mapping from identifier to actual import function
   838 # mapping from identifier to actual import function
   838 #
   839 #
   839 # 'preimport' are run before the commit is made and are provided the following
   840 # 'preimport' are run before the commit is made and are provided the following
   840 # arguments:
   841 # arguments:
   841 # - repo: the localrepository instance,
   842 # - repo: the localrepository instance,
   844 # - opts: the import options.
   845 # - opts: the import options.
   845 # XXX ideally, we would just pass an ctx ready to be computed, that would allow
   846 # XXX ideally, we would just pass an ctx ready to be computed, that would allow
   846 # mutation of in memory commit and more. Feel free to rework the code to get
   847 # mutation of in memory commit and more. Feel free to rework the code to get
   847 # there.
   848 # there.
   848 extrapreimportmap = {}
   849 extrapreimportmap = {}
       
   850 # 'postimport' are run after the commit is made and are provided the following
       
   851 # argument:
       
   852 # - ctx: the changectx created by import.
       
   853 extrapostimportmap = {}
   849 
   854 
   850 def tryimportone(ui, repo, hunk, parents, opts, msgs, updatefunc):
   855 def tryimportone(ui, repo, hunk, parents, opts, msgs, updatefunc):
   851     """Utility function used by commands.import to import a single patch
   856     """Utility function used by commands.import to import a single patch
   852 
   857 
   853     This function is explicitly defined here to help the evolve extension to
   858     This function is explicitly defined here to help the evolve extension to
   972                     if partial:
   977                     if partial:
   973                         repo.ui.setconfig('ui', 'allowemptycommit', True)
   978                         repo.ui.setconfig('ui', 'allowemptycommit', True)
   974                     n = repo.commit(message, opts.get('user') or user,
   979                     n = repo.commit(message, opts.get('user') or user,
   975                                     opts.get('date') or date, match=m,
   980                                     opts.get('date') or date, match=m,
   976                                     editor=editor, extra=extra)
   981                                     editor=editor, extra=extra)
       
   982                     for idfunc in extrapostimport:
       
   983                         extrapostimportmap[idfunc](repo[n])
   977                 finally:
   984                 finally:
   978                     repo.ui.restoreconfig(allowemptyback)
   985                     repo.ui.restoreconfig(allowemptyback)
   979             dsguard.close()
   986             dsguard.close()
   980         else:
   987         else:
   981             if opts.get('exact') or opts.get('import_branch'):
   988             if opts.get('exact') or opts.get('import_branch'):