1

2 つの古い cvs サーバーを 1 つの新しいボックスに統合しています。

私は次のことを望んでいました: oldserver1 と oldserver2 の dns エントリを変更すること (およびいくつかのユーザー アカウントのメンテナンス) により、移動が cvs ユーザーに対して透過的になるでしょう。

問題:
古いサーバーごとに異なる cvs ルートが原因で問題が発生しています。

背景
古いサーバーには、次の cvs リポジトリ ディレクトリがありました。

  • 古い server1 cvs ルート: /cvshome
  • 古い server2 cvs ルート: /usr/local/cvs

ディストリビューションで使用しているデフォルトのリポジトリ ディレクトリは /var/cvs です。私はこれに固執することを選択しました、つまり:

  • 新しいサーバーの cvs ルート: /var/cvs

目標
既存のチェックアウト プロジェクトの中断を最小限に抑えたい。つまり、社内の各ハード ドライブですべての「ルート」ファイルを検索/置換する必要がないようにしたい。

明確にするために、古い server1 の CVSROOT および CVS/Root エントリは次のようになります。

pserver:username@oldserver1:/cvshome

これを試した試み
: 新しいサーバーにシンボリックリンクを作成する

/cvshome points to /var/cvs
ln -s /var/cvs /cvshome

ただし、更新を試みると (つまり、古いサーバー 1 を指すワークステーションから)、次のエラーが発生します。

/cvshome : no such repository

まとめ
cvs リポジトリの「エイリアス」へのリンクを使用できますか?

または、すべてのハード ドライブのすべての「ルート」ファイルを「一所懸命に」変更する必要がありますか?

ありがとう、
ビル

4

2 に答える 2

1

Linux では、ディレクトリを指すシンボリック リンクへのパスをコマンドに指定すると、スラッシュを追加するかどうかで違いが生じます。

$ ls -l /cvsroot

シンボリックリンクのiノードをリストしますが、

$ ls -l /cvsroot/

シンボリックリンクが指すディレクトリの内容をリストします。この動作は、cvsroot が実際のディレクトリである場合の動作とは異なります。

それがあなたの問題かどうかはわかりませんが、スラッシュを追加してみてください。それが役立つ場合は、リポジトリのルートの下にあるすべてのもののチェックアウト、更新などを実行できるはずです。

于 2009-03-07T16:29:34.267 に答える
0

これは誰かを助けるかもしれません.古いスレッドにコメントして申し訳ありません.

私にとってうまくいったのは、/etc/xinetd.conf の --allow-root を変更することでした:

server_args = -f --allow-root /usr/local/cvsroot pserver

シンボリック リンク/エイリアスは、リポジトリを移動したこの新しいサーバーで機能するようになりました。

于 2013-03-28T07:55:34.540 に答える