问题 如何从命令行配置SVN HTTP代理?


我编写了构建环境的脚本。 (因此,如果构建过程发现自己在干净的图像上运行,则构建过程可以自行引导)。

作为此过程的一部分,从公共SVN存储库检索某些依赖项。

构建机器位于代理后面,因此我需要配置SVN以使用代理。

由于各种原因,立即想到的几个选项是不可接受的:

  • 我可以手动编辑〜/ .subversion / servers文件,但我宁愿将构建过程保持为自包含和尽可能自动化。
  • 或者,我可以使用内部“依赖”存储库“代理”各种公共subversion存储库,但这会增加需要维护的移动部件的数量。
  • 最后,我可以编写一个脚本来检查配置文件并对其进行修改(如果需要),但这对于构建过程中应该是一个微不足道的部分来说似乎有些过分。

理想情况下,我应该能够从命令行指定代理,但这是不可能的。解决这个问题的正确方法是什么?


11430
2018-05-20 12:09


起源

好的,所以看起来我可以使用以下命令设置代理(我还需要测试):svn propset --config-option servers:global:http-proxy-host = <PROXY>; svn propset --config-option服务器:global:http-proxy-port = <PORT>(但是:我们的浏览器的代理是自动设置的,所以如果我需要下载并解析代理配置脚本,我还在努力) 。 - William Payne


答案:


SVNBook 救援!

  1. 正如您已经提到的,您可以添加SVN配置选项 svn 命令行客户端。

    看到 SVNBook | --config-option 命令行参考

    在命令的持续时间内设置运行时的值   配置选项。 CONFSPEC是一个指定的字符串   配置选项命名空间,您想要的名称和值   分配,格式化为 FILE:SECTION:OPTION = [VALUE]。在这个语法中,FILE   和SECTION是运行时配置文件(配置或   服务器)及其部分,分别包含   您希望更改其值的选项。 OPTION当然是   选项本身,以及VALUE您希望分配给的值(如果有)   选项。例如,暂时禁用自动使用   属性设置功能,使用   --config选项=配置:杂记:使能自动道具=无。 您可以多次使用此选项来更改多个选项值   同时。

    以下是示例命令行:

    svn checkout ^
    --config-option servers:global:http-proxy-host=<PROXY-HOST> ^
    --config-option servers:global:http-proxy-port=<PORT> <REPO-URL> <LWC-DIR> 

  2. 或者使用 --config-dir 指出 svn 命令行客户端到自定义配置文件。

    --config-dir DIR

    指示Subversion从中读取配置信息   指定的目录而不是默认位置(.subversion in   用户的主目录)。


15
2018-05-20 12:40



好吧,config-option看起来效果不好,因为我得到以下两个错误:svn:invalid option --config-option servers:global:http-proxy-port = <PORT> svn:invalid option - config-option servers:global:http-proxy-host = <HOST> ....我现在正在尝试使用--config-dir选项。 - William Payne
我花了一点时间才弄明白,但使用的完整命令是:svn checkout --config-option servers:global:http-proxy-host = <PROXY-HOST> --config-option servers:global:http -proxy-port = <PORT> <REPO-URL> <LWC-DIR> - William Payne
@WilliamPayne感谢您的更新!我将把这个命令行作为样本放入答案中。 - bahrep