diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -370,7 +370,7 @@ def recordupdates(repo, action, branchme elif m == "f": # forget repo.dirstate.forget(f) elif m == "e": # exec change - repo.dirstate.normaldirty(f) + repo.dirstate.normallookup(f) elif m == "g": # get if branchmerge: repo.dirstate.normaldirty(f) diff --git a/tests/test-up-issue1456 b/tests/test-up-issue1456 --- a/tests/test-up-issue1456 +++ b/tests/test-up-issue1456 @@ -15,3 +15,10 @@ hg up -q cat foo hg st -A +echo '% validate update of standalone execute bit change' +hg up -C 0 +chmod -x foo +hg ci -m removeexec +hg up -C 0 +hg up +hg st diff --git a/tests/test-up-issue1456.out b/tests/test-up-issue1456.out --- a/tests/test-up-issue1456.out +++ b/tests/test-up-issue1456.out @@ -1,2 +1,7 @@ dirty M foo +% validate update of standalone execute bit change +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +nothing changed +0 files updated, 0 files merged, 0 files removed, 0 files unresolved +0 files updated, 0 files merged, 0 files removed, 0 files unresolved