我有一个位于远程位置的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/

    10-14 16:18