Mercurial > public > mercurial-scm > hg-stable
diff mercurial/cmdutil.py @ 42909:66048f6b5d0d
uncommit: add options to update to the current user or current date
These are also from the evolve extension's version of uncommit.
I tried adding validation that both forms of user or date can't be specified at
the same time, but that fails because these show up in `opts` with a None value
whether or not the option was given on the command line. Presumably that means
the conditional in `resolvecommitoptions` could be simplified. But this is how
both evolve and MQ handle it.
Differential Revision: https://phab.mercurial-scm.org/D6828
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 07 Sep 2019 23:20:11 -0400 |
parents | a65c4715fb5d |
children | a50661567f83 |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sat Sep 07 13:44:29 2019 -0400 +++ b/mercurial/cmdutil.py Sat Sep 07 23:20:11 2019 -0400 @@ -100,6 +100,13 @@ _('record the specified user as committer'), _('USER')), ] +commitopts3 = [ + (b'D', b'current-date', None, + _(b'record the current date as commit date')), + (b'U', b'current-user', None, + _(b'record the current user as committer')), +] + formatteropts = [ ('T', 'template', '', _('display with template'), _('TEMPLATE')), @@ -175,6 +182,15 @@ # editor text _linebelow = "^HG: ------------------------ >8 ------------------------$" +def resolvecommitoptions(ui, opts): + """modify commit options dict to handle related options + """ + # N.B. this is extremely similar to setupheaderopts() in mq.py + if not opts.get(b'date') and opts.get(b'current_date'): + opts[b'date'] = b'%d %d' % dateutil.makedate() + if not opts.get(b'user') and opts.get(b'current_user'): + opts[b'user'] = ui.username() + def ishunk(x): hunkclasses = (crecordmod.uihunk, patch.recordhunk) return isinstance(x, hunkclasses)