Bash cvs未读取CVSROOT

Bash cvs未读取CVSROOT,bash,version-control,cvs,Bash,Version Control,Cvs,我们在远程机器上有一个CVS服务器,我在.bashrc: export CVSROOT=:pserver:myuser@theserver:/home/cvs Bash确认已设置此选项: $ echo $CVSROOT :pserver:myuser@theserver:/home/cvs 我还有一个本地的CVS回购协议,我用它来做其他的东西 /home/myuser/repo-cvs 我将访问它(这样做可以覆盖$CVSROOT中的默认值): 当我在没有-d的情况下执行任何cvs命令时,我

我们在远程机器上有一个CVS服务器,我在.bashrc:

export CVSROOT=:pserver:myuser@theserver:/home/cvs
Bash确认已设置此选项:

$ echo $CVSROOT
:pserver:myuser@theserver:/home/cvs
我还有一个本地的CVS回购协议,我用它来做其他的东西

/home/myuser/repo-cvs
我将访问它(这样做可以覆盖$CVSROOT中的默认值):

当我在没有-d的情况下执行任何cvs命令时,我希望它使用$CVSROOT中定义的命令,但我得到的东西如下:

$ cvs login
cvs login: can only use `login' command with the 'pserver' method
cvs [login aborted]: CVSROOT: /home/myuser/repo-cvs

$ cvs co tools
cvs checkout: cannot find module `tools' - ignored
~/dev/projects/myProjA/CVS
但是,这是可行的(工具位于pserver上,而不是本地):

因此,它显然忽略了env var$CVSROOT

我已经删除了~/.cvspass,因为它同时引用了这两个,我找不到任何其他可以缓存/存储此类信息的位置

有什么想法吗

附加注释

我没有在bashrc或.cvsrc中将任何覆盖设置为别名

$ cvs -v
Concurrent Versions System (CVS) 1.12.13-MirDebian-11 (client/server)

我做了两个假设:

  • 我假设,如果您不指定-d,那么接下来将基于CVS手册页使用$CVSROOT:

    -d cvs\u根目录
    使用cvs_root_目录作为存储库的根目录路径名。覆盖$CVSROOT环境变量的设置。

  • 我在其中运行cvs命令的目录是

    ~/tmp
    ~/dev/projects

  • 我没有想到CVS/本地目录的两个位置;我希望他们是这样的:

    $ cvs login
    cvs login: can only use `login' command with the 'pserver' method
    cvs [login aborted]: CVSROOT: /home/myuser/repo-cvs
    
    $ cvs co tools
    cvs checkout: cannot find module `tools' - ignored
    
    ~/dev/projects/myProjA/CVS
    

    我猜如果我花时间在手册中,我会发现一些解释,cvs命令将在查看$CVSROOT之前查看本地修订信息dir cvs/,如果您在我们的checked目录中工作,则在签出该目录时将使用CVSROOT,即使CVSROOT显示的是不同的目录

    这是正确的。如果已签出项目,cvs将使用工作副本中已有的信息。