mercurial/cmdutil.py
changeset 8407 223000a687b0
parent 8390 beae42f3d93b
child 8409 e84a8482c6f2
equal deleted inserted replaced
8406:6ad1f72bdf34 8407:223000a687b0
  1219         m = matchfiles(repo, files)
  1219         m = matchfiles(repo, files)
  1220     try:
  1220     try:
  1221         return commitfunc(ui, repo, message, m, opts)
  1221         return commitfunc(ui, repo, message, m, opts)
  1222     except ValueError, inst:
  1222     except ValueError, inst:
  1223         raise util.Abort(str(inst))
  1223         raise util.Abort(str(inst))
       
  1224 
       
  1225 def commiteditor(repo, ctx, added, updated, removed):
       
  1226     if ctx.description():
       
  1227         return ctx.description()
       
  1228     return commitforceeditor(repo, ctx, added, updated, removed)
       
  1229 
       
  1230 def commitforceeditor(repo, ctx, added, updated, removed):
       
  1231     edittext = []
       
  1232     if ctx.description():
       
  1233         edittext.append(ctx.description())
       
  1234     edittext.append("")
       
  1235     edittext.append("") # Empty line between message and comments.
       
  1236     edittext.append(_("HG: Enter commit message."
       
  1237                       "  Lines beginning with 'HG:' are removed."))
       
  1238     edittext.append("HG: --")
       
  1239     edittext.append(_("HG: user: %s") % ctx.user())
       
  1240     if ctx.p2():
       
  1241         edittext.append(_("HG: branch merge"))
       
  1242     if ctx.branch():
       
  1243         edittext.append(_("HG: branch '%s'")
       
  1244                         % encoding.tolocal(ctx.branch()))
       
  1245     edittext.extend([_("HG: added %s") % f for f in added])
       
  1246     edittext.extend([_("HG: changed %s") % f for f in updated])
       
  1247     edittext.extend([_("HG: removed %s") % f for f in removed])
       
  1248     if not added and not updated and not removed:
       
  1249         edittext.append(_("HG: no files changed"))
       
  1250     edittext.append("")
       
  1251     # run editor in the repository root
       
  1252     olddir = os.getcwd()
       
  1253     os.chdir(repo.root)
       
  1254     text = repo.ui.edit("\n".join(edittext), ctx.user())
       
  1255     os.chdir(olddir)
       
  1256 
       
  1257     if not text.strip():
       
  1258         raise util.Abort(_("empty commit message"))
       
  1259 
       
  1260     return text