有没有办法以编程方式或从命令行访问 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
文件并打印值。可以使用类似的代码来更改代理值。
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
文件并打印值。可以使用类似的代码来更改代理值。