2016-04-24 32 views
1

私はCVSは、これらの環境変数を経由してアクセスすることができ、遠隔地にある1つの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リポジトリにいるとき、どのCVS操作も、現在のディレクトリのCVS/RootファイルからCVSROOT情報を取り込みます(CVSROOTの環境変数に関係なく)。したがって、あなたの唯一の問題は、最初に異なるリポジトリからチェックアウトする方法です。

「CVSROOT環境変数を ':ext:[email protected]:/ cvs/cvsroot」という古い変数に変更すると、export CVSROOT=$CVSROOT:ext:[email protected]:/cvs/cvsrootと入力すると、それが最後に追加されます。 。あなたは、右側の外に$CVSROOTを取る必要があります。実行可能なワークフローとして

、あなたはどちらか

  • 実行cvs -d <newcvsroot> co <reponame>することができ、あなたのcvs co(あなたがようunset CVS_RSHする必要があるかもしれませんがそうであるように、各CVSROOTを指定しますよくわかりません)、または
  • また、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

関連する問題