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$) в этих файлах. В общем, это было бы довольно сложно настроить и, вероятно, не стоит усилий.

Другие вопросы по тегам