Изменить ретроспективное сообщение SVN?

Я хотел бы переписать большое количество сообщений о передаче SVN в другую структуру, например. префикс категории. From:

"foo" now accepts "bar" format for connection string.

Я хочу

core - database - "foo" now accepts "bar" format for connection string.

Есть ли простой способ сделать это, который не включает сброс всего репозитория с помощью svndumpfilter?

Я работаю с TortoiseSVN на стороне клиента и VisualSVN на сервере. (VisualSVN является оберткой вокруг классического svn, с которым я могу поговорить также через командную строку.)

Ответ 1

Да, сообщения фиксации могут быть изменены. Они реализованы как свойства для ревизий, аналогичные обычным свойствам файла.

В окне журнала TortoiseSVN вы можете щелкнуть правой кнопкой мыши фиксацию и выбрать "Редактировать сообщение журнала".

Ответ 2

Вы можете, конечно, изменить лог-сообщения задним числом, в в ЧаВо. Я не уверен, как работает интерфейс командной строки для VisualSVN, но для ванильной команды svn будет

svn propset -r N --revprop svn:log "new log message" URL

Если вы хотите сделать это для всех изменений без сброса репозитория и повторной загрузки, вы можете script эту команду работать над списком всех изменений. Потребуется некоторое время, чтобы сделать это, в зависимости от размера вашего репозитория, но в принципе нет причин, по которым вы не можете этого сделать, и это не связано с дампом и перезагрузкой.

Кроме того, у vanilla SVN есть команда svnlook, которая является своего рода административным инструментом, который работает непосредственно с файлами репозитория. Этот инструмент не понимает URL (у вас должен быть доступ к файловому уровню в репозиторий), но он намного быстрее. Синтаксис немного отличается, но вы можете изменять свойства таким же образом, используя этот инструмент.

Ответ 3

Да, вы можете, но сначала вам нужно включить его в репозитории.

В репозитории в каталоге hooks находится файл pre-revprop-change.tmpl. Он получил пару страниц комментариев о том, что он делает, и настраивается только для внесения изменений в свойства журнала. Чтобы включить его, переименуйте файл в pre-revprop-change и сделайте его исполняемым (я предполагаю, что Subversion, размещенная под POSIX, если вы используете Windows для размещения, вы можете найти это сообщение полезно).

Как только репозиторий позволяет это сделать, вы можете использовать Tortoise для изменения сообщения журнала для фиксации из контекстного меню фиксации или использовать командную строку.

Ответ 5

svn propedit -r N --revprop svn:log URL

URL выше необязательно, если вы уже находитесь в рабочем каталоге. Затем появится редактор, чтобы сообщение можно было изменить.

Ответ 6

Только что попал на этот пост с точной проблемой, используя Turtor SVN для клиента и VisualSVN на сервере Windows.

Если у вас возникло "сообщение с запросом DAV, посмотрите ответ Andrew Aylett и перейдите к редактированию" pre-revprop-change.tmpl "в подкаталоге подкаталогов репозитория.

Как только это будет сделано, попадание "edit log message" в контекстное меню должно, наконец, работать!