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."