2

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

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

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

4

3 回答 3

1

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

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

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

于 2012-06-12T13:46:22.953 回答
1

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

不要忘记,在一个站点上,如果您的团队成员可以访问 git/mercurial 存储库文件系统(即存储库的共享路径),您甚至根本不需要服务器。那些 DVCS 支持文件系统协议访问(尽管没有身份验证或授权),也就是本地协议

您还可以使用 BitBucket 等外部服务跨站点共享您的项目(支持公共和私有项目,用于 Git 或 Mercurial)

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

因此,您有多种选择来访问/管理来自不同站点的存储库,而无需将自己注册到您无法从任何站点(例如在家)访问的集中式服务器(例如您的 SVN)。

于 2012-06-12T16:24:08.667 回答
1

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

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

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

  • 确保正确设置
  • 做维护
  • 执行升级
  • 确保防止停电
  • 确保足够的安全措施
  • 确保定期备份
  • 等等
于 2012-06-12T13:51:21.377 回答