Mercurial > hg > mercurial-source
changeset 8165:78658990c725
convert/bzr: make it work with filemaps (issue1631)
The bzr converter maintains a child -> parents mapping and drop entries
whenever a child is read. It does not work with filemaps, getchangedfiles() may
be called more than once when filtered files belong to merge revisions.
getchanges() still works that way but it is not clear whether a similar issue
can arise when interacting with merges.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 26 Apr 2009 11:35:53 +0200 |
parents | adce97d28389 |
children | 56719b1aa6f4 c8c231da59c3 |
files | hgext/convert/bzr.py tests/test-convert-bzr tests/test-convert-bzr.out |
diffstat | 3 files changed, 17 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/convert/bzr.py +++ b/hgext/convert/bzr.py @@ -123,9 +123,8 @@ def getchangedfiles(self, rev, i): self._modecache = {} curtree = self.sourcerepo.revision_tree(rev) - parentids = self._parentids.pop(rev) if i is not None: - parentid = parentids[i] + parentid = self._parentids[rev][i] else: # no parent id, get the empty revision parentid = revision.NULL_REVISION
--- a/tests/test-convert-bzr +++ b/tests/test-convert-bzr @@ -27,6 +27,12 @@ echo "% test --rev option" hg convert -r 1 source source-1-hg glog -R source-1-hg +echo "% test with filemap" +cat > filemap <<EOF +exclude a +EOF +hg convert --filemap filemap source source-filemap-hg +hg -R source-filemap-hg manifest -r tip cd .. echo % merge
--- a/tests/test-convert-bzr.out +++ b/tests/test-convert-bzr.out @@ -25,6 +25,16 @@ 0 Initial add: a, c, e o 0 "Initial add: a, c, e" files: a c e +% test with filemap +initializing destination source-filemap-hg repository +scanning source... +sorting... +converting... +1 Initial add: a, c, e +0 rename a into b, create a, rename c into d +b +d +f % merge initializing destination source-hg repository scanning source...