Migrating a Bazaar repo to Git: path not in branch 错误

问题描述 投票:0回答:1

我正在尝试将this Bazaar repo 转换为 Git.

bzr branch lp:onboard
cd onboard
git init
bzr fast-export --plain . | git fast-import

但是我得到这个错误:

22:10:43 Calculating the revisions to include ...
22:10:43 Starting export of 2952 revisions ...
22:10:43 1000/2952 commits exported at 448681/minute 
...
22:10:43 1000/2952 commits exported at 239415/minute 
fatal: Path onboard/copying not in branch
fast-import: dumping crash report to .git/fast_import_crash_3847
brz: broken pipe

fast_import_crash_3847

尝试过

bzr
Breezy
,两种不同的操作系统(Arch Linux 和 Ubuntu)。

git bazaar git-fast-import
1个回答
1
投票

这是

fast-export
bzr
功能中的错误。

在修订版 1 中,添加了目录

python-virtkey-0.3/
sok-0.23/
,其中包括文件
sok-0.23/copying
.
在修订版 2 中,
python-virtkey-0.3/
更名为
python-virtkey/
sok-0.23/
onboard/
,因此
sok-0.23/copying
onboard/copying
.
在修订版 56 中,
onboard/copying
被重命名为
COPYING
.

问题是,

fast-export
仅针对修订版 2 发出此消息:

commit refs/heads/master
mark :2
committer Henrik Nilsen Omma <[email protected]> 1155815101 +0100
data 18
rename and cleanup
from :1
D python-virtkey_0.3.dsc
D python-virtkey_0.3_i386.changes
D sok_0.23.dsc
D sok_0.23_i386.changes

它没有迭代重命名的目录并为其中的每个文件发出重命名。

要解决该问题,您需要在存储库历史记录中找到所有此类目录重命名并相应地修复快速输入流。如果这样做,请注意快速导入格式也包含二进制数据,因此您可能无法在不破坏二进制文件的情况下使用文本编辑器执行此操作。

如果您检查

bzr log -v | grep '/ =>'
,您会看到有 14 个目录重命名,您需要手动修复所有这些重命名以解决该问题。

即使您没有收到错误消息,如果不修复它,结果也可能是错误的,因为重命名没有完成,如果文件在重命名后会被编辑,第一次提交实际上会创建它,而旧文件仍然存在等等。

所以最好的方法可能是报告错误(如果尚未完成)并等待适当的修复,然后仔细调查转换结果以确保没有更多此类问题可能不会导致失败但只是在错误的结果。

bug应该是这个:https://bugs.launchpad.net/brz/+bug/1890216
修复已经可用:https://code.launchpad.net/~cjwatson/brz/fastimport-fix-directory-renames/+merge/410767
自 1.5 年以来,但似乎没有人愿意整合它。

© www.soinside.com 2019 - 2024. All rights reserved.