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

Version control 运行自己的版本控制服务器的优缺点,version-control,Version Control,作为我在大学研究的一部分,我主要做一些小项目,并且一直在使用我们的SVN服务器,还与Mercurial一起玩SourceForge 我想知道在我的家庭服务器上运行Mercurial或任何其他类型的版本控制是否有意义。我在工作中使用的SVN服务器位于大学防火墙的后面,在大楼的IT部门和我们部门的IT负责人之间,我认为在服务器上启动新项目和在家编写代码非常麻烦。我在家里有一个Drobo FS(NAS),我可以想象用它来运行版本控制服务器,这样无论我身在何处,我都可以轻松地访问我的代码,而不必将代码放

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

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


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

当然,一旦你有了不想在github这样的服务器上打开的项目,你就应该马上去做

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


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

优点是您可以完全控制您的服务器:

  • 你可以按你想要的方式设置它
  • 没有其他人可以访问您的源/项目
缺点是你是唯一负责的人:你必须

  • 确保正确的设置
  • 保养
  • 执行升级
  • 确保防止停电
  • 确保充分的安全措施
  • 确保定期备份
  • 等等

无论何时,只要您进行了分布式开发(因为团队跨越不同的地理位置,或者因为您从不同的站点开发),DVCS都是有意义的

不要忘记,在一个站点上,如果您的团队成员可以访问git/mercurial repo文件系统(即repo的共享路径),那么您甚至不需要服务器。这些DVC支持文件系统协议访问(尽管如此),也称为

您还可以使用诸如BitBucket之类的外部服务跨站点共享您的项目(支持Git或Mercurial的公共和私人项目)

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


因此,为了从不同的站点访问/管理回购协议,您可以选择不同的选项,而无需将自己注册到集中式服务器(如您的SVN),而您无法从任何站点(如从家中)访问该服务器。

亲爱的So投票赞成关闭的用户:请详细说明为什么您认为这个问题需要关闭,所以也许我可以修改它,而不是贬低这个问题?我认为它被视为离题。我不同意。但不要担心,因为结束是基于投票的,一票并不重要。谢谢你的建议,目前我想我会尝试BitBucket,因为它看起来很容易使用。无论我能从维护服务器/服务中节省多少时间,都是我可以投资于研究的时间,或者只是空闲时间:)