2016-04-24 50 views
1

我有一個CVS倉庫地處偏遠的位置,這是CVS可以通過這些環境變量訪問:如何定義多個CVS ROOT?

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 

我在做什麼錯?

+1

目前還不清楚什麼是「它」是當你說「它似乎不工作」,而是根據你的原始變量,你可能想'出口CVSROOT =「: ext:[email protected]:/ cvs/cvsroot「'代替。 – indiv

+0

對不起,我的語言不清楚,我更新了這篇文章。謝謝! – madchemist

回答

3

當您在CVS存儲庫中時,無論有什麼CVSROOT環境變量,任何cvs操作都將從當前目錄的CVS/Root文件中獲取其CVSROOT信息。所以你唯一的問題是如何從你的不同的倉庫初步結賬。

當你鍵入export CVSROOT=$CVSROOT:ext:[email protected]:/cvs/cvsroot,它說:「如果它改變CVSROOT環境變量爲':ext:[email protected]:/ cvs/cvsroot'作爲舊變量,那很可能不是你想要的你需要採取$CVSROOT出來右手邊。

作爲一個可行的工作流程,爲你做,你可以

  • 運行cvs -d <newcvsroot> co <reponame>指定每個CVSROOT您cvs co(您可能需要unset CVS_RSH爲好吧,我不知道那個),或
  • 你也可以export CVSROOT=<newcvsroot>; unset CVS_RSH; cvs co <reponame>

如果您經常從多個存儲庫中檢出,您可能希望設置像這樣的環境變量,然後您可以輕鬆地從每個存儲庫中檢出。 (可根據需要添加回購。)

# 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 
+0

非常好!這很好地解決了我的問題。謝謝!我(錯誤地)認爲我們需要在更新存儲庫時定義CVSROOT,以便CVS知道從哪裏更新它們。 – madchemist