Skip to content
Snippets Groups Projects
Commit 11e1e574 authored by Alexis S. L. Carvalho's avatar Alexis S. L. Carvalho
Browse files

convert: mercurial_source: also search for copies in modified files

There are some corner cases where we may have a copy in a file that
isn't in the added list:

- the result of a hg copy --after --force

- after a merge across a (local) rename
parent 2dbd750b
No related branches found
No related tags found
No related merge requests found
......@@ -187,5 +187,5 @@
m, a, r = self.repo.status(ctx.parents()[0].node(), ctx.node())[:3]
changes = [(name, rev) for name in m + a + r]
changes.sort()
return (changes, self.getcopies(ctx))
return (changes, self.getcopies(ctx, m + a))
......@@ -191,4 +191,3 @@
def getcopies(self, ctx):
added = self.repo.status(ctx.parents()[0].node(), ctx.node())[1]
def getcopies(self, ctx, files):
copies = {}
......@@ -194,5 +193,5 @@
copies = {}
for name in added:
for name in files:
try:
copies[name] = ctx.filectx(name).renamed()[0]
except TypeError:
......
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "hgext.convert=" >> $HGRCPATH
hg init orig
cd orig
echo foo > foo
echo bar > bar
hg ci -qAm 'add foo bar' -d '0 0'
echo >> foo
hg ci -m 'change foo'
hg up -qC 0
hg copy --after --force foo bar
hg copy foo baz
hg ci -m 'make bar and baz copies of foo' -d '1 0'
hg merge
hg ci -m 'merge local copy' -d '2 0'
hg up -C 1
hg merge 2
hg ci -m 'merge remote copy' -d '3 0'
cd ..
hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new
hg out ../orig
true
merging baz and foo
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
merging foo and baz
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
initializing destination new repository
scanning source...
sorting...
converting...
4 add foo bar
3 change foo
2 make bar and baz copies of foo
1 merge local copy
0 merge remote copy
comparing with ../orig
searching for changes
no changes found
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