代码之家  ›  专栏  ›  技术社区  ›  Oded

cvs2svn更改二进制文件

  •  0
  • Oded  · 技术社区  · 15 年前

    我正在使用cvssvn从 CVS SVN .

    转换完成后,我注意到二进制文件有问题。

    我正在使用自动道具文件,这非常有用。

    在转换之后,我从cvs中获取了该文件,并将其与svn中的相同文件进行了比较。 文件是二进制的。使用 WinMerge ,我看到文件之间有区别。

    有什么问题?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Tor Hovland    15 年前

    你在使用CVSNT吗?如果这样做,cvs2svn不理解您的文件是二进制的,因为cvs和cvsnt标记二进制文件的方式不同。编写一个转换它的程序已经足够简单了。我必须这么做。

    现在,如果您有一个在cvs中没有标记为binary的二进制文件,或者使用cvsnt语法标记该文件,并且该文件包含类似“$id”或“$date”的模式,那么subversion将在签出文件时替换这些模式。通常这意味着二进制文件会损坏。

    如何转换:如果文件包含“kopt b”;假设它是二进制的,尽管从技术上讲,文件在某些修订版中可能是二进制的,而在其他修订版中则不是二进制的。对于所有二进制文件,在文件顶部附近的“symbols”之前插入“expand@b@;”,因此头看起来如下所示:

    head    1.1;
    access;
    expand  @b@;
    symbols
    

    执行此操作时,请注意不要更改文件的其余部分,例如行尾。