3

何千ものCVSリポジトリがホストされているCVSサーバーがあります。これは、匿名のpserverアクセス​​を許可するプロジェクトが引数を使用してcvsコマンドラインに追加される一般的な構成で実行され--allow-rootます。問題は、プロジェクトが非常に多いため、cvsコマンドで"argument list too long"エラーが発生することです。

現時点での私の現在の解決策は、CVSソースコードをハックして、CVSコマンドライン引数をから"--allow-root"に変更することでした"--ar"。動作しますが、ある時点でコマンドラインの長さを再び超える可能性があります。

を使用して調べxargsました。問題は、着信CVSコマンドで指定されたものが見つかるまで、リポジトリごとにCVSコマンドを一度に1つずつ実行する必要があるようです。

着信クライアントのコマンドラインからリポジトリ名を取得できるラッパーを作成しようとしましたが、作成できませんでした。知識不足かもしれませんが、しばらく試してみたところ、うまくいく方法が見つかりませんでした。

スクリプトを見ましたcvs-pserverが、同じことを行い、すべてのリポジトリをコマンドラインに配置します。

見てみましたcvsdが、同じ制限があります。

私は公式にはアイデアがありません。最も洗練されたソリューションは、着信クライアントコマンドからリポジトリ名を取得できるcvsラッパーです。私はその作品を見たいのですが、どんな有用なインプットも大歓迎です。

4

1 に答える 1

0

Linuxカーネル>=2.6.23では、この問題はある程度解決されています。引数リストの最大サイズがスタックの最大サイズの約25%に増加しました。

Linux 64ビットシステムでは、最大スタックサイズがデフォルトで約8MBであるため、引数リスト用に約2MBのスペースが残ります。たとえば、それぞれ100バイトの場合、約20,000のプログラム引数が可能になります。

2.6.18カーネルを使用しているので、カーネルの更新を検討する必要があります。これはこの特定の問題を回避するはずであり、新しいカーネルのすべての追加の利点(そして面倒だと思います)を得るでしょう。

于 2012-06-21T19:22:31.763 に答える