运行自己的版本控制服务器的优点/缺点

时间:2012-06-12 13:43:25

标签: version-control

作为我在大学的研究的一部分,我做了大部分小项目,并且一直在使用我们的SVN服务器,并且还与SourceForge一起使用Mercurial。

我想知道在我的家庭服务器上运行Mercurial或任何其他类型的版本控制是否有意义。我在工作中使用的SVN服务器是大学防火墙的后面,在建筑的IT部门和我们部门的IT负责人之间,我认为在我服务器上启动新项目和编码时很麻烦家。我在家里有一个Drobo FS(NAS),我可以想象它用于运行版本控制服务器,这样我就可以轻松地访问我的代码,无需将我的代码放在第三方服务器上。

与在私有项目支持的项目托管网站上获取帐户相比,这种方法的优缺点是什么?这可行吗?如果是这样,它是否意味着重大的维护工作量?

3 个答案:

答案 0 :(得分:1)

当然,只要你有不希望在像github这样的服务器上打开的项目,你就应该这样做。

大多数小型私人团队都有源服务器,没有理由没有。例如,gitolite易于安装和使用(我不知道Mercurial,但我认为有一个易于安装的解决方案,可能更容易)。

副作用是您可以使用比svn更现代的东西,例如您可以在家中使用并与服务器同步的分散式vcs(使用mercurial和git时无需为每次操作使用服务器:只需设置一个本地存储库并不时推送到您的服务器。

答案 1 :(得分:1)

专业人士是您完全掌控服务器:

  • 你可以按照你想要的任何方式进行设置
  • 没有其他人可以访问您的来源/项目

缺点是你是唯一负责的人:你必须

  • 确保正确设置
  • 做维护
  • 执行升级
  • 确保防止停电
  • 确保采取足够的安全措施
  • 确保reguar备份

答案 2 :(得分:1)

每当您进行分布式开发时(无论是因为跨不同地理站点的团队,还是因为您从不同的站点开发),DVCS都是有意义的。

不要忘记,在一个网站上,如果您的团队成员可以访问git / mercurial repo 文件系统(即回购的共享路径),您甚至不需要服务器。那些DVCS支持文件系统协议访问(尽管without authentication or authorization),又名 local protocol

您还可以通过BitBucket等外部服务(支持公共和私人项目,Git或Mercurial)在各个站点之间共享您的项目。

如果您具有对大学网络的写入权限(例如通过USB密钥),您甚至无需访问该外部服务(BitBucket可能被阻止,无关紧要)。
git bundle 允许您将git repo导出为一个文件,您可以从中回收它作为回购。

因此,您可以通过各种方式访问​​/管理来自不同站点的回购,而无需将自己注册到集中服务器(如SVN),您无法从任何站点(如家中)访问。