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? :
-
cd
到~/.subversion/auth/
。 - 做
fgrep -l <yourworkmatesusernameORtheserverurl> */*
。 - 删除find的文件。
- 存储库上的下一个操作将再次询问您的用户名/密码信息。
(对于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脚本来更改所有子文件夹中的用户名。 记得:
- 将
<NEW_USERNAME>
更改为新的用户名。 - 将
<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
希望你觉得它有用!