mercurial/cmdutil.py
changeset 17471 ad1561723dde
parent 17468 8fea378242e3
child 17472 965fbe04fd96
equal deleted inserted replaced
17470:89467a7c2132 17471:ad1561723dde
     9 from i18n import _
     9 from i18n import _
    10 import os, sys, errno, re, tempfile
    10 import os, sys, errno, re, tempfile
    11 import util, scmutil, templater, patch, error, templatekw, revlog, copies
    11 import util, scmutil, templater, patch, error, templatekw, revlog, copies
    12 import match as matchmod
    12 import match as matchmod
    13 import subrepo, context, repair, bookmarks, graphmod, revset, phases
    13 import subrepo, context, repair, bookmarks, graphmod, revset, phases
       
    14 import lock as lockmod
    14 
    15 
    15 def parsealiases(cmd):
    16 def parsealiases(cmd):
    16     return cmd.lstrip("^").split("|")
    17     return cmd.lstrip("^").split("|")
    17 
    18 
    18 def findpossible(cmd, table, strict=False):
    19 def findpossible(cmd, table, strict=False):
  1573 
  1574 
  1574 def amend(ui, repo, commitfunc, old, extra, pats, opts):
  1575 def amend(ui, repo, commitfunc, old, extra, pats, opts):
  1575     ui.note(_('amending changeset %s\n') % old)
  1576     ui.note(_('amending changeset %s\n') % old)
  1576     base = old.p1()
  1577     base = old.p1()
  1577 
  1578 
  1578     wlock = repo.wlock()
  1579     wlock = lock = None
  1579     try:
  1580     try:
       
  1581         wlock = repo.wlock()
       
  1582         lock = repo.lock()
  1580         # First, do a regular commit to record all changes in the working
  1583         # First, do a regular commit to record all changes in the working
  1581         # directory (if there are any)
  1584         # directory (if there are any)
  1582         ui.callhooks = False
  1585         ui.callhooks = False
  1583         try:
  1586         try:
  1584             node = commit(ui, repo, commitfunc, pats, opts)
  1587             node = commit(ui, repo, commitfunc, pats, opts)
  1692                     repo._bookmarks[bm] = newid
  1695                     repo._bookmarks[bm] = newid
  1693                 bookmarks.write(repo)
  1696                 bookmarks.write(repo)
  1694 
  1697 
  1695             # Strip the intermediate commit (if there was one) and the amended
  1698             # Strip the intermediate commit (if there was one) and the amended
  1696             # commit
  1699             # commit
  1697             lock = repo.lock()
  1700             if node:
  1698             try:
  1701                 ui.note(_('stripping intermediate changeset %s\n') % ctx)
  1699                 if node:
  1702             ui.note(_('stripping amended changeset %s\n') % old)
  1700                     ui.note(_('stripping intermediate changeset %s\n') % ctx)
  1703             repair.strip(ui, repo, old.node(), topic='amend-backup')
  1701                 ui.note(_('stripping amended changeset %s\n') % old)
       
  1702                 repair.strip(ui, repo, old.node(), topic='amend-backup')
       
  1703             finally:
       
  1704                 lock.release()
       
  1705     finally:
  1704     finally:
  1706         wlock.release()
  1705         lockmod.release(wlock, lock)
  1707     return newid
  1706     return newid
  1708 
  1707 
  1709 def commiteditor(repo, ctx, subs):
  1708 def commiteditor(repo, ctx, subs):
  1710     if ctx.description():
  1709     if ctx.description():
  1711         return ctx.description()
  1710         return ctx.description()