effectflag: detect when user changed
Store in effect flag when the user changed between the predecessor and its
successors.
It can happens with "hg commit --amend -u" or "histedit".
Differential Revision: https://phab.mercurial-scm.org/D536
--- a/mercurial/obsutil.py Thu Jul 06 14:52:34 2017 +0200
+++ b/mercurial/obsutil.py Thu Jul 06 14:53:48 2017 +0200
@@ -309,6 +309,7 @@
EFFECTFLAGFIELD = "ef1"
DESCCHANGED = 1 << 0 # action changed the description
+USERCHANGED = 1 << 4 # the user changed
def geteffectflag(relation):
""" From an obs-marker relation, compute what changed between the
@@ -323,6 +324,10 @@
if changectx.description() != source.description():
effects |= DESCCHANGED
+ # Check if user has changed
+ if changectx.user() != source.user():
+ effects |= USERCHANGED
+
return effects
def getobsoleted(repo, tr):
--- a/tests/test-obsmarkers-effectflag.t Thu Jul 06 14:52:34 2017 +0200
+++ b/tests/test-obsmarkers-effectflag.t Thu Jul 06 14:53:48 2017 +0200
@@ -40,7 +40,7 @@
check result
$ hg debugobsolete --rev .
- ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'amend', 'user': 'test'}
+ ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '16', 'operation': 'amend', 'user': 'test'}
amend touching the date only
----------------------------
@@ -106,7 +106,7 @@
check result
$ hg debugobsolete --rev .
- fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
+ fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '17', 'operation': 'amend', 'user': 'test'}
rebase not touching the diff
----------------------------