# HG changeset patch # User Benoit Boissinot # Date 2009-01-07 01:11:17 # Node ID 89207edf3973efb342bd49714b653b6de8518283 # Parent 12df451ce20562b1378aa8e26ccbea2534cae2a1 correctly update dirstate after update+mode change (issue1456) diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -369,7 +369,9 @@ def recordupdates(repo, action, branchme repo.dirstate.forget(f) elif m == "f": # forget repo.dirstate.forget(f) - elif m in "ge": # get or exec change + elif m == "e": # exec change + repo.dirstate.normaldirty(f) + elif m == "g": # get if branchmerge: repo.dirstate.normaldirty(f) else: diff --git a/tests/test-up-issue1456 b/tests/test-up-issue1456 new file mode 100755 --- /dev/null +++ b/tests/test-up-issue1456 @@ -0,0 +1,17 @@ +#!/bin/sh + +rm -rf a +hg init a +cd a + +echo foo > foo +hg ci -qAm0 +chmod +x foo +hg ci -m1 +hg co -q 0 +echo dirty > foo +sleep 1 +hg up -q +cat foo +hg st -A + diff --git a/tests/test-up-issue1456.out b/tests/test-up-issue1456.out new file mode 100644 --- /dev/null +++ b/tests/test-up-issue1456.out @@ -0,0 +1,2 @@ +dirty +M foo