diff --git a/hgext3rd/tweakdefaults.py b/hgext3rd/tweakdefaults.py --- a/hgext3rd/tweakdefaults.py +++ b/hgext3rd/tweakdefaults.py @@ -342,6 +342,7 @@ def commitcmd(orig, ui, repo, *pats, **opts): if (opts.get("amend") and not opts.get("date") + and not opts.get("to") and not ui.configbool('tweakdefaults', 'amendkeepdate')): opts["date"] = currentdate() @@ -733,8 +734,9 @@ return orig(ui, repo, *revs, **opts) def amendcmd(orig, ui, repo, *pats, **opts): - if not opts.get("date") and not ui.configbool('tweakdefaults', - 'amendkeepdate'): + if (not opts.get("date") + and not opts.get("to") + and not ui.configbool('tweakdefaults', 'amendkeepdate')): opts["date"] = currentdate() return orig(ui, repo, *pats, **opts) diff --git a/tests/test-tweakdefaults.t b/tests/test-tweakdefaults.t --- a/tests/test-tweakdefaults.t +++ b/tests/test-tweakdefaults.t @@ -360,17 +360,26 @@ $ touch new_file $ hg commit -d "0 0" -Aqm "commit for amend" $ echo x > new_file - $ hg commit -q --amend -m "amended message" --config tweakdefaults.amendkeepdate=True + $ hg amend -q -m "amended message" --config tweakdefaults.amendkeepdate=True $ hg log -l 1 -T "{date} {rev}\n" 0.00 8 +Test amend --to doesn't give a flag error when tweakdefaults.amendkeepdate is set + $ echo q > new_file + $ hg amend --to 8 --config tweakdefaults.amendkeepdate=False + hg: parse error: pick "3903775176ed" changeset was not a candidate + (only use listed changesets) + [255] + $ hg log -l 1 -T "{date} {rev}\n" + 0.00 9 + Test commit --amend date when tweakdefaults.amendkeepdate is set $ echo a >> new_file $ hg commit -d "0 0" -Aqm "commit for amend" $ echo x > new_file $ hg commit -q --amend -m "amended message" --config tweakdefaults.amendkeepdate=True $ hg log -l 1 -T "{date} {rev}\n" - 0.00 9 + 0.00 10 Test commit --amend date when tweakdefaults.amendkeepdate is not set and --date is provided $ echo xxx > a @@ -378,7 +387,7 @@ $ echo x > a $ hg commit -q --amend -m "amended message" --date "1 1" $ hg log -l 1 -T "{date} {rev}\n" - 1.01 10 + 1.01 11 Test rebase date when tweakdefaults.rebasekeepdate is not set $ echo test_1 > rebase_dest @@ -390,7 +399,7 @@ $ hg bookmark rebase_source_test_1 $ hg rebase -q -s rebase_source_test_1 -d rebase_dest_test_1 $ hg log -l 1 -T "{rev}\n" -d "yesterday to today" - 12 + 13 Test rebase date when tweakdefaults.rebasekeepdate is set $ echo test_2 > rebase_dest @@ -402,8 +411,8 @@ $ hg bookmark rebase_source_test_2 $ hg rebase -q -s rebase_source_test_2 -d rebase_dest_test_2 --config tweakdefaults.rebasekeepdate=True $ hg log -l 2 -T "{date} {rev}\n" + 0.00 15 0.00 14 - 0.00 13 Test reuse message flag by taking message from previous commit $ cd ../..