我们使用bazaar-vcs已经有好几年了,但是由于一些长期存在的烦恼而停止了bzr的开发,因此决定迁移到git。
在使用集市时,我们广泛使用了集市(http://doc.bazaar.canonical.com/bzr.dev/en/user-reference/bugs-help.html)的“错误跟踪器元数据”功能。因此,每个错误修复提交都包含相应的mantis-bug-Id的ID,以便我们在source和mantis之间建立链接。
我们的提交消息不包含mantis-id,我们只使用了“元数据功能”:
对我们来说,放弃这些信息非常重要,因此我需要一种解决方案来以某种形式迁移这些错误链接。
我已经尝试使用快速导入/快速导出命令将我们的bazaar存储库导出/导入到git中:
bzr fast-export --no-plain --rewrite-tag-names / var / www / source_branch / | git fast-import
不幸的是我收到以下错误:
fatal: This version of fast-import does not support feature commit-properties.
但是,如果我使用选项 - plain 而不是 - no-plain 导入有效,但我们会丢失与错误的所有连接。
是否有一些解决方案/解决方法可以从bzr迁移到git而不会丢失对我们来说非常重要的所有这些错误链接?
[编辑] :我刚刚分析了快速导入/快速导出文件格式,这非常简单。应该可以编写一些脚本来修改文件并将(属性错误...)行移动到相应的提交消息行中。但是,如果有一个开箱即用的解决方案,我很乐意听到它:)
答案 0 :(得分:2)
Git Fast-import不支持元数据属性,因此无法仅使用现有工具迁移这些信息。
由于没有响应而丢失所有这些bug-id对我们来说都没有选择,我写了一个快速导出的流重写器,它能够以git理解的格式重写流,但是我们所有的bug id信息包括在内。
C#重写器通过执行以下步骤来工作:
关于此重写器的更多信息+代码可在此处找到:http://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/
答案 1 :(得分:1)
我有类似的需求。我试过David的重写器,但它产生的输出git import会失败。我怀疑在提交中重命名某些文件是一个微妙的错误。
我意识到将'bzr fast-export --plain'修改为我想做的事情可能更容易。
我在LP: #1606973提交了上游(bzr快速导出)错误并附加了一个对我有用的解决方案。修改fastimport / exporter.py后,我刚刚做了:
bzr fast-export --git-branch=master --plain | git fast-import