有没有办法以编程方式或从命令行访问 Subversion 的代理设置?

Is there a way to access Subversion's proxy settings programmatically or from command-line?

Subversion 在 ~/.subversion/servers 文件 (https://www.visualsvn.com/support/svnbook/advanced/confarea/#svn.advanced.confarea.opts.servers) 中保留其代理配置。

有没有办法通过 Subversion 命令行客户端访问此信息,类似于 git config --global --list

我正在寻找一种方法来访问此信息以进行读写访问,并且我想避免解析文件。

由于似乎无法通过 svn 可执行文件获取代理配置,我求助于使用嵌入式 Python 脚本。为什么 Python?因为它有 ConfigParser 模块,允许 read/write INI 风格的文件:

    if $(command -v svn &> /dev/null) && $(command -v python &> /dev/null) ; then
        python - <<END
import ConfigParser, os
config = ConfigParser.ConfigParser()
config.read(os.path.expanduser('~/.subversion/servers'))
if (config.has_section('global')):
    proxy_host = ''
    proxy_port = ''
    proxy_exceptions = ''
    if (config.has_option('global', 'http-proxy-host')):
        proxy_host = config.get('global', 'http-proxy-host')
    if (config.has_option('global', 'http-proxy-port')):
        proxy_port = config.get('global', 'http-proxy-port')
    if (config.has_option('global', 'http-proxy-exceptions')):
        proxy_exceptions = config.get('global', 'http-proxy-exceptions')
    print 'http-proxy-host      : ' + proxy_host
    print 'http-proxy-port      : ' + proxy_port
    print 'http-proxy-exceptions: ' + proxy_exceptions
END
    fi

此代码读取 ~/.subversion/servers 文件并打印值。可以使用类似的代码来更改代理值。