Skip to content
Snippets Groups Projects
Commit 8a864844 authored by Gábor Stefanik's avatar Gábor Stefanik
Browse files

checkcopies: add a sanity check against false-positive copies

When grafting a copy backwards through a rename, a copy is wrongly detected,
which causes the graft to be applied inappropriately, in a destructive way.
Make sure that the old file name really exists in the common ancestor,
and bail out if it doesn't.

This fixes the aggravated case of bug 5343, although the basic issue
(failure to duplicate the copy information) still occurs.
parent 3e86261b
No related branches found
No related tags found
No related merge requests found
......@@ -543,7 +543,8 @@
# unrelated to the droids we are looking for.
cr = _related(oc, c2, base.rev())
if cr and (of == f or of == c2.path()): # non-divergent
data['copy'][f] = of
if of in mb:
data['copy'][f] = of
return
if of in mb:
......
......@@ -427,8 +427,8 @@
$ hg graft 3 --log -u foo
grafting 3:4c60f11aa304 "3"
warning: can't find ancestor for 'c' copied from 'b'!
$ hg log --template '{rev} {parents} {desc}\n' -r tip
14 1:5d205f8b35b6 3
$ hg log --template '{rev}:{node|short} {parents} {desc}\n' -r tip
14:0c921c65ef1e 1:5d205f8b35b6 3
(grafted from 4c60f11aa304a54ae1c199feb94e7fc771e51ed8)
Resolve conflicted graft
......@@ -620,7 +620,7 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: 2
changeset: 14:f64defefacee
changeset: 14:0c921c65ef1e
parent: 1:5d205f8b35b6
user: foo
date: Thu Jan 01 00:00:00 1970 +0000
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment