mercurial/cmdutil.py
changeset 24995 0579b0c2ea2b
parent 24993 be58bd30a478
child 25020 747055706e85
equal deleted inserted replaced
24994:713b09fc9fbb 24995:0579b0c2ea2b
   816     if not tmpname:
   816     if not tmpname:
   817         return (None, None, False)
   817         return (None, None, False)
   818     msg = _('applied to working directory')
   818     msg = _('applied to working directory')
   819 
   819 
   820     rejects = False
   820     rejects = False
       
   821     dsguard = None
   821 
   822 
   822     try:
   823     try:
   823         cmdline_message = logmessage(ui, opts)
   824         cmdline_message = logmessage(ui, opts)
   824         if cmdline_message:
   825         if cmdline_message:
   825             # pickup the cmdline msg
   826             # pickup the cmdline msg
   857         else:
   858         else:
   858             p1, p2 = parents
   859             p1, p2 = parents
   859 
   860 
   860         n = None
   861         n = None
   861         if update:
   862         if update:
   862             repo.dirstate.beginparentchange()
   863             dsguard = dirstateguard(repo, 'tryimportone')
   863             if p1 != parents[0]:
   864             if p1 != parents[0]:
   864                 updatefunc(repo, p1.node())
   865                 updatefunc(repo, p1.node())
   865             if p2 != parents[1]:
   866             if p2 != parents[1]:
   866                 repo.setparents(p1.node(), p2.node())
   867                 repo.setparents(p1.node(), p2.node())
   867 
   868 
   897                 else:
   898                 else:
   898                     editor = getcommiteditor(editform=editform, **opts)
   899                     editor = getcommiteditor(editform=editform, **opts)
   899                 n = repo.commit(message, opts.get('user') or user,
   900                 n = repo.commit(message, opts.get('user') or user,
   900                                 opts.get('date') or date, match=m,
   901                                 opts.get('date') or date, match=m,
   901                                 editor=editor, force=partial)
   902                                 editor=editor, force=partial)
   902             repo.dirstate.endparentchange()
   903             dsguard.close()
   903         else:
   904         else:
   904             if opts.get('exact') or opts.get('import_branch'):
   905             if opts.get('exact') or opts.get('import_branch'):
   905                 branch = branch or 'default'
   906                 branch = branch or 'default'
   906             else:
   907             else:
   907                 branch = p1.branch()
   908                 branch = p1.branch()
   935         if n:
   936         if n:
   936             # i18n: refers to a short changeset id
   937             # i18n: refers to a short changeset id
   937             msg = _('created %s') % short(n)
   938             msg = _('created %s') % short(n)
   938         return (msg, n, rejects)
   939         return (msg, n, rejects)
   939     finally:
   940     finally:
       
   941         lockmod.release(dsguard)
   940         os.unlink(tmpname)
   942         os.unlink(tmpname)
   941 
   943 
   942 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
   944 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
   943            opts=None):
   945            opts=None):
   944     '''export changesets as hg patches.'''
   946     '''export changesets as hg patches.'''