# HG changeset patch # User Boris Feld # Date 1505146049 -7200 # Node ID ae95853c250adcd034a32a2d7f26e744c555f0f2 # Parent 07f09995e85727dfd516a88977a9ea63d32d9996 cmdutil: fix amend when passing a date Following https://phab.mercurial-scm.org/D636, passing the same date that the changeset to amend would results in no new commits but the output changed from: $ hg amend -d '0 0' nothing changed [1] to: $ hg amend -d '0 0' Restore the old behavior by parsing the date passed as parameter so the condition "date == old.date()" correctly works in cases both dates are identical. Add a test for covering this regression. This bug was found thanks to Evolve test suite. Differential Revision: https://phab.mercurial-scm.org/D691 diff -r 07f09995e857 -r ae95853c250a mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Sep 12 11:18:35 2017 -0400 +++ b/mercurial/cmdutil.py Mon Sep 11 18:07:29 2017 +0200 @@ -3059,6 +3059,9 @@ user = opts.get('user') or old.user() date = opts.get('date') or old.date() + # Parse the date to allow comparison between date and old.date() + date = util.parsedate(date) + if len(old.parents()) > 1: # ctx.files() isn't reliable for merges, so fall back to the # slower repo.status() method diff -r 07f09995e857 -r ae95853c250a tests/test-amend.t --- a/tests/test-amend.t Tue Sep 12 11:18:35 2017 -0400 +++ b/tests/test-amend.t Mon Sep 11 18:07:29 2017 +0200 @@ -85,6 +85,14 @@ nothing changed [1] + $ hg amend -d "0 0" + nothing changed + [1] + + $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC" + nothing changed + [1] + Matcher and metadata options $ echo 3 > C