Syn*_*ech 7 svn apache criteria selection
为我的版本控制需求选择Apache Subversion(和我的主要Subversion客户端的AnkhSVN/TortoiseSVN).现在我试图选择SVN服务器来提供对SVN存储库的远程访问.我看了几个:
我已经在虚拟机中安装了每个以试用它们,但是还没有找到足够的区别来充分区分它们以便选择任何特定的.现在我有一些我需要决定的事情.
我读过HTTP 比SVN协议慢得多.虽然我的项目通常不是太大(实际上只是初始导入是耗时的部分),但我确实希望获得SVN的性能优势,以及避免我的HTTP日志充斥着SVN条目(我有截至尚未分离成单独的LOG文件).
但我确实喜欢使用Apache模块或VisualSVN提供的Web界面.我真的不需要将我的东西提供给其他人(甚至我自己远离我的系统),所以它并不重要,但它肯定允许可扩展性.
2.选择协议后(假设我必须选择); 我需要帮助决定使用哪个供应商.我最初使用的是Tigris发行版中的Apache模块.我已经删除了(好吧,只是禁用它),并且我正在使用VisualSVN(这是HTTP,因此很慢).我见过人们赞同夏普和丝绸,但他们似乎是较小的,独立发行.
另一方面,Collabnet似乎比我需要的更精细.基本上,除非我能说服其中一个,我主要只是想在官方的底格里斯和VisualSVN之间做出选择.
3.我也尝试过乱用SSL而没有太大的成功(我买不起真正的CA,所以我在VisualSVN中使用自签名证书).我很乐意使用SVN + SSH/HTTPS,但如果我在自己的系统上使用它,那么就没有必要,如果我在外部使用它,那么我的自签名证书将无济于事.
我想我甚至可以使用本地存储库; 我认为这将是最快的.但是,如果我扩展,我宁愿选择更正式的解决方案.(我考虑过只使用TortiseSVN客户端在本地完成服务器的工作.)
总而言之,我需要一些关于使用哪个服务器(s?)的建议.如果我可以让VisualSVN为Web使用提供HTTP接口,并且还在SVN协议上提供用于客户端,最好在每个客户端上选择SSL,那将是多么美妙的事情.那可能吗?是不是太多工作(我真的想回到我的项目而不是所有这些元工作).
非常感谢.
编辑
我想我应该提供一些关于我的情况的信息来澄清事情.
编辑:在阅读了其他答案之后,我认为应该提一件事.如果您尝试使用一台服务器,则您要求它提供的存储库与您要求其他类型服务器提供服务的存储库没有区别.
换句话说,如果您决定立即尝试使用一台服务器,则可以稍后切换到其他类型的服务器,而不会丢失您的存储库.当然,工作副本以及您在项目中所做的任何绝对外部引用都必须更改,但您可以保留存储库的历史记录和所有内容.
我在宣布时安装了VisualSVN Server,并对它感到非常满意,有一段时间了.
但是,速度问题使我切换到作为Subversion命令行包的一部分提供的主svnserve服务器.
主要问题是我正在使用.NET,我选择在项目中添加几个外部Subversion引用.
首先,我在我的类库中创建的每个项目都是由我的密钥签名的.其次,外部第三方库,如SQLite和NUnit被添加为外部引用.
每个项目都有自己的外部参考.我这样做是为了能够创建一个新的应用程序项目,然后对我需要的类库的部分进行新的外部引用,并使这些引用完整.如果我在.NET中的类库解决方案有一个外部引用用于签名密钥文件,并且该文件不是作为任何单个项目的一部分提供的,而是位于所有项目之外的磁盘上,但是在我的解决方案本地,那就是没有工作.
因此,我的类库解决方案包含大约15-20个项目,每个项目至少有一个对签名密钥的外部引用,我的所有数据项目都有对SQLite库的外部引用,以及具有4-5个外部引用的单元测试库.
最终结果是,在解决方案级别进行单次更新,即使我已经拥有所有最新文件,目录,所有内容,也需要大约2分钟才能完成.每个外部引用都需要10到20秒才能完成,只是为了验证我是否需要修改.
当我切换到svnserve时,那2分钟减少到大约3秒钟.这是当地的交通问题,所以当然这在互联网上会有所不同.问题是,那2分钟也是当地的交通.
所以,虽然我非常喜欢VisualSVN Server提供给我的界面,包括轻松设置访问权限和用户的能力,但是与svnserve和本机Subversion协议相比,Apache服务器模块为我提供的速度绝对可怕. .
请注意,我从那以后安装了一个单独的Apache服务器,通过大量配置文件进行处理,并使用Apache而不是通过VisualSVN服务器设置Subversion,只是为了确保它不仅仅是VisualSVN,而且我已经确认了速度我观察到的不是VisualSVN团队的工作.似乎HTTP协议或Apache模块并不那么快.
我的建议是尽可能使用主svnserve服务器.可能需要一些工作来了解配置文件以获得授权等等,但单独的刺激因素(即对速度没有任何刺激)将超过这一点.