У меня есть сервер VisualSVN, работающий в Windows 2008 R2 x64 с использованием базовой аутентификации.
Я хочу перейти на использование проверки подлинности Windows.
Однако некоторые настроенные имена пользователей не соответствуют именам пользователей домена.
Есть ли способ изменить псевдоним basic-auth-username на domain-username, чтобы, когда кто-то теперь совершает фиксацию с использованием domain-username, svn записывает его как свое старое имя пользователя basic-auth?
Или есть способ пролистать репозитории и найти / заменить имена пользователей с базовой аутентификацией в коммитах с именами пользователей с аутентификацией домена?
Или, наверное, не стоит беспокоиться?
Можно заменить имена пользователей в истории, но немного сложнее. Имя пользователя хранится в svn:author
свойство, связанное с каждой ревизией. svnadmin setrevprop
команда может изменить это свойство.
Вы можете сделать это вручную, но для этого требуется запускать эту команду для всех версий. Поэтому я рекомендую использовать следующие шаги, чтобы упростить эту работу.
Создайте командный файл chg_users.cmd.
@ECHO OFF
SET OLDUSER=oldusername
SET NEWUSERFILE=user.txt
SET REPO=C:\Repositories\test\
SET SVNADMIN="%VISUALSVN_SERVER%bin\svnadmin.exe"
SET SVNLOOK="%VISUALSVN_SERVER%bin\svnlook.exe"
REM Iterate over all revisions (svnlook history), get author of each revision (svnlook author),
REM replace author if necessary (svnadmin setrevprop)
FOR /F "delims=/" %%i IN ('%SVNLOOK% history %REPO% ^| FINDSTR ^[0-9][0-9]*') DO %SVNLOOK% author -r %%i %REPO% | FINDSTR %OLDUSER% && %SVNADMIN% setrevprop %REPO% -r %%i svn:author %NEWUSERFILE%
Установите старое имя пользователя с помощью переменной OLDUSER. Задайте путь к вашему репозиторию с помощью переменной REPO.