我有一个 CVS 服务器,上面托管了数千个 CVS 存储库。它以典型配置运行,其中允许匿名 pserver 访问的项目使用--allow-root
参数添加到 cvs 命令行。问题是,项目太多,现在 cvs 命令会导致"argument list too long"
错误。
目前,我目前的解决方案是破解 CVS 源代码,将 CVS 命令行参数从"--allow-root"
更改为"--ar"
. 它有效,但有可能我会在某个时候再次超过命令行长度。
我使用xargs
. 问题在于,它似乎必须为每个存储库运行 CVS 命令,一次一个,直到找到传入 CVS 命令中指定的命令。
我试图编写一个可以从传入的客户端命令行获取存储库名称的包装器,但我无法这样做。可能只是我缺乏知识,但我尝试了一段时间,找不到有效的方法。
我查看了cvs-pserver
脚本,但它做同样的事情,将所有存储库放在命令行中。
我看了看cvsd
,它也有同样的限制。
我正式没有想法。最优雅的解决方案是 cvs 包装器,它可以从传入的客户端命令中获取存储库名称。我很想看到这项工作,但任何有用的输入将不胜感激。