2008-08-12 142 views
19

我应该从哪里开始学习版本控制系统?过去我使用过SVN,Team Foundation和Sourcesafe,但我并不觉得我完全掌握了它,而且我的团队似乎也没有把握。学习版本控制,并学习它

哪些点最重要?我意识到这与VCS和VCS不同,但为了这个问题,我们可以假设Subversion是我最感兴趣的VCS。

此外,如果可以的话,请推荐任何有用的书籍。

+0

这将是“学习得很好”,而不是“学吧好'。我不能相信这些MOD错过了这个。 – 2008-12-04 19:30:01

回答

10

在版本控制维基百科的文章是一个伟大的地方开始

Revision control

当试图教我的同事,我发现让他理解的词汇量最后是开始向他介绍源代码控制技术的好方法。

不知道分支是什么?去找出他们如何工作:)

有一个免费的在线颠覆书Version Control with Subversion它提供了宝贵的参考。

1

回答你的问题:哪些是最重要的要点,我建议你在完成整个检查和检查过程后,回滚到旧版本并执行差异,你应该看看分支。分支可以帮助您应对处于巨大变化中的痛苦,并且突然需要执行错误修复并将其部署到生产环境中,而不需要在一半的工作中进行混合。

1

我认为Subversion文档是一个很好的开始。我发现维基百科并没有真正的帮助,因为它只涵盖了“基本”的观点。

Subversion Book亚历克斯提到,我特别推荐第1章,尽管如果你已经有了一些Svn的经验,那么这个水平可能太低了。第4章详细介绍了分支和合并,但技术性很强。

对我有帮助的很多是TortoiseSVN文档中的日常使用指南;它涵盖了教程风格中最重要的操作。

我想你需要掌握的最重要的事情是分支,合并和标记。了解这些需要时间和练习,所以我强烈建议在本地存储库中使用一个小型宠物项目,以便您可以进行实验。我认为重要的是要认识到整个系统是基于差异的:合并只不过是将一个分支中所做的更改自动应用于另一个分支中的代码,而不是自己纠正代码。像冲突这样的东西(这让我花了很多时间去理解)只是这些的后果。

但当然,我还在学习,以及:)

6

我认为最重要的点之一必须学会有关源代码控制系统有以下几种:

  • 值小,频繁签入/提交
  • 标签,分支与合并
  • 回滚
  • 解决冲突
  • 独占与非独占结帐
  • 持续集成
  • 测试驱动开发&自动单元测试面对面的人源代码控制系统
  • 分叉

如果你有这些主要概念覆盖,这几乎是大多数的,你永远需要知道的源代码控制的事情:)

1

我也和你一样,从来没有真正感到舒服SVN或SourceSafe的100%。

退房MercurialQuickstartCheatsheets
也有很大的cheat sheet from DongWoo Lee(他的网站似乎下来,我扫描并上传到我的)

与Mercurial一切似乎很多更光滑,容易不知道为什么,因为它不是在别人的命令不同。

1

我不确定你有多少版本控制系统的经验,但对于没有预先了解这个概念的人,我推荐阅读Subversion book的前几章。这里描述的一些东西是Subversion特有的,但是许多概念对于版本控制系统以及如何使用它们是“通用的”。

我认为这是非常重要的是,人们在试图开始使用它们之前,了解版本控制系统背后的主要概念和基本原理的努力。我经常看到开发人员只使用他们系统的一小部分功能,因为他们不了解底层概念,因此或者没有看到使用他们认为“高级”或“不必要”功能的重点,或者他们只是害怕这样做,因为害怕破坏某些东西或导致项目出现问题。

在经历了这个现象,许多开发商在过去,我最近写了什么,我认为best practices for version control在我的博客的摘要。

0

恕我直言,用于配置管理的最佳网络资源将The ACME Project由布拉德·阿普尔顿

你应该阅读有关的所有SCM模式和反模式。 所有SCM技术术语在本网站上都有明确定义,并且有许多关于分支技术,敏捷SCM和其他重要内容的文章。

这可能会给你足够的理论背景来处理任何特定的版本工具。

至于一本Subversion书,它可能是上面提到的官方Subversion book。它可以在线免费获得,或者您可以购买一份纸质版。