Git/Mercurial越来越受欢迎.我看过很多文章比较SVN和Git/Mercurial,但我想知道是否真的有任何理由继续使用SVN.现在Git/Mercurial似乎有很多工具可以帮助推广其企业采用.
有没有理由继续使用SVN?Mercurial/Git终于为公司采用做好了准备吗?
这实际上源于我之前的问题,其中一个答案让我想知道人们如何以不同的方式使用scm/repository进行开发.
我的一位同事对PerForce的可能性感到兴奋(我们基本上需要在后勤上对补丁和更改进行分组,并且本机上的SCM支持非常好).我们目前使用CVS,并对所有可能性开放.我们只有少数使用纯Eclipse并使用ant脚本运行构建的开发人员.
在跳入水中之前,我想听听其他技术原因可以说"好主意"或"坏主意"的人.我也想知道这在你的日常工作中是多么的干扰.
编辑2011:仅供记录.我们迁移到git - 决定性的因素是我们使用Eclipse和eclipse.org用于git,因此我们最终可以期待非常好的IDE集成.我们有点早了 - 直到今年夏天的Eclipse 3.7.今天git在Eclipse中非常好用.
编辑2015:事实证明,git最终成为无可争议的赢家,这得益于github和一般的IDE支持,结合Maven最终使Java项目与IDE无关.
考虑改用Mercurial或Git?我们也是.我目前正在研究DVCS的好处,结果是巨大的,欲望和必须.
我很想听听社区的典型使用模式.
让我们为DVCS创建一个"前N"生产力功能列表(基于Mercurial,Git或类似).
请描述证明对您/您的团队有效的工作流程,DVCS帮助您实现/改进的程序以及DVCS为您提供的直接"好东西"(不要认为新手用户很清楚).
我认为这样的列表可以帮助那些接近团队的人提出DVCS建议.
显然,这个问题是社区维基.
随着我的公司开始进一步探索从集中版本控制工具(CVS,SVN,Perforce和其他许多人)转向提供团队分布式版本控制工具(在我们的案例中为mercurial),我遇到了一个问题:
问题
经理已经提出担心分布式版本控制可能不如我们的CVCS选项那么安全,因为回购历史记录本地存储在开发人员的机器上.
很难确定他确切的安全问题但是我已经认识到,它的核心是这样一个事实:恶意员工不仅可以通过复制单个文件夹来正确地窃取最新的知识产权,而且可以窃取我们的整个变更历史.
问题
我的想法
我的看法是,这可能是一个错误的想法,集中模型更安全,因为历史似乎更安全,因为它在自己的盒子上.鉴于具有对集中式仓库的读访问权限的用户可以在任何关键修订版中选择性地提取项目的快照,我不确定DVCS模型是否使这一切变得更加容易.此外,大多数CVCS工具允许您使用单个命令提取整个repo的历史记录,以便您可以将它们导入其他工具.
我认为另一个问题是历史与最新版本相比有多重要.当然有人可以检查一个绝密文件,然后删除它,历史很快就会很重要.但即使在那种情况下,CVCS用户也可以使用单个命令检出该绝密版本.
我确信我可能会遗漏某些内容或淡化风险,因为我渴望看到DVCS成为完全支持的工具选项.请提出您对安全问题的任何想法.
Git显然非常棒,各种客户端都可用,并且易于安装.
然而,为团队启动并运行Git服务器是一个挑战.
我有点惊讶的是,还没有一个易于部署的Java-Git应用服务器或webapp.看起来Gitosis,Gitolite等是在其他堆栈上运行的一些选项,但如果您已经在运行Java堆栈,那么部署Java servlet或webapp最简单.
沿着这些方向,我想知道如何编写Java'Git Server'webapp?
JGit可以在多长时间内为您提供简单的实现?将JGit打包为Web应用程序以便能够推送/拉出它以及轻松创建新的回购站需要做些什么?
我想设置一个Git服务器,让我的开发人员使用用户名和密码登录,以便提交和更改项目.我还需要管理开发人员对项目的访问权限(我想我应该使用gitolite).
我怎样才能做到这一点?
我习惯Subversion这很容易,因为你可以为每个开发人员设置用户名和密码,这可以轻松访问存储库而无需生成SSH密钥并将其放在服务器上.