Merge with crew-stable.

This commit is contained in:
Alexis S. L. Carvalho 2007-08-27 14:55:33 -03:00
commit 369cb57512
5 changed files with 63 additions and 3 deletions

View File

@ -630,7 +630,9 @@ class localrepository(repo.repository):
elif fp1 != nullid: # copied on local side, reversed
meta["copyrev"] = hex(manifest2.get(cp))
fp2 = fp1
else: # directory rename
elif cp in manifest2: # directory rename on local side
meta["copyrev"] = hex(manifest2[cp])
else: # directory rename on remote side
meta["copyrev"] = hex(manifest1.get(cp, nullid))
self.ui.debug(_(" %s: copy %s:%s\n") %
(fn, cp, meta["copyrev"]))
@ -644,7 +646,7 @@ class localrepository(repo.repository):
fp2 = nullid
# is the file unmodified from the parent? report existing entry
if fp2 == nullid and not fl.cmp(fp1, t):
if fp2 == nullid and not fl.cmp(fp1, t) and not meta:
return fp1
changelist.append(fn)
@ -736,7 +738,8 @@ class localrepository(repo.repository):
new[f] = self.filecommit(f, m1, m2, linkrev, trp, 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.

32
tests/test-changelog-exec Executable file
View File

@ -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

View File

@ -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

View File

@ -24,9 +24,11 @@ hg merge --debug 1
echo a/* b/*
hg st -C
hg ci -m "3 merge 2+1" -d "0 0"
hg debugrename b/c
hg co -C 1
hg merge --debug 2
echo a/* b/*
hg st -C
hg ci -m "4 merge 1+2" -d "0 0"
hg debugrename b/c

View File

@ -29,6 +29,7 @@ A b/c
R a/a
R a/b
R a/c
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
resolving manifests
overwrite None partial False
@ -40,3 +41,4 @@ getting a/c to b/c
a/* b/a b/b b/c
A b/c
a/c
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88