Patchwork D6828: uncommit: add options to update to the current user or current date

login
register
mail settings
Submitter phabricator
Date Sept. 9, 2019, 3:31 p.m.
Message ID <9006fde1a5393762700961434858d7cf@localhost.localdomain>
Download mbox | patch
Permalink /patch/41582/
State Not Applicable
Headers show

Comments

phabricator - Sept. 9, 2019, 3:31 p.m.
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




To: mharbison72, #hg-reviewers, pulkit
Cc: pulkit, mercurial-devel

Patch

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]