Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: Export from bzr / Import to git results in a deleted file re-appearing

From: Andreas Schwab <hidden>
Date: 2016-06-15 22:54:15

Jeff King [off-list ref] writes:
On Thu, Jul 12, 2012 at 08:00:17PM +0200, Felix Natter wrote:
quoted
I am trying to move freeplane's repository (GPL-project) from bzr to
git, but when I do this:

$ mkdir freeplane-git1
$ cd freeplane-git1
$ git init .
$ bzr fast-export --export-marks=../marks.bzr ../trunk/ | git fast-import --export-marks=../marks.git
$ git checkout

then there are no errors, but the resulting working index is broken:
 freeplane-git1/freeplane_plugin_formula/src/org/freeplane/plugin/formula
 contains SpreadSheetUtils.java which belongs to package
 'org.freeplane.plugin.spreadsheet' and which is no longer in the bzr
 trunk that I imported!
If you run only the bzr half of your command and inspect the output, you
will see that the file in question is mentioned twice.  Once in a commit
on "refs/heads/master" that renames into it from another file:

  R freeplane_plugin_spreadsheet/src/org/freeplane/plugin/spreadsheet/SpreadSheetUtils.java
    freeplane_plugin_formula/src/org/freeplane/plugin/formula/SpreadSheetUtils.java
That same revision also removes it, but is uses the original name for
the deletion (the bzr revision actually renames the containing
directory).  That's probably what confuses git fast-import.

Here is a test case:

bzr init
mkdir a
bzr add a
touch a/b
bzr add a/b
bzr ci -m a
bzr mv a b
bzr rm b/b
bzr ci -m b
bzr fast-export .

The output contains these lines:

R a/b b/b
D a/b

Changing the second line to D b/b fixes the bug.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help