cvs2svn изменяет строку 'date' в исходных кодах
Я конвертировал два репозитория CVS нашей группы и загрузил их в SVN. Но я обнаружил, что некоторые файлы изменены!!!
например, static char rcsid[] = "$Revision: 1.1.1.1 $$ Дата: 2007/06/25 16:56:59 $";
был изменен на статический char rcsid [] = "$ Revision: 1.1.1.1 $$ Дата: 2007-06-25 16:56:59 $";
Это реальные строки, а не комментарии. (некоторые другие измененные строки есть в комментариях, что нормально). Так почему бы cvs2svn сделал бы это? и как предотвратить это от cvs2svn??? Я добавил опции --keywords-off, но это не имело значения.
Спасибо за любую помощь!
1 ответ
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$
) в этих файлах. В общем, это было бы довольно сложно настроить и, вероятно, не стоит усилий.