我们有一个服务器,用于托管 Web 解决方案,它们通过 CVS 在服务器上更新。大约 4 个人需要访问该服务器,并能够通过 CVS 更新 Web 解决方案。
当我签出 web 解决方案时,CVS/Root 设置为 :ext:USERNAME@ADDRESS:CVS-PATH - 只要我使用 cvs 进行更新,这就可以了。但如果另一个用户(不同的用户名)进行 CVS 更新,它会尝试使用我的用户名进行更新,而另一个用户不知道密码。
我想“强制” cvs-root 成为每个用户的某个东西,但不幸的是文件 CVS/Root 覆盖了环境变量 CVSROOT。
是否有其他方法来覆盖它,以便每个用户都可以使用自己的登录信息进行更新。
希望有人能帮助我找到正确的方向:)
答案1
你不能简单地删除 USERNAME 部分并将 CVSROOT 设置为 吗:ext:ADRESS:CVS-PATH
?然后你可以更改各自的 ~/.ssh/config 文件以包含 CVS 服务器的正确用户名。
或者,您可以向系统添加另一个用户,向每个人提供密码(或者更好的是提供密钥),然后让该用户进行更新。
答案2
对于每次登录,您可以通过以下方式分别提供 CVSROOT(手动提供或者作为登录过程的一部分):
export CVSROOT=:ext:USERNAME@ADDRESS:CVS-PATH
如果这对每个用户来说都是永久的,那么我建议将其放入用户的 /home/user/.bashrc 中
只需确保 CVS 中列出了单独的用户。