diff -r 6b52cffd8d0a -r e2f7b2695ba1 mercurial/dirstate.py --- a/mercurial/dirstate.py Tue Mar 02 00:05:22 2021 +0100 +++ b/mercurial/dirstate.py Thu Mar 18 18:24:59 2021 -0400 @@ -1284,7 +1284,12 @@ or size == -2 # other parent or fn in copymap ): - madd(fn) + if stat.S_ISLNK(st.st_mode) and size != st.st_size: + # issue6456: Size returned may be longer due to + # encryption on EXT-4 fscrypt, undecided. + ladd(fn) + else: + madd(fn) elif ( time != st[stat.ST_MTIME] and time != st[stat.ST_MTIME] & _rangemask