Как изменить автора по умолчанию для доступа к локальному репозиторию SVN?
-
09-06-2019 - |
Вопрос
Я использую TortoiseSVN для доступа к локальному репозиторию на основе файлов.Во всех моих коммитах автором является мое имя для входа в Windows.Можно ли использовать другое имя?
Я знаю, как изменить автора после фиксации, но как изменить до?Установка apache/svnserver невозможна.
Решение
Да, это возможно.
ЧерепахаSVN и СВН Клиент командной строки имеет одно и то же расположение настроек в папке вашего профиля.Таким образом, вы можете просто проверить одну версию, используя svn.exe:
$ svn co --username different_user_name file:///C:/path/to/your/repo
...и Subversion с радостью заменит связанное имя пользователя для этого репозитория.Новые коммиты из TortoiseSVN всегда будут использовать это имя пользователя, независимо от того, с помощью какой программы вы делаете новые извлечения.
Процедура должна работать с TortoiseSVN 1.5.5.Если это не так, попробуйте очистить кэш аутентификации svn (%APPDATA%\Subversion\auth\svn.username
) первый.
Другие советы
Еще один возможный обходной путь (но я НЕТ пропагандируя это) заключается в использовании сценария перехвата на стороне клиента перед фиксацией, чтобы изменить имя пользователя.
Скрипты-перехватчики обсуждаются в книге Subversion, а локальные перехватчики обсуждаются в разделе «Скрипты-перехватчики на стороне клиента» в справке TortoiseSVN.
Насколько мне известно, TortoiseSVN не предлагает никакого способа сделать это.
Вероятно, это не является большой проблемой, поскольку доступ на основе файлов непрактичен для многопользовательских сценариев, а для однопользовательского режима имя автора имеет меньшее значение.
Возможным обходным решением было бы создать другое имя пользователя Windows с нужным именем автора и подключиться к нему.
Я никогда не размещал svn на машине с Windows, так что это попытка в темноте.Возможно, вы сможете создать нового пользователя Windows и указывать этого пользователя при просмотре, извлечении, фиксации и т. д.Допустим, вы хотите внести изменения как msznajder
.Создайте пользователя с этим именем в Windows, затем попробуйте просмотреть репозиторий с помощью репо-браузера TortoiseSVN и укажите имя пользователя в URL-адресе — что-то вроде file:///msznajder@localhost/some/file/path
.
Я предлагаю установить хук post-commit-hook (в папке хуков вашего репозитория — просто скопируйте post-commit-hook.tmpl в post-commit-hook.bat и очистите его [1]
svn propset svn:author --revprop -r HEAD <author> file:///<path-to-repo>
[2]
[1] при условии, что установлен SlikSvn или аналогичный, т.е.возможен доступ к svn из командной строки)
[2] (или .sh, если в Linux, с преамбулой #!/bin/bash) с тем же содержимым