我转换了我们组的两个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这样做呢?我添加了--关键字关闭选项,但这并没有什么不同。
谢谢你的帮助!
发布于 2017-07-24 15:33:25
当您签出文件时,CVS会将关键字(如$Date$
)扩展为正确的值,而不是在签入文件时(如您可能猜到的那样)。此外,不同版本的CVS以不同的方式扩展日期。在CVS1.12之前,日期是使用斜杠扩展的,比如2007/06/25
。从CVS1.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$
)。总而言之,这将是相当棘手的配置,可能不值得努力。
https://stackoverflow.com/questions/45199649
复制相似问题