Ear*_*rlz 60 svn protocols http
SVN的网络访问有四种常用协议.
svn://repos
svn+ssh://repos
https://repos
http://repos
Run Code Online (Sandbox Code Playgroud)
维基百科页面没有说明四种不同协议的差异.我一直很喜欢svn://,因为它是最容易设置的,但有什么不同,哪一个是"更好"?
Tho*_*ini 55
http://有一个严重的开销,特别是在处理数以千计的小文件时.我使用svn作为一个拥有大约50,000个图标的网站,所有这些都保存在SVN中.使用HTTP,大约需要20分钟才能结账.一旦我切换到svn://,它花了不到一分钟.这是因为使用HTTP,每个文件只有一个新的HTTP请求.
http://但是它有以下很大的优势:它通常通过防火墙.例如,现在我切换到svn://我不能再从我的大学访问我的存储库,因为他们的防火墙.
关于使用SSL/TLS与否之间的区别,很明显:数据是加密的; 但是设置起来比较困难.
Tho*_*nin 20
svn+ssh是在svnSSH隧道内运行的协议.客户端使用SSH登录远程服务器,并在该隧道中远程运行svn命令.在我看来,这svn+ssh是在远程系统上使用subversion存储库的最简单方法,因为假设您已经运行了SSH服务器,那么在该系统上没有任何服务器可以启动.
此外,还svn+ssh受益于SSH的加密保护.不要svn在不受信任的网络上使用原始协议.
主要问题svn+ssh是它需要在远程机器上进行shell访问.如果没有让他访问整个shell帐户,就很难向某人提供对存储库的访问权限.为此,您需要一种基于HTTP的方法,即http或https(最好https是因为加密和验证层).这些方法配置起来比较复杂(您需要HTTP/HTTPS服务器,例如Apache),但允许存储库管理员仔细而精确地控制存储库访问权限.
https://并且svn+ssh://是加密的,因此更安全地传输安全数据(例如您的SVN密码).
如果这是什么混帐一样,svn+ssh://会比快https://和svn://会比快http://.
有人可能会说,svn://或者svn+ssh://在访问 Subversion 存储库时提供比普通 HTTP 或安全 HTTPS 更好的性能和速度,但现在情况并非如此。虽然svn://或svn+ssh://比 HTTP(S) 快,但差异并不像 SVN 1.6 或更旧版本那样大。
有没有与HTTP(S)和跟上时代的颠覆1.7+客户端和服务器的主要性能问题。
由于 HTTPv2 (不要与 HTTP/2 混淆!),使用 Subversion 1.7 的 HTTP(S) 访问变得更加高效,尤其是在高延迟网络连接上。Subversion 1.8 从libneon到libserf用于 HTTP(S) 访问并libserf提供比libneon.
如果您认为某些问题与 HTTP(S) 或通过 HTTP(S) 工作的 Subversion 的性能有关,您应该调查您的网络上是否有任何使 HTTP(S) 变慢的服务。根本原因可能是防病毒软件、活动防火墙或代理。更不用说配置错误的网络设置了。并且不要忘记使用最新的 Subversion 客户端和服务器!
考虑网络配置错误的示例,似乎有一个非常普遍的问题会影响在无法访问 Windows 更新站点 ( http://ctldl.windowsupdate.com/ ) 的断开连接的网络上工作的客户端计算机。这是一个严重的问题,会影响广泛的系统服务,但最终用户在通过 HTTPS 使用 Subversion 客户端时会注意到并报告它。问题看起来与性能有关,但事实并非如此。阅读此 StackOverflow 线程以获取更多信息:https : //stackoverflow.com/a/38499619/761095。