gpt4 book ai didi

svn - 在工作副本中动态更改 SVN+SSH URI 中的用户名

转载 作者:行者123 更新时间:2023-12-03 22:48:33 24 4
gpt4 key购买 nike

我正在使用 SVN+SSH 从所有开发人员都是 developer 成员的 SVN 服务器检查存储库的工作副本组并对存储库目录和相关元数据具有完全的读/写权限:

svn co svn+ssh://someuser@svn.server/path/to/repository

几个开发人员在同一个工作副本上工作,该工作副本在共享 shell 帐户 ( root) 下 checkout 。由于此存储库用于生产环境中的配置修订控制,因此这是不可避免的。为每个开发人员在目标机器(正在执行结帐的机器)上提供一个单独的 shell 帐户将是解决此问题的一种方法,因为这样他们每个人都可以拥有自己的工作副本,但不幸的是,这在这里是 Not Acceptable 。

我们有各种 post-commit 钩子(Hook)可以发送电子邮件详细说明提交,包括提交更改的人的用户名。

问题是一旦使用给定用户名 checkout 工作副本,使用 svn+ssh:// URI 方案、提交和更新似乎也必须在该用户名下完成。这是不可行的,原因有两个:

1) 最初进行 checkout 的人可能不是现在进行 commit 的人,我们需要 post-commit 电子邮件和其他 post-commit 钩子(Hook)来确切知道是谁进行了提交,并且

2)显然,提交要求提交用户知道进行原始结帐的人的帐户密码,尽管出于原因#1,但使用 RSA key 进行非交互式身份验证。

有没有办法动态切换在这种情况下用于身份验证的远程帐户的用户名?

我做了一些研究,之前发现了这个问题:

Changing the username for a Subversion commit over svn+ssh

不幸的是,接受的答案( svn switch )中的建议不起作用:
[root@db repo-directory]# svn switch svn+ssh://user2@10.250.10.1/u/svc/repositories/repo-name
user2@10.250.10.1's password:
svn: 'svn+ssh://user1@10.250.10.1/u/svc/repositories/repo-name' is not the same
repository as 'svn+ssh://user2@10.250.10.1/u/svc/repositories/repo-name'

任何想法将不胜感激。预先感谢您的考虑!

最佳答案

如果您修改客户端的配置,它可以与 ssh+svn 一起使用:$HOME/.subversion/config 隧道 部分:

ssh = $SVN_SSH ssh -l *youruser*

关于svn - 在工作副本中动态更改 SVN+SSH URI 中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com