Exporting multiple branches (using marks to speed up things) may result in completely broken exports

Bug #1046768 reported by Alex Usov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Fast Import
New
Undecided
Unassigned

Bug Description

Hi,

I was trying to use fast-export/fast-import to do bi-directional bzr <-> git conversion, and struck on a really strange behaviour of bzr fast-export. What essentially happens is that it ends up loosing commits around merges.

Example scenario:
* there is a "master" repo in bzr
* we create a clone of it for internal bookkeeping, and export into git
* add a commit in git, and propagate it back to "master" bzr repo
* in bzr working clone create another commit, merge in "master" and push it
* exporting "master" repo now results in some weird handling of the marks file which effectively loses one of the commits

Attached script reproduces this scenario.
It results in the following histories:

> bzr log -n0 --short:
    3 Oleksandr Usov 2012-09-06 [merge]
      merged in new stuff from trunk

          1.1.1 Oleksandr Usov 2012-09-06
                commit in git

    2 Oleksandr Usov 2012-09-06
      commit in bzr

    1 Oleksandr Usov 2012-09-06
      initial commit

> git log --oneline
8fa2cb7 merged in new stuff from trunk
94153a8 commit in bzr
9778a73 initial commit

And the fast-export record which result in the commit being dropped:

commit refs/heads/master
mark :3
committer Oleksandr Usov <email address hidden> 1346926086 +0100
data 13
commit in bzr
from :1
M 644 inline file2
data 44
this
is
some
file
number 2
another new line

commit refs/heads/master
mark :4
committer Oleksandr Usov <email address hidden> 1346926087 +0100
data 30
merged in new stuff from trunk
from :3
merge :3
M 644 inline file1
data 36
this
is
some
file
number 1
new line

Tags: export
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.