Tortoise SVN使用不同的帐户访问不同的路径

时间:2016-05-09 11:33:46

标签: svn tortoisesvn

在我的仓库中,有不同的帐户来控制不同文件夹的权限,并且有一个公共帐户具有只读权限,可以访问整个仓库。

例如

回购路径是:

svn://foo.bar/trunk/
svn://foo.bar/trunk/projectA/

公共帐户pub具有访问svn://foo.bar/trunk/的只读权限。

我的工作帐户staffA完全属于svn://foo.bar/trunk/projectA/,但<{1}} 没有私密性

我的本​​地仓库已在svn://foo.bar/trunk/D:\Worksapce\进行了检查。

问题

  1. 我可以使用svn://foo.bar/trunk/结帐/更新pub
  2. 我无法使用svn://foo.bar/trunk/结帐/更新staffAsvn://foo.bar/trunk/文件夹
  3. 我可以使用projectA提交staffA
  4. 代码的管理员已为svn://foo.bar/trunk/projectA/路径staffA添加了read-pnly权限。
  5. Linux trunk可以解决问题,但我正在使用Windows。 Tortoise SVN在解决冲突和比较历史时非常有帮助。
  6. 每次我ci / up时,我必须在Tortoise SVN auth对话框中输入相应的帐号和密码,而不保存身份验证。

    问题

    如何使用保存的alias帐户更新D:\Worksapce\

    如何使用已保存的pub帐户提交D:\Worksapce\projectA

2 个答案:

答案 0 :(得分:1)

常见简答:无论如何纯粹的GUI。

对于任何领域(主机名)Subversion只能存储和替换一个身份验证对用户/传递

但如果你完全从CLI与远程仓库进行通信,你可以在命令行中使用--username + --password个选项

答案 1 :(得分:1)

对于SVN(和git),如果要与同一服务器通信,但为​​各种目的使用不同的凭据,则必须使用SSH访问而不是HTTPS(除非您可以使用与其匹配的不同名称访问服务器SSL证书)。

使用SSH,您可以将服务器的别名设置为不同的PuTTY会话。因此,您可以使用以下URL访问“foo.bar”存储库:

svn+ssh://pub@example.com/foo.bar/trunk
svn+ssh://staffA@example.com/foo.bar/trunk

这可行的原因是因为URL中的///之间的所有内容都被plink(PuTTY)解释为PuTTY会话的名称,该会话将告诉它如何通话到服务器(主机名,用户名,端口,SSH密钥)。

因此,在PuTTY中,您将创建两个与SVN服务器通信的会话。一个名为pub@example.com,另一个名为staffA@example.com(区分大小写)。有趣的是,PuTTY会话可以被命名为任何东西,因此您可以使用会话名称,如Aspidistra(svn + ssh://Aspidistra/foo.bar/trunk)。

这个技巧也可以通过SSH用于GitHub。或者在Linux / Unix机器上,您可以在~/.ssh/config中进行设置。

对于HTTPS,它更加困难,并要求服务器证书具有备用名称。因此,如果服务器可以作为https://example.com/https://svn.example.com/访问,那么您可以为第一个配置一组凭据,为后者配置一组不同的凭据。