Subversion 转换到 Bazaar

最近一直在用 [Bazaar] 作为版本控制工具,想把以前 [Subversion] 的一堆东西转过来,所以在它的[网站]上看文档找工具,上面工具列得挺全的,都好几个,可是试用下来,在 Windows 下基本上都没成功:

  • [bzr-fastimport]:这个是 Bazaar 的插件,把其他前端导出来的数据导入到 Bazaar 中,其中的数据格式用的是 [git-fast-import] 中所定义的流格式。它有很多前端,其中一个就是 Python 为 [Subversion] 写的。导出来的数据没什么问题,但导入的时候有几个问题:
    • Windows 本身的文件都是 CRLF 作为行结束符的,而 UNIX 上是 LF,通常把这种叫做 DOS 文件和 UNIX 文件。这个插件处理 DOS 文件有问题,会忽略一些 CR 字符,导致应该读的数据量大于读到的数据量。我不太懂 Python,只看到它是一行一行读取数据,还不清楚是 Python 本身的问题还是它程序本身的问题。
    • 处理二进制文件似乎有问题,比如 PNG 文件头中包含有 ^Z(ASCII 26),通常是作为文件结束符的,而出现在这里是不应该结束的,这样它就直接报文件结束错误。
  • 我刚往 Bazaar 的邮件列表上发了信,不知道作者什么时候能修正。

  • [svn2bzr]:是把使用 svnadmin dump 产生的 dump 文件导入到 Bazaar。还是没有成功,懒得一点一点跟了。
  • [bzr-svn]:支持 Bazaar 直接访问 Subversion 仓库,但似乎需要打补丁,可能还需要重新编译什么的,太麻烦,这个就没试。

然后就想换个方向,想先从 Subversion 转到 Mercurial,然后再转到 Bazaar,第一步就没成功,Mercurial [网站]上提到的一堆工具反正是没能成功。

问题解决

后来实在没法解决,就往 Bazaar 的邮件列表上发了 [bug report],然后 [Paul Moore] 指出是由于读文件的字符模式和二进制模式的问题,并且 [James Westby] 顺便把补丁也贴上了,我试了以后,发现不对,根本就解析不了,研究以后发现需要把命令所在行最后的回车给去掉才可以。然后讨论以后可以确定是 svn-fast-export 在输出的时候没有设置二进制模式,从而问题完全解决。[Ian Clatworthy] 说征得作者同意 svn-fast-export 可以包含在 bzr-fastimport 中了。

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • You can use BBCode tags in the text.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
  _  __          _        _   _____      _      _   _       
| |/ / _ __ | | __ (_) | ___| / \ | | | | ____
| ' / | '_ \ | |/ / | | | |_ / _ \ | |_| | |_ /
| . \ | | | | | < | | | _| / ___ \ | _ | / /
|_|\_\ |_| |_| |_|\_\ _/ | |_| /_/ \_\ |_| |_| /___|
|__/
Enter the code depicted in ASCII art style.