É possível substituir nomes de usuários no histórico, mas um pouco complicado. O nome do usuário é armazenado na propriedade svn:author
associada a cada revisão. O comando svnadmin setrevprop
pode alterar essa propriedade.
Você pode fazer isso manualmente, mas é necessário executar este comando para toda revisão. Por isso, recomendo usar as etapas a seguir para simplificar esse trabalho.
- Crie uma cópia de backup do repositório.
-
Crie o arquivo em lote 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%
-
Defina o nome de usuário antigo usando a variável OLDUSER. Configure o caminho para o seu repositório usando a variável REPO.
- Crie o arquivo de texto user.txt com o novo nome de usuário. Por favor, note que este arquivo deve conter a única linha com o nome de usuário.
- Execute chg_users.cmd.
- Verifique o resultado usando o comando svn log ou seu equivalente no TortoiseSVN.
- Repita as etapas de 2 a 6 para outro nome de usuário.