如何搭建同基础URL支持Git/SVN双协议的类GitHub HTTP代码服务器
Git/SVN同URL双协议访问实现问询
多年来GitHub托管的代码仓库使用体验极佳:借助同一个基础URL(例如https://github.com/chjfth/dailytools.git),用户既可以通过Git客户端执行git clone拉取代码,也可以通过SVN客户端执行svn checkout检出代码,相关效果可参考截图:

核心疑问
我想了解GitHub实现该双协议访问能力的技术逻辑:
- 该能力是GitHub自研的私有技术,还是已有可直接使用的开源实现方案?
在GitHub的双协议支持能力下,SVN客户端提交到服务端的变更可立即通过git fetch拉取,Git端的变更也会实时同步到SVN侧,双向同步无延迟,推测GitHub服务集群内部署了实时协议转换层,可动态将SVN协议请求对接至后端Git存储。
现有搭建基础
我已参照Git官方指南在Apache httpd 2.4.52版本上完成了Git Smart HTTP服务搭建,可正常对外提供Git仓库的HTTP访问服务,目前希望进一步在同一个Apache httpd实例上实现SVN客户端的同URL访问支持,检索公开资料未找到匹配的实现方案,因此发起技术问询。
已测试方案的局限
补充说明:我已尝试过git-as-svn方案,完成配置后可正常运行,能满足90%的Git/SVN双协议服务器搭建需求,但该方案目前SVN客户端仅支持
svn://协议访问,无法实现统一http://协议的同URL访问目标。
内容的提问来源于stack exchange,提问作者Jimm Chen
相关产品推荐
相关产品推荐

