# HG changeset patch # User Boris Feld # Date 1499345662 -7200 # Node ID 54af8de9bd096840a9a7d8f22fdabb69703925a7 # Parent 55ef17ec8e593c80a3cc403e43e019c3f0bdcc78 effectflag: detect when date changed Store in effect flag when the date changed between the predecessor and its successors. It can happens with "hg commit --amend -d", "hg amend -d" or "histedit". Differential Revision: https://phab.mercurial-scm.org/D537 diff -r 55ef17ec8e59 -r 54af8de9bd09 mercurial/obsutil.py --- a/mercurial/obsutil.py Thu Jul 06 14:53:48 2017 +0200 +++ b/mercurial/obsutil.py Thu Jul 06 14:54:22 2017 +0200 @@ -310,6 +310,7 @@ DESCCHANGED = 1 << 0 # action changed the description USERCHANGED = 1 << 4 # the user changed +DATECHANGED = 1 << 5 # the date changed def geteffectflag(relation): """ From an obs-marker relation, compute what changed between the @@ -328,6 +329,10 @@ if changectx.user() != source.user(): effects |= USERCHANGED + # Check if date has changed + if changectx.date() != source.date(): + effects |= DATECHANGED + return effects def getobsoleted(repo, tr): diff -r 55ef17ec8e59 -r 54af8de9bd09 tests/test-obsmarkers-effectflag.t --- a/tests/test-obsmarkers-effectflag.t Thu Jul 06 14:53:48 2017 +0200 +++ b/tests/test-obsmarkers-effectflag.t Thu Jul 06 14:54:22 2017 +0200 @@ -51,7 +51,7 @@ check result $ hg debugobsolete --rev . - 2ef0680ff45038ac28c9f1ff3644341f54487280 4dd84345082e9e5291c2e6b3f335bbf8bf389378 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'amend', 'user': 'test'} + 2ef0680ff45038ac28c9f1ff3644341f54487280 4dd84345082e9e5291c2e6b3f335bbf8bf389378 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '32', 'operation': 'amend', 'user': 'test'} amend touching the branch only ---------------------------- @@ -106,7 +106,7 @@ check result $ hg debugobsolete --rev . - fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '17', 'operation': 'amend', 'user': 'test'} + fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '49', 'operation': 'amend', 'user': 'test'} rebase not touching the diff ----------------------------