D6828: uncommit: add options to update to the current user or current date
mharbison72 (Matt Harbison)
phabricator at mercurial-scm.org
Mon Sep 9 11:31:45 EDT 2019
Closed by commit rHG66048f6b5d0d: uncommit: add options to update to the current user or current date (authored by mharbison72).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6828?vs=16449&id=16454
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6828/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6828
AFFECTED FILES
hgext/uncommit.py
mercurial/cmdutil.py
mercurial/commands.py
tests/test-uncommit.t
CHANGE DETAILS
diff --git a/tests/test-uncommit.t b/tests/test-uncommit.t
--- a/tests/test-uncommit.t
+++ b/tests/test-uncommit.t
@@ -42,6 +42,8 @@
-l --logfile FILE read commit message from file
-d --date DATE record the specified date as commit date
-u --user USER record the specified user as committer
+ -D --current-date record the current date as commit date
+ -U --current-user record the current user as committer
(some details hidden, use --verbose to show complete help)
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -118,6 +118,7 @@
walkopts = cmdutil.walkopts
commitopts = cmdutil.commitopts
commitopts2 = cmdutil.commitopts2
+commitopts3 = cmdutil.commitopts3
formatteropts = cmdutil.formatteropts
templateopts = cmdutil.templateopts
logopts = cmdutil.logopts
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -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)
diff --git a/hgext/uncommit.py b/hgext/uncommit.py
--- a/hgext/uncommit.py
+++ b/hgext/uncommit.py
@@ -112,7 +112,8 @@
[('', 'keep', None, _('allow an empty commit after uncommiting')),
('', 'allow-dirty-working-copy', False,
_('allow uncommit with outstanding changes'))
- ] + commands.walkopts + commands.commitopts + commands.commitopts2,
+ ] + commands.walkopts + commands.commitopts + commands.commitopts2
+ + commands.commitopts3,
_('[OPTION]... [FILE]...'),
helpcategory=command.CATEGORY_CHANGE_MANAGEMENT)
def uncommit(ui, repo, *pats, **opts):
@@ -128,6 +129,8 @@
"""
opts = pycompat.byteskwargs(opts)
+ cmdutil.resolvecommitoptions(ui, opts)
+
with repo.wlock(), repo.lock():
m, a, r, d = repo.status()[:4]
To: mharbison72, #hg-reviewers, pulkit
Cc: pulkit, mercurial-devel
More information about the Mercurial-devel
mailing list