我有一个位于远程位置的CVS存储库,CVS可以通过以下环境变量进行访问:
export CVSROOT=:ext:[email protected]:/home/xyz/cvsroot
export CVS_RSH=ssh
export CVS_SERVER=cvs
最近,我添加了另一台服务器,该服务器具有不同的位置和不同的存储库。我尝试通过添加位置
export CVSROOT=$CVSROOT:ext:[email protected]:/cvs/cvsroot
但是,我无法执行诸如结帐和更新之类的操作,并显示以下错误:
Cannot access /home/xyz/cvsroot:[email protected]:/cvs/cvsroot
No such file or directory
我究竟做错了什么?
最佳答案
当您在CVS信息库中时,任何cvs操作都会从当前目录的CVS/Root
文件中获取其CVSROOT信息,而不管那里有什么CVSROOT
环境变量。因此,您唯一的问题是如何最初从不同的存储库中 checkout 。
当您键入export CVSROOT=$CVSROOT:ext:[email protected]:/cvs/cvsroot
时,说“将CVSROOT环境变量更改为旧变量,并在末尾附加':ext:[email protected]:/ cvs / cvsroot”。这可能不是您想要的。您需要从右侧取出$CVSROOT
。
作为可行的工作流程,您可以
cvs -d <newcvsroot> co <reponame>
时运行cvs co
以指定每个CVSROOT(您可能也需要unset CVS_RSH
,我也不知道),或export CVSROOT=<newcvsroot>; unset CVS_RSH; cvs co <reponame>
。 如果您经常从多个存储库中 check out ,则可能需要这样设置环境变量,然后可以轻松地从每个存储库 check out 。 (根据需要添加回购。)
# in your .bashrc or someting
export REPO1ROOT=:ext:[email protected]:/cvs/cvsroot
export REPO2ROOT=:ext:[email protected]:/home/xyz/cvsroot
export CVSROOT=$REPO1ROOT # default
# when you use the command line
cvs co repo1
cvs -d $REPO2ROOT co repo2
关于linux - 如何定义多个CVS ROOT?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36827865/