Могу ли я вернуться и отредактировать комментарии к проверке SVN?

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

Ответ 1

Фиксированные сообщения "неверуемые свойства" и могут быть изменены с помощью 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 hook script.

Здесь типичный script, из /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 и позволяет редактировать с помощью exit 0, любое другое изменение свойства версии отклоняется с помощью выхода 1. См. ответ patmortech для эквивалента Windows.

Ответ 2

Чтобы включить модификацию свойства ревизии, вам необходимо создать привязку pre-revprop-change script. Здесь можно прочитать: http://svnbook.red-bean.com/en/1.0/ch05s02.html (найдите раздел "Сценарии Hook" ).

Для Windows здесь ссылка на примерный командный файл, который разрешает только изменения в сообщении журнала (а не другие свойства): http://ayria.livejournal.com/33438.html, В основном скопируйте приведенный ниже код в текстовый файл и назовите его pre-revprop-change.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

Ответ 3

Способ быстрого изменения сообщения журнала без необходимости создания привязки pre-revprop-change script заключается в использовании следующего svnadmin команда:

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

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

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

Ответ 4

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

Ответ 5

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

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

Спасибо!

Ответ 6

svn propset svn:log --revprop -r <REVISION> "My corrected log message" <PATH-TO-REPOSITORY> 

Ответ 7

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

выберите команду → Показать историю, затем щелкните правой кнопкой мыши версию, комментарии которой вы хотите изменить, затем выберите "Установить свойства комманды", и вы можете изменить комментарий и/или автора.