Mercurial > hg-stable
changeset 5249:0d28d4e5fe1f
Merge with crew-stable.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 27 Aug 2007 14:55:33 -0300 |
parents | 5517aa5aafb0 (current diff) dee573ba79f1 (diff) |
children | 585471802a01 |
files | mercurial/localrepo.py |
diffstat | 5 files changed, 63 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon Aug 27 02:21:58 2007 -0300 +++ b/mercurial/localrepo.py Mon Aug 27 14:55:33 2007 -0300 @@ -630,7 +630,9 @@ 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 @@ 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 @@ 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.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-changelog-exec Mon Aug 27 14:55:33 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:55:33 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
--- a/tests/test-rename-dir-merge Mon Aug 27 02:21:58 2007 -0300 +++ b/tests/test-rename-dir-merge Mon Aug 27 14:55:33 2007 -0300 @@ -24,9 +24,11 @@ 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
--- a/tests/test-rename-dir-merge.out Mon Aug 27 02:21:58 2007 -0300 +++ b/tests/test-rename-dir-merge.out Mon Aug 27 14:55:33 2007 -0300 @@ -29,6 +29,7 @@ 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 @@ a/* b/a b/b b/c A b/c a/c +b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88