Передача SVN со старой датой/временем

Есть ли способ зафиксировать в репозитории SVN старое время/дату или как отредактировать фиксацию времени/даты?

У меня есть некоторые архивные источники, которые очень старые, прежде чем я начал использовать SVN, и теперь я хотел бы поместить их в SVN и, если возможно, сохранить их исходную дату, чтобы история SVN соответствовала реальной дате, файлы были отредактированы.

Манипулирование временем сервера SVN является очевидным вариантом, но его нельзя использовать здесь, так как сервер SVN вышел из-под контроля.

Ответ 1

В конце концов я сделал следующее:

  • установить сервер VisualSVN на моей рабочей станции
  • создать новый "локальный" репозиторий SVN
  • брать архивы один за другим, для каждого:
    • в рабочей копии удалите все, кроме файла .svn, чтобы убедиться, что удаленные файлы не остались
    • распаковать архив в рабочую копию
    • изменить системную дату на дату архива
    • добавить и удалить по мере необходимости и зафиксировать в локальном репозитории
  • после выполнения, используйте svnadmin dump репозиторий
  • на главном сервере SVN загрузите дамп с помощью svnadmin load

Вышеуказанные шаги мне кажутся более легкими, чем установка крюка pre-revprop-change. (Тот, который мы сейчас имеем, позволяет редактировать только сообщение журнала.)

Примечание. Вместо изменения системной даты также можно было бы отредактировать дату в файле дампа перед загрузкой.

Ответ 2

Дата и время находятся в "специальном" исправлении, svn:date. Вы можете изменить его так:

svn propedit svn:date --revprop -r 12345

или

svn propset svn:date --revprop -r 12345 2009-02-12T00:44:04.921324Z

Пересмотр (например, 12345 выше) также может быть HEAD, что означает последнюю версию.

Дата указана в формате ISO 8601.

Для репозитория вам понадобится установить pre-revprop-change (в каталоге hook в репозитории), чтобы разрешить svn:date для изменения. Шаблоны, которые снабжены репозиториями SVN, должны быть полезны.

Ответ 3

Каждая ревизия имеет свойство svn:date. Если у вас есть разрешение на изменение неверсированных свойств, вы можете изменить это значение.