我转换了我们小组的两个CVS仓库并将它们加载到SVN中。但是我发现有些文件已更改!!
例如 静态字符 rcsid[] = "$Revision: 1.1.1.1 $$Date: 2007/06/25 16:56:59 $";
已更改为 静态字符 rcsid[] = "$Revision: 1.1.1.1 $$Date: 2007-06-25 16:56:59 $";
这些是实际的字符串,而不是注释。(其他一些更改的字符串在注释中,这没关系(。 那么为什么cvs2svn会这样做呢?以及如何防止 CVS2SVN 这样做??? 我添加了--关键字关闭选项,但这并没有区别。
感谢您的任何帮助!
CVS 会在您签出文件时将关键字(如$Date$
(扩展为正确的值,而不是(如您可能猜到的那样(签入文件时。此外,不同版本的 CVS 以不同的样式扩展日期。在 CVS 1.12 之前,日期是使用斜杠扩展的,如2007/06/25
。从 CVS 1.12 开始,日期已使用破折号进行扩展,例如2007-06-25
。
当你从 Subversion 中签出文件时,你看到的日期格式是 Subversion 关键字扩展的结果。AFAIK Subversion 总是以新样式扩展日期,并带有破折号。所以字符串看起来不同的原因是 Subversion 使用了不同的日期扩展样式,而不是因为cvs2svn
所做的任何事情。
当您指定--keywords-off
时,cvs2svn
使关键字保持像在 CVS 中一样展开,即它们在签入时的形式。通常,这意味着它们采用上次签出文件时的格式,即值反映文件的先前修订版。这很少有用。
以预期格式获取日期字符串的唯一方法是cvs2svn
展开日期字符串本身并关闭SVN关键字扩展。另外,您必须配置cvs2svn
以使用"旧日期格式"进行扩展,可以通过调用_KeywordExpander.use_old_date_format()
(或通过编辑文件cvs2svn_lib/keyword_expander.py
(来设置。但是,大概,你会想在转换后重新打开关键字扩展,以便后续的 Subversion 修订版也扩展其关键字。因此,转换后,您必须在任何包含关键字的文件上设置svn:keywords
属性,并且您还必须手动重新折叠这些文件中的关键字(例如,编辑$Date: 2007/06/25 16:56:59 $
回到$Date$
(。总而言之,这将非常棘手地配置,并且可能不值得付出努力。