SVN коммит со старой датой / временем - PullRequest
10 голосов
/ 20 января 2010

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

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

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

Ответы [ 3 ]

15 голосов
/ 21 января 2010

Дата и время указаны в «специальном» свойстве ревизии, 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, должны быть полезны.

2 голосов
/ 20 января 2010

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

1 голос
/ 21 января 2010

То, что я в итоге сделал, было:

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

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

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

...