diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -1095,7 +1095,7 @@ else: def set_exec(f, mode): s = os.lstat(f).st_mode - if (s & 0100 != 0) == mode: + if stat.S_ISLNK(s) or (s & 0100 != 0) == mode: return if mode: # Turn on +x for every +r bit when making a file executable