D5483: amend:added config option to update time to current in hg amend(issue5828)
taapas1128 (Taapas Agrawal)
phabricator at mercurial-scm.org
Fri Jan 4 08:23:58 EST 2019
taapas1128 updated this revision to Diff 13005.
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5483?vs=12998&id=13005
REVISION DETAIL
https://phab.mercurial-scm.org/D5483
AFFECTED FILES
mercurial/cmdutil.py
mercurial/configitems.py
mercurial/help/config.txt
tests/test-amend.t
CHANGE DETAILS
diff --git a/tests/test-amend.t b/tests/test-amend.t
--- a/tests/test-amend.t
+++ b/tests/test-amend.t
@@ -365,3 +365,46 @@
$ hg amend
#endif
+
+When updatetimestamp is False
+
+ $ hg amend --date '1997-1-1 0:1'
+ $ hg log --limit 1
+ changeset: 1:771a1be14d80
+ tag: tip
+ user: test
+ date: Wed Jan 01 00:01:00 1997 +0000
+ summary: b
+
+
+When update-timestamp is True and no other change than the date
+
+ $ hg amend --config rewrite.update-timestamp=True
+ nothing changed
+ [1]
+ $ hg log --limit 1
+ changeset: 1:771a1be14d80
+ tag: tip
+ user: test
+ date: Wed Jan 01 00:01:00 1997 +0000
+ summary: b
+
+
+When update-timestamp is True and there is other change than the date
+ $ hg amend --user foobar --config rewrite.update-timestamp=True
+ $ hg log --limit 1
+ changeset: 1:4d940abebc37
+ tag: tip
+ user: foobar
+ date: Fri Jan 04 13:12:38 2019 +0000
+ summary: b
+
+When date option is applicable and update-timestamp is True
+ $ hg amend --date '1998-1-1 0:1' --config rewrite.update-timestamp=True
+ $ hg log --limit 1
+ changeset: 1:0bebcd7a8323
+ tag: tip
+ user: foobar
+ date: Thu Jan 01 00:01:00 1998 +0000
+ summary: b
+
diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
--- a/mercurial/help/config.txt
+++ b/mercurial/help/config.txt
@@ -1806,6 +1806,13 @@
Alias definitions for revsets. See :hg:`help revsets` for details.
+``rewrite``
+-----------
+
+``update-timestamp``
+ If true updates the date and time of the changeset to current.It is only
+ applicable for hg amend in current version.
+
``storage``
-----------
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -961,6 +961,9 @@
coreconfigitem('push', 'pushvars.server',
default=False,
)
+coreconfigitem('rewrite', 'update-timestamp',
+ default=False,
+)
coreconfigitem('storage', 'new-repo-backend',
default='revlogv1',
)
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2545,6 +2545,12 @@
pureextra = extra.copy()
extra['amend_source'] = old.hex()
+ if ui.configbool('rewrite','update-timestamp')==True:
+ if opts.get('date'):
+ pass
+ else:
+ date = dateutil.makedate()
+
new = context.memctx(repo,
parents=[base.node(), old.p2().node()],
text=message,
@@ -2559,13 +2565,15 @@
if ((not changes)
and newdesc == old.description()
and user == old.user()
- and date == old.date()
and pureextra == old.extra()):
# nothing changed. continuing here would create a new node
# anyway because of the amend_source noise.
#
# This not what we expect from amend.
- return old.node()
+ if (date == old.date() or
+ (ui.configbool('rewrite','update-timestamp')==True and
+ not opts.get('date'))):
+ return old.node()
commitphase = None
if opts.get('secret'):
To: taapas1128, #hg-reviewers
Cc: pulkit, yuja, mercurial-devel
More information about the Mercurial-devel
mailing list