--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hgext/amend.py Tue Jul 11 20:53:55 2017 -0700
@@ -0,0 +1,51 @@
+# amend.py - provide the amend command
+#
+# Copyright 2017 Facebook, Inc.
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+"""provide the amend command (EXPERIMENTAL)
+
+This extension provides an ``amend`` command that is similar to
+``commit --amend`` but does not prompt an editor.
+"""
+
+from __future__ import absolute_import
+
+from mercurial.i18n import _
+from mercurial import (
+ cmdutil,
+ commands,
+ registrar,
+)
+
+# Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
+# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
+# be specifying the version(s) of Mercurial they are tested with, or
+# leave the attribute unspecified.
+testedwith = 'ships-with-hg-core'
+
+cmdtable = {}
+command = registrar.command(cmdtable)
+
+@command('amend',
+ [('A', 'addremove', None,
+ _('mark new/missing files as added/removed before committing')),
+ ('e', 'edit', None, _('invoke editor on commit messages')),
+ ('i', 'interactive', None, _('use interactive mode')),
+ ] + cmdutil.walkopts + cmdutil.commitopts + cmdutil.commitopts2,
+ _('[OPTION]... [FILE]...'),
+ inferrepo=True)
+def amend(ui, repo, *pats, **opts):
+ """amend the working copy parent with all or specified outstanding changes
+
+ Similar to :hg:`commit --amend`, but reuse the commit message without
+ invoking editor, unless ``--edit`` was set.
+
+ See :hg:`help commit` for more details.
+ """
+ with repo.wlock(), repo.lock():
+ if not opts.get('logfile'):
+ opts['message'] = opts.get('message') or repo['.'].description()
+ opts['amend'] = True
+ return commands._docommit(ui, repo, *pats, **opts)