mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
Merge with crew-stable.
This commit is contained in:
commit
369cb57512
@ -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
32
tests/test-changelog-exec
Executable 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
|
21
tests/test-changelog-exec.out
Normal file
21
tests/test-changelog-exec.out
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user