SVN更改用户名

我发现了很多关于如何更改特定版本的用户名的例子。

但是我需要的是这样的:我使用一个同事的身份validation凭证进行结账,并且需要将其更改为我的凭据以供将来提交。

由于已经完成了许多变更,我不能只凭借凭证结帐…

任何人都熟悉这个?

    你可以改变用户

    • 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 

    在你的工作副本。

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

    svn commit --username newUser

    要么

    svn co --username newUser

    它将被caching,并将被用作未来命令的默认用户名。

    另请参见: 在Subversion中,我可以成为除我的login名之外的其他用户吗?

    我有完全相同的问题,并发现SVN客户端存储用户身份validation数据的解决scheme? :

    1. cd~/.subversion/auth/
    2. fgrep -l <yourworkmatesusernameORtheserverurl> */*
    3. 删除find的文件。
    4. 存储库上的下一个操作将再次询问您的用户名/密码信息。

    (对于Windows,步骤是类似的; auth目录在%APPDATA%\Subversion\ )。

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

    如果你的协议是http,你使用的是Subversion 1.7,你可以随时通过任何命令使用全局的–username选项来切换用户。

    Ingo的方法不适合我,这是我发现的工作。

    而且,对于那些碰巧认识得太迟的人,他们犯了错误的凭据,解决办法(事后)就是改变那个修订版的svn作者:看到这个问题

    基本上这个语法是:

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

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

    有一个选项可以清除authentication数据,点击清除button,它将允许你select你想要清除userid / pwd的连接。

    当你这样做,任何结帐或更新的活动,它将reprompt用户名和密码。

    这很简单。 你应该执行

     svn up --username newUserName 

    而已。

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

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

    ,在我的项目中也没有“.subversion”文件夹,只有“.svn”

    我相信你可以创build你自己的分支(使用你自己的凭证)作为你的同事的分支,从你的同事的分支合并到你的分支,然后从你的分支合并。 所有将来的提交都应该标记为来自你。

    你可以要求你的同事创build一个补丁,这个补丁将把所有已经做的修改合并成一个单独的文件,你可以申请自己的签出。 这将适当地更新所有文件,然后您可以恢复他身边的更改并检查您的文件。

    基于Ingo Kegel的解决scheme,我创build了一个“小”bash脚本来更改所有子文件夹中的用户名。 记得:

    1. <NEW_USERNAME>更改为新的用户名。
    2. <OLD_USERNAME>更改为当前用户名(如果您当前没有设置用户名,只需删除<OLD_USERNAME>@ )。

    在下面的代码中,svn命令只被打印出来(不执行)。 要执行svn命令,只需删除前面的echo和空格(就在popd上方)。

     for d in */ ; \ do echo $d ; pushd $d ; \ url=$(svn info | grep "URL: svn") ; \ url=$(echo ${url#"URL: "}) ; \ newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \ echo "Old url: "$url ; echo "New url: "$newurl ; \ echo svn relocate $url $newurl ; \ popd ; \ done 

    希望你觉得它有用!