是否有可能得到svnauthentication与Windows / sspi,但与用户名别名?

我有一个使用基本身份validation在Windows 2008 R2 x64上运行的VisualSVN服务器。

我想升级到使用Windows身份validation。

但是,一些设置的用户名与域用户名不匹配。

有没有办法将basic-auth-username别名为domain-username,所以现在有人用domain-username提交时,svn会把它logging为旧的basic-auth用户名?

或者是有没有办法旋转存储库,并find/取代basic-auth用户名提交到域authentication用户名?

或者这可能是不值得的麻烦?

有可能取代历史上的用户名,但有些复杂。 用户名存储在与每个版本相关的svn:author属性中。 svnadmin setrevprop命令可以改变这个属性。

您可以手动执行,但是需要对所有修订运行此命令。 所以我build议使用以下步骤来简化这项工作。

  1. 创build存储库的备份副本。
  2. 创buildbatch filechg_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% 
  3. 使用OLDUSERvariables设置旧的用户名。 使用REPOvariables设置存储库的path。

  4. 用新的用户名创build文本文件user.txt。 请注意这个文件必须包含用户名的唯一行。
  5. 运行chg_users.cmd。
  6. 使用svn log命令或与其等价的TortoiseSVN检查结果。
  7. 对另一个用户名重复步骤2-6。