Show More
@@ -0,0 +1,32 b'' | |||||
|
1 | #!/bin/sh | |||
|
2 | # b51a8138292a introduced a regression where we would mention in the | |||
|
3 | # changelog executable files added by the second parent of a merge. | |||
|
4 | # Test that that doesn't happen anymore | |||
|
5 | ||||
|
6 | "$TESTDIR/hghave" execbit || exit 80 | |||
|
7 | ||||
|
8 | hg init repo | |||
|
9 | cd repo | |||
|
10 | echo foo > foo | |||
|
11 | hg ci -qAm 'add foo' -d '0 0' | |||
|
12 | ||||
|
13 | echo bar > bar | |||
|
14 | chmod +x bar | |||
|
15 | hg ci -qAm 'add bar' -d '0 0' | |||
|
16 | echo '% manifest of p2:' | |||
|
17 | hg manifest | |||
|
18 | echo | |||
|
19 | ||||
|
20 | hg up -qC 0 | |||
|
21 | echo >> foo | |||
|
22 | hg ci -m 'change foo' -d '0 0' | |||
|
23 | echo '% manifest of p1:' | |||
|
24 | hg manifest | |||
|
25 | ||||
|
26 | hg merge | |||
|
27 | hg ci -m 'merge' -d '0 0' | |||
|
28 | ||||
|
29 | echo '% this should not mention bar:' | |||
|
30 | hg tip -v | |||
|
31 | ||||
|
32 | hg debugindex .hg/store/data/bar.i |
@@ -0,0 +1,21 b'' | |||||
|
1 | % manifest of p2: | |||
|
2 | bar | |||
|
3 | foo | |||
|
4 | ||||
|
5 | % manifest of p1: | |||
|
6 | foo | |||
|
7 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
8 | (branch merge, don't forget to commit) | |||
|
9 | % this should not mention bar: | |||
|
10 | changeset: 3:ef2fc9b4a51b | |||
|
11 | tag: tip | |||
|
12 | parent: 2:ed1b79f46b9a | |||
|
13 | parent: 1:d394a8db219b | |||
|
14 | user: test | |||
|
15 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
16 | description: | |||
|
17 | merge | |||
|
18 | ||||
|
19 | ||||
|
20 | rev offset length base linkrev nodeid p1 p2 | |||
|
21 | 0 0 5 0 1 b004912a8510 000000000000 000000000000 |
@@ -630,7 +630,9 b' class localrepository(repo.repository):' | |||||
630 | elif fp1 != nullid: # copied on local side, reversed |
|
630 | elif fp1 != nullid: # copied on local side, reversed | |
631 | meta["copyrev"] = hex(manifest2.get(cp)) |
|
631 | meta["copyrev"] = hex(manifest2.get(cp)) | |
632 | fp2 = fp1 |
|
632 | fp2 = fp1 | |
633 |
el |
|
633 | elif cp in manifest2: # directory rename on local side | |
|
634 | meta["copyrev"] = hex(manifest2[cp]) | |||
|
635 | else: # directory rename on remote side | |||
634 | meta["copyrev"] = hex(manifest1.get(cp, nullid)) |
|
636 | meta["copyrev"] = hex(manifest1.get(cp, nullid)) | |
635 | self.ui.debug(_(" %s: copy %s:%s\n") % |
|
637 | self.ui.debug(_(" %s: copy %s:%s\n") % | |
636 | (fn, cp, meta["copyrev"])) |
|
638 | (fn, cp, meta["copyrev"])) | |
@@ -644,7 +646,7 b' class localrepository(repo.repository):' | |||||
644 | fp2 = nullid |
|
646 | fp2 = nullid | |
645 |
|
647 | |||
646 | # is the file unmodified from the parent? report existing entry |
|
648 | # is the file unmodified from the parent? report existing entry | |
647 | if fp2 == nullid and not fl.cmp(fp1, t): |
|
649 | if fp2 == nullid and not fl.cmp(fp1, t) and not meta: | |
648 | return fp1 |
|
650 | return fp1 | |
649 |
|
651 | |||
650 | changelist.append(fn) |
|
652 | changelist.append(fn) | |
@@ -736,7 +738,8 b' class localrepository(repo.repository):' | |||||
736 | new[f] = self.filecommit(f, m1, m2, linkrev, trp, changed) |
|
738 | new[f] = self.filecommit(f, m1, m2, linkrev, trp, changed) | |
737 | new_exec = is_exec(f) |
|
739 | new_exec = is_exec(f) | |
738 | new_link = is_link(f) |
|
740 | new_link = is_link(f) | |
739 |
if not changed or changed[-1] != f |
|
741 | if ((not changed or changed[-1] != f) and | |
|
742 | m2.get(f) != new[f]): | |||
740 | # mention the file in the changelog if some |
|
743 | # mention the file in the changelog if some | |
741 | # flag changed, even if there was no content |
|
744 | # flag changed, even if there was no content | |
742 | # change. |
|
745 | # change. |
@@ -24,9 +24,11 b' hg merge --debug 1' | |||||
24 | echo a/* b/* |
|
24 | echo a/* b/* | |
25 | hg st -C |
|
25 | hg st -C | |
26 | hg ci -m "3 merge 2+1" -d "0 0" |
|
26 | hg ci -m "3 merge 2+1" -d "0 0" | |
|
27 | hg debugrename b/c | |||
27 |
|
28 | |||
28 | hg co -C 1 |
|
29 | hg co -C 1 | |
29 | hg merge --debug 2 |
|
30 | hg merge --debug 2 | |
30 | echo a/* b/* |
|
31 | echo a/* b/* | |
31 | hg st -C |
|
32 | hg st -C | |
32 | hg ci -m "4 merge 1+2" -d "0 0" |
|
33 | hg ci -m "4 merge 1+2" -d "0 0" | |
|
34 | hg debugrename b/c |
@@ -29,6 +29,7 b' A b/c' | |||||
29 | R a/a |
|
29 | R a/a | |
30 | R a/b |
|
30 | R a/b | |
31 | R a/c |
|
31 | R a/c | |
|
32 | b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 | |||
32 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
33 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
33 | resolving manifests |
|
34 | resolving manifests | |
34 | overwrite None partial False |
|
35 | overwrite None partial False | |
@@ -40,3 +41,4 b' 1 files updated, 0 files merged, 0 files' | |||||
40 | a/* b/a b/b b/c |
|
41 | a/* b/a b/b b/c | |
41 | A b/c |
|
42 | A b/c | |
42 | a/c |
|
43 | a/c | |
|
44 | b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 |
General Comments 0
You need to be logged in to leave comments.
Login now