Avoid adding to the changelog executable files added by the second parent.
This was a regression introduced by b51a8138292a.
--- a/mercurial/localrepo.py Mon Aug 27 01:44:35 2007 -0300
+++ b/mercurial/localrepo.py Mon Aug 27 14:21:04 2007 -0300
@@ -718,7 +718,7 @@
new[f] = self.filecommit(f, m1, m2, linkrev, tr, changed)
new_exec = is_exec(f)
new_link = is_link(f)
- if not changed or changed[-1] != f:
+ if (not changed or changed[-1] != f) and m2.get(f) != new[f]:
# mention the file in the changelog if some flag changed,
# even if there was no content change.
old_exec = m1.execf(f)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-changelog-exec Mon Aug 27 14:21:04 2007 -0300
@@ -0,0 +1,32 @@
+#!/bin/sh
+# b51a8138292a introduced a regression where we would mention in the
+# changelog executable files added by the second parent of a merge.
+# Test that that doesn't happen anymore
+
+"$TESTDIR/hghave" execbit || exit 80
+
+hg init repo
+cd repo
+echo foo > foo
+hg ci -qAm 'add foo' -d '0 0'
+
+echo bar > bar
+chmod +x bar
+hg ci -qAm 'add bar' -d '0 0'
+echo '% manifest of p2:'
+hg manifest
+echo
+
+hg up -qC 0
+echo >> foo
+hg ci -m 'change foo' -d '0 0'
+echo '% manifest of p1:'
+hg manifest
+
+hg merge
+hg ci -m 'merge' -d '0 0'
+
+echo '% this should not mention bar:'
+hg tip -v
+
+hg debugindex .hg/store/data/bar.i
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-changelog-exec.out Mon Aug 27 14:21:04 2007 -0300
@@ -0,0 +1,21 @@
+% manifest of p2:
+bar
+foo
+
+% manifest of p1:
+foo
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+% this should not mention bar:
+changeset: 3:ef2fc9b4a51b
+tag: tip
+parent: 2:ed1b79f46b9a
+parent: 1:d394a8db219b
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+description:
+merge
+
+
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 1 b004912a8510 000000000000 000000000000