пятница, 11 марта 2011 г.

Меняем сообщения коммитов в SVN и Trac

Случилась такая ситуация. Закомиттил я изменение и только потом вспомнил, что в сообщении коммита неплохо было бы указать, что оно относится к такому-то тикету. Вобщем, понадобилось изменить сообщение коммита.
Недолго гуглив пришел вот к такому непыльному решению:

1. Залогиниться на комп, хранящий репозиторий
2. Выполнить sudo rm -rf / Создать где-нибудь в темпе файлик с нужным сообщением для коммита:
sudo vim /tmp/new_log
3. Выполнить магическую команду:
sudo svnadmin setlog REPO_PATH -r N /tmp/new_log  --bypass-hooks
где REPO_PATH - путь к репозиторию, N - номер ревизии, чьё сообщение меняем

Теперь в репозитории красуется нужное нам название для N-й ревизии.
Однако трак не знает о нашем изменении и продолжает показывать старое сообщение. Непорядок!

4. Говорим траку перестать тупить и показать новое сообщение
sudo trac-admin TRAC_PATH resync N
где N - всё тот же номер ревизии, TRAC_PATH - путь к трак-проекту. Можно и без номера вызвать команду, тогда произойдет полная синхронизация со всеми ревизиями. Оно вам надо?
Проделать все без захода на сам сервер (без 1го пункта), удаленно нельзя, потому как 3 и 4 пункты выполняются для локальных путей. Если трак и репозиторий на отдельных компах, то надо зайти на оба. А кто сказал что будет легко?

Комментариев нет:

Отправить комментарий