SVN更改用户名

时间:2011-10-06 08:08:18

标签: authentication svn credentials

我找到了很多关于如何更改特定修订版用户名等的示例。

但我需要的是: 我使用了同事的身份验证凭据进行了结帐,并且需要将其更改为我的凭据以供将来提交。

由于已经进行了许多更改,我不能只使用我的凭据结帐......

有谁熟悉这个?

12 个答案:

答案 0 :(得分:72)

您可以使用

更改用户
  • Subversion 1.6及更早版本:

    svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
    
  • Subversion 1.7及更高版本:

    svn relocate protocol://currentUser@server/path protocol://newUser@server/path
    

要了解protocol://currentUser@server/path是什么,请运行

svn info

在您的工作副本中。

答案 1 :(得分:60)

最简单的方法是在下次结帐或提交时使用--username选项。例如:

svn commit --username newUser

svn co --username newUser

然后它将被缓存,并将用作将来命令的默认用户名。

另见: In Subversion can I be a user other than my login name?

答案 2 :(得分:52)

我遇到了完全相同的问题,并在Where does SVN client store user authentication data?中找到了解决方案:

  1. cd~/.subversion/auth/
  2. 执行fgrep -l <yourworkmatesusernameORtheserverurl> */*
  3. 删除找到的文件。
  4. 存储库中的下一个操作将再次询问您的用户名/密码信息。
  5. (对于Windows,步骤类似; auth目录位于%APPDATA%\Subversion\)。

    请注意,这仅适用于SVN访问方案,其中用户名是服务器登录的一部分,因此对于使用file://访问的存储库没有用处。

答案 3 :(得分:10)

&LT;&LT;这很简单。你应该执行

svn up --username newUserName

就是这样。 &GT;&GT;

完美运行,只是一个提示:它可以在任何svn命令上完成,而不仅仅是更新。

答案 4 :(得分:4)

如果您的协议是http并且您使用的是Subversion 1.7,则可以通过在任何命令上使用global --username选项随时切换用户。

当Ingo的方法对我不起作用时,我发现这是有效的。

答案 5 :(得分:3)

转到Tortoise SVN --> Settings --> Saved Data

有一个清除身份验证数据的选项,单击清除按钮,它将允许您选择要清除用户ID /密码的连接。

执行此操作,任何结帐或更新活动后,它将重新提示用户ID和密码。

答案 6 :(得分:1)

此外,对于那些碰巧意识到太晚的人,他们犯了错误的凭据,解决方案(事后)是要更改该修订版的svn作者:请参阅this question

基本上语法是:

svn propset --revprop -r (revision_number) svn:author (new username)

答案 7 :(得分:1)

对于Win10,您应该删除此文件夹并关闭/打开您的IDE

  

C:\用户\用户\应用程序数据\漫游\颠覆\ AUTH

,也在我的项目中没有&#34; .subversion&#34;文件夹,只有&#34; .svn&#34;

答案 8 :(得分:0)

我相信你可以从同一个主干创建你自己的分支(使用你自己的凭证)作为你的同事的分支,从你的同事的分支合并到你的工作副本,然后从你的分支合并。所有未来的提交都应标记为来自您。

答案 9 :(得分:0)

您可以要求您的同事创建一个补丁,该补丁会将已经发生的所有更改合并到您可以应用于您自己的签出的单个文件中。这将适当地更新您的所有文件,然后您可以恢复他的更改并检查您的。

答案 10 :(得分:0)

基于Ingo Kegel's solution我创建了一个&#34;小&#34; bash脚本更改所有子文件夹中的用户名。请记住:

  1. <source>更改为新用户名。
  2. <NEW_USERNAME>更改为当前用户名(如果您目前没有设置用户名,只需删除<OLD_USERNAME>)。
  3. 在下面的代码中,只打印出svn命令(未执行)。要执行svn命令,只需删除前面的<OLD_USERNAME>@和空格(在echo上方)。

    popd

    希望你觉得它很有用!

答案 11 :(得分:0)

特定于 Windows 的乌龟:

我尝试了上述解决方案,但没有可用。在我的用例中,存储在 Windows 凭据部分下的 Windows 凭据管理器和 TortoiseSVN 中的凭据拒绝通过运行 --username 命令来更改它们。

您可以通过展开存储库的 url 并点击 edit 来编辑凭据。