# HG changeset patch # User Kevin Bullock # Date 2013-03-01 16:05:37 # Node ID 70e2a22fd66eb0265b229a8a588cf7a7828e290b # Parent a07be895373394be66ba38b1ff111e26aca03ac8 # Parent 605c7c94fd70dcdb2ed695e8420e6ddae10a3a5b merge with stable diff --git a/.hgsigs b/.hgsigs --- a/.hgsigs +++ b/.hgsigs @@ -66,3 +66,4 @@ a4765077b65e6ae29ba42bab7834717b5072d5ba f5fbe15ca7449f2c9a3cf817c86d0ae68b307214 0 iD8DBQBQ+yuYywK+sNU5EO8RAm9JAJoD/UciWvpGeKBcpGtZJBFJVcL/HACghDXSgQ+xQDjB+6uGrdgAQsRR1Lg= a6088c05e43a8aee0472ca3a4f6f8d7dd914ebbf 0 iD8DBQBRDDROywK+sNU5EO8RAh75AJ9uJCGoCWnP0Lv/+XuYs4hvUl+sAgCcD36QgAnuw8IQXrvv684BAXAnHcA= 7511d4df752e61fe7ae4f3682e0a0008573b0402 0 iD8DBQBRFYaoywK+sNU5EO8RAuErAJoDyhXn+lptU3+AevVdwAIeNFyR2gCdHzPHyWd+JDeWCUR+pSOBi8O2ppM= +5b7175377babacce80a6c1e12366d8032a6d4340 0 iD8DBQBRMCYgywK+sNU5EO8RAq1/AKCWKlt9ysibyQgYwoxxIOZv5J8rpwCcDSHQaaf1fFZUTnQsOePwcM2Y/Sg= diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -79,3 +79,4 @@ a4765077b65e6ae29ba42bab7834717b5072d5ba f5fbe15ca7449f2c9a3cf817c86d0ae68b307214 2.5-rc a6088c05e43a8aee0472ca3a4f6f8d7dd914ebbf 2.5 7511d4df752e61fe7ae4f3682e0a0008573b0402 2.5.1 +5b7175377babacce80a6c1e12366d8032a6d4340 2.5.2 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -705,14 +705,18 @@ class localrepository(object): def setparents(self, p1, p2=nullid): copies = self.dirstate.setparents(p1, p2) + pctx = self[p1] if copies: # Adjust copy records, the dirstate cannot do it, it # requires access to parents manifests. Preserve them # only for entries added to first parent. - pctx = self[p1] for f in copies: if f not in pctx and copies[f] in pctx: self.dirstate.copy(copies[f], f) + if p2 == nullid: + for f, s in sorted(self.dirstate.copies().items()): + if f not in pctx and s not in pctx: + self.dirstate.copy(None, f) def filectx(self, path, changeid=None, fileid=None): """changeid can be a changeset revision, node, or tag. diff --git a/tests/test-issue1175.t b/tests/test-issue1175.t --- a/tests/test-issue1175.t +++ b/tests/test-issue1175.t @@ -31,7 +31,7 @@ http://mercurial.selenic.com/bts/issue11 b b: searching for copy revision for a b: copy a:b80de5d138758541c5f05265ad144ab9fa86d1db - committed changeset 5:89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b + committed changeset 5:732aafbecb501a198b3cc9323ad3899ff04ccf95 $ hg verify checking changesets @@ -45,8 +45,8 @@ http://mercurial.selenic.com/bts/issue11 # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b - # Parent 7fc86ba705e717a721dbc361bf8c9bc05a18ca2f + # Node ID 732aafbecb501a198b3cc9323ad3899ff04ccf95 + # Parent 1d1625283f71954f21d14c3d44d0ad3c019c597f 5 diff --git a/b b/b diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t --- a/tests/test-rebase-rename.t +++ b/tests/test-rebase-rename.t @@ -12,20 +12,24 @@ $ hg init a $ cd a + $ mkdir d $ echo a > a $ hg ci -Am A adding a - $ echo b > b + $ echo b > d/b $ hg ci -Am B - adding b + adding d/b - $ hg mv b b-renamed + $ hg mv d d-renamed + moving d/b to d-renamed/b $ hg ci -m 'rename B' $ hg up -q -C 1 $ hg mv a a-renamed + $ echo x > d/x + $ hg add d/x $ hg ci -m 'rename A' created new head @@ -47,6 +51,12 @@ Rename is tracked: diff --git a/a b/a-renamed rename from a rename to a-renamed + diff --git a/d/x b/d/x + new file mode 100644 + --- /dev/null + +++ b/d/x + @@ -0,0 +1,1 @@ + +x Rebase the revision containing the rename: @@ -70,23 +80,29 @@ Rename is not lost: diff --git a/a b/a-renamed rename from a rename to a-renamed + diff --git a/d-renamed/x b/d-renamed/x + new file mode 100644 + --- /dev/null + +++ b/d-renamed/x + @@ -0,0 +1,1 @@ + +x Rebased revision does not contain information about b (issue3739) $ hg log -r 3 --debug - changeset: 3:3b905b1064f14ace3ad02353b79dd42d32981655 + changeset: 3:032a9b75e83bff1dcfb6cbfa4ef50a704bf1b569 tag: tip phase: draft - parent: 2:920a371a5635af23a26a011ca346cecd1cfcb942 + parent: 2:220d0626d185f372d9d8f69d9c73b0811d7725f7 parent: -1:0000000000000000000000000000000000000000 - manifest: 3:c4a62b2b64593c8fe0523d4c1ba2e243a8bd4dce + manifest: 3:035d66b27a1b06b2d12b46d41a39adb7a200c370 user: test date: Thu Jan 01 00:00:00 1970 +0000 - files+: a-renamed + files+: a-renamed d-renamed/x files-: a extra: branch=default - extra: rebase_source=89af05cb38a281f891c6f5581dd027092da29166 + extra: rebase_source=73a3ee40125d6f0f347082e5831ceccb3f005f8a description: rename A