有没有理由不使用git-masquerading-as-cvs作为cvs的升级?

时间:2009-08-19 09:59:32

标签: java eclipse git cvs

我们使用CVS为大约50个使用Eclipse开发的java项目,并使用Hudson构建。

我们现在已经达到了我们想要更好地迁移的程度,我正在考虑使用git伪装作为CVS服务器可能正是在学习曲线方面适合我们的。

我们有很少但很长寿的分支 - 最好是在文件的一个子集上(我们本来希望能够拥有一个客户特定的分支,我们只能实际更改少数文件,但如果需要,可以在以后添加更多文件,工具应该理解这一点。)

我们只是少数活跃的开发者共同定位。

我们通常使用每个主项目的工作区,并完整地检查构建该项目所需的所有项目。我们不使用Maven,只使用ant来构建Hudson。

我知道Eclipse中的git-support-has已被用作实际的Eclipse项目。有这方面的经验吗?

我很可能会设置一个本地git服务器来进行评估。我很欣赏有关明确查找哪些内容可能很麻烦的提示。


编辑:

我们不使用$ Id $或类似的关键字扩展(因为这会引起我们不想知道的源文件的变化。


所以,我很感激在类似于我们的场景中使用git的任何经验:)


编辑2009-10-25:问题仍然存在。我们决定远离分支(太多的痛苦)并进入多个源树 - 一个pr分支。这消除了使用CVS的主要痛点,但我们仍然希望能够在没有网络访问存储库的情况下进行开发。因此git仍然非常重要,我仍然希望听到战壕的经验。

2 个答案:

答案 0 :(得分:2)

只是评论:

CVS是一个集中式VCS,这意味着您的所有项目都可以放在一个CVS存储库中:您可以签出任何子部件。

Git是一个DVCS,在分布式世界中,一个存储库=一个“组件”(或“模块”或“项目”,......)。 您可以使用子模块在一个“伞形”下聚合多个Git存储库 如果您克隆Git存储库,您将获得所有历史记录(除非您限制克隆的深度)。

因此,您的项目组织将与Git不同,我不确定 一个 “类似CVS”的Git服务器的愿景是否仍然适用。

答案 1 :(得分:2)

来自git-cvsserver联机帮助页:

  

描述

     

此应用程序是git的CVS仿真层。

     

功能强大。但是,并非所有方法都已实施,对于那些已实施的方法,并非所有交换机都已实施

     

使用CLI CVS客户端和Eclipse CVS插件完成了测试。大多数功能都适用于这两个客户端。

     

限制

     

目前,cvsserver通过SSH连接为读/写客户端工作,而pserver通过pserver进行匿名CVS访问 1

     

CVS客户无法标记,分支或执行GIT合并。

     

git-cvsserver将GIT分支映射到CVS模块。这与大多数CVS用户所期望的完全不同,因为在CVS模块中通常代表一个或多个目录。

1。实际上对非匿名pserver的支持最近被发送到git邮件列表以供包含,并且目前在'pu'(建议更新)分支中,作为“git-cvsimport:add support”对于cvs pserver密码加扰。“