Могу ли я вернуться и отредактировать комментарии для регистрации SVN? - PullRequest
58 голосов
/ 28 марта 2009

Я добавил ошибку в комментарий в SVN. Могу ли я отредактировать это после регистрации?

Ответы [ 7 ]

65 голосов
/ 28 марта 2009

Сообщения коммита имеют значение «неверсионные свойства» и могут быть изменены с помощью команды svn propset , например

$ svn propset --revprop -r 25 svn:log "Journaled about trip to New York."
property 'svn:log' set on repository revision '25'

Это настройка свойства ревизии с именем "svn: log" для ревизии 25

Настройка Subversion для разрешения изменения свойств ревизии

Поскольку они не версионные, установка Subversion по умолчанию не позволит вам изменить эти свойства, если вы не предоставите pre-revprop-change скрипт подключения.

Вот типичный скрипт из / var / lib / svn / hooks / pre-revprop-change в моей системе:

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then 
  echo "$1 $2 $3 $4 $5" >> /var/lib/svn/logchanges.log
  exit 0; 
fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

Этот журнал регистрирует изменения в свойствах редакции svn: log и позволяет редактировать с помощью выхода 0, любое другое изменение свойства редакции отклоняется с помощью выхода 1. См. Ответ patmortech для эквивалента Windows.

55 голосов
/ 28 марта 2009

Чтобы включить модификацию свойства ревизии, вам нужно создать скрипт ловушки pre-revprop-change. Можете прочитать об этом здесь: http://svnbook.red -bean.com / ru / 1.0 / ch05s02.html (см. Раздел «Сценарии хуков»).

Для Windows, вот ссылка на пример командного файла, который позволяет вносить изменения только в сообщение журнала (без других свойств): http://ayria.livejournal.com/33438.html. В основном скопируйте приведенный ниже код в текстовый файл и назовите его pre-revprop- Измените файл .bat и сохраните его в подкаталоге / hooks вашего репозитория.

@ECHO OFF
:: Set all parameters. Even though most are not used, in case you want to add
:: changes that allow, for example, editing of the author or addition of log messages.
set repository=%1
set revision=%2
set userName=%3
set propertyName=%4
set action=%5

:: Only allow the log message to be changed, but not author, etc.
if /I not "%propertyName%" == "svn:log" goto ERROR_PROPNAME

:: Only allow modification of a log message, not addition or deletion.
if /I not "%action%" == "M" goto ERROR_ACTION

:: Make sure that the new svn:log message is not empty.
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
set bIsEmpty=false
)
if "%bIsEmpty%" == "true" goto ERROR_EMPTY

goto :eof

:ERROR_EMPTY
echo Empty svn:log messages are not allowed. >&2
goto ERROR_EXIT

:ERROR_PROPNAME
echo Only changes to svn:log messages are allowed. >&2
goto ERROR_EXIT

:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_EXIT
exit /b 1
23 голосов
/ 19 апреля 2009

Чтобы сделать быстрое изменение сообщения журнала без необходимости создания сценария перехвата pre-revprop-change, используйте следующую команду svnadmin :

svnadmin setlog --bypass-hooks REPOS_PATH -r N FILE

где REPOS_PATH - это путь к хранилищу на сервере (например, / srv / svn / repository), а N - это номер редакции (например, 25), а FILE - текстовый файл, содержащий правильную запись в журнале фиксации.

Две вещи: Это требует доступа файловой системы к файлам репозитория, но также и создание сценария перехвата pre-revprop-change ... и, во-вторых, эта команда будет обходить любые скрипты перехвата, которые могут быть на месте, поэтому используйте их осторожно ...

9 голосов
/ 30 марта 2009

Использование Tortoise SVN сделает это очень легко для вас. Просто откройте окно сообщений журнала, щелкните правой кнопкой мыши журнал изменений, который вы хотите изменить, и выберите «Изменить журнал» в контекстном меню.

6 голосов
/ 16 января 2015

В SVN Tortoise вы можете выполнить следующие шаги.
1. Перейдите в браузер репозитория.
2. Щелкните правой кнопкой мыши на папке, с которой вы хотите работать.
3. Нажмите Показать журнал.
4. В списке редакций выберите и щелкните правой кнопкой мыши нужную редакцию.
5. Нажмите Редактировать сообщение журнала.

Теперь вы можете редактировать свои комментарии в редакции svn checkin.

Спасибо!

4 голосов
/ 16 февраля 2010

В Eclipse (или Rational Application Developer) с использованием Subclipse:

выберите Команда -> Показать историю, затем щелкните правой кнопкой мыши ревизию, комментарии которой вы хотите изменить, затем выберите «Установить свойства фиксации», и вы сможете изменить комментарий и / или автора.

4 голосов
/ 28 марта 2009
svn propset svn:log --revprop -r <REVISION> "My corrected log message" <PATH-TO-REPOSITORY> 
...