作为源代码控制初学者,最好学习的版本控制系统是什么?

有帮助吗?

解决方案

除了视觉源安全之外的任何东西;最好是支持分支和合并概念的。正如其他人所说,Subversion 是一个不错的选择,尤其是使用 TortoiseSVN 客户端时。

一定要检查一下(请原谅双关语) Eric Sink 的经典系列源代码控制 HOWTO 文章.

其他提示

我建议你尝试 Subversion,例如使用 一键式 SVN 安装程序. 。尝试在 SO 中搜索“Subversion”,您会发现大量问题以及指向良好教程的答案。

祝你好运!

我会直接去 git. 。我以前用过subversion,但总觉得我做错了。Git 从第一天起就有意义。

有用的资源:

我认为有几个核心概念需要学习:

  1. 入住/退房(显然)
  2. 本地版本对比服务器版本
  3. 将本地工作区映射/绑定到远程存储或存储库。
  4. 将更改合并到包含其他更改的文件中。
  5. 分支(它是什么,何时/为何使用它)
  6. 将分支的更改合并回主分支或主干。

大多数现代源代码控制系统都需要上述主题的一些知识,并且应该有助于您学习它们。然后你有分布式源代码控制,我没有任何经验,但应该相当复杂,可能不适合初学者。

颠覆 很棒,因为它拥有您想要的所有现代功能,而且是免费的。

git 也正成为越来越流行的选择,并且是 Subversion 的另一种免费或成本极低的替代方案。然而,有关分支和合并概念的知识对于使用 Git 至关重要。

您可以使用 解开 作为尝试 Git 和 Subversion 的免费且简单的方法。我用它来为我过去从事的一些副项目托管几个 subversion 存储库。

我不是高级源代码控制用户,但我正在学习。这是我使用源代码控制产品的经验:

  1. 很久以前,我当时工作的公司决定使用源代码控制。他们向开发人员介绍了这个概念,并让每个人都愿意尝试。他们选择使用 PVCS 并实施它。不久之后,开发人员将不得不协调锁定/解锁模块和对象,而我们确实没有看到太多好处。

  2. 几年后,我正在尝试制作一个开源项目,当时 ruby​​forge 提供了 CVS 存储库。我尝试了一下,比 PVCS 稍微好一点。当然,我是唯一使用该存储库的人。然而,当我尝试重新排列文件结构时,我确实感到沮丧,因为我不喜欢最初导入它们的方式。它在 CVS 中并没有真正发挥作用。

  3. 几年后,我正在从事另一个个人项目,我的网络托管提供商提供了易于设置的 Subversion (SVN) 存储库。我花了一些研究才能让它正确运行并运行,但是一旦我克服了最初的学习曲线,我就喜欢上了它。

  4. 不久之后,我意识到我喜欢拥有源代码控制,而我目前的工作没有它。所以我进行了宣传,经过很长一段时间,我的团队实施了 Source Safe,因为我们在 Visual Studio 中工作,并且通常是 Microsoft 商店。我很想使用它,但不久之后我发现我正在丢失文件,并且 Visual Studio 将东西放在错误的位置,并且我会在一个项目上工作一段时间,然后将我的工作导出到另一个位置并发现它要么不会导出,要么只会导出解决方案中的部分项目。这让我意识到,尽管我认为自己使用的是“版本控制系统”,但最安全、最健壮、最完整的代码副本就是我的工作副本。与源代码控制应该做的完全相反。

  5. 所以上周我厌倦了 Source Safe,所以我去寻找。在研究了一些解决方案之后,我决定尝试 git。我不会说这一切都是玫瑰花,因为我再次有了一些学习曲线来让它做我想做的事情,但是,我非常喜欢它,可以将我所有的工作和个人项目转换为它。它的真正好处之一是我不需要集中存储库,因此我可以使用它,而无需在工作中经历大量繁文缛节来安装它。

简而言之,我会推荐 git,我在 Windows 中使用 Mysysgit,它还有一个额外的好处,那就是为我提供了 bash shell。在 Linux 上,您只需从包管理器中安装它即可。如果你不喜欢 git,请尝试 subversion。如果您不喜欢其中任何一个,您可能也不会喜欢 CVS 或 PVCS。在任何情况下都不要尝试 Source Safe,这太糟糕了。

我发现 http://unfuddle.com 省去了我安装 SVN 或 git 的麻烦。您可以在那里获得一个免费帐户并使用其中任何一个 - 另外您还可以在那里使用您的 OpenID。

这样您就不必费力去正确设置它,而可以专注于如何使用它!

SourceGear.com 的 Vault 非常棒。它对单个用户免费,并提供出色的 VS 2005/2008 界面。我喜欢它!

RP

@伊恩·尼尔森:

我同意您的观点,即 Source Safe 作为源代码控制系统很糟糕,但请记住,使用 Source Safe 比 Joel Spolsky 所说的“随身携带软盘”要好得多。

对于初学者来说,这可能不是一个坏主意,因为根本没有源代码控制的成本要高得多。

每个工具都有其优点和缺点。这很大程度上取决于您的要求是什么。不幸的是,对于这个问题,像许多其他问题一样,通常不会选择最好的工具,而是选择某人熟悉的工具。例如,如果您不需要很多分支机构,并且您的团队规模较小且本地化,那么几乎任何风险投资公司都可以完成这项工作(SourceSafe 除外)。如果您需要分支(这几乎必然意味着您还需要进行合并)、您的团队是分布式的、您需要高级安全性(不允许分包商访问整个源代码树)、任务跟踪等,那么情况就会发生变化。还有三种不同方式的成本问题:许可证成本、维护成本(有些工具非常复杂,实际上您需要有人来控制存储库)和培训成本。

因此,建议一种工具而不是另一种工具就像建议什么是最好的编程语言一样。

只是一些提示:

  • Starteam是我使用过的最简单的工具。它需要很少的培训。自从我要成为维护者以来,我接受了一日培训。这维持在我每周不到30分钟的时间。用户我通过编写两页的手册“训练”了“训练”,然后我有很少的问题要回答。
  • 就易用性而言,Continuus是规模的另一端。另一方面,任务处理非常棒,并且为发布管理提供了良好的支持。问题是,即使作为一名发布经理,我也从未想过发布版本的轻松性(一旦你学会了如何操作,但这需要花费相当多的时间)应该比开发人员所做的日常工作更重要。
  • 合并和分支创建在工具之间大不相同。有些工具使此简单,例如git和clearcase(尽管后者非常慢)一些基本上迫使您手工合并。如果您需要合并很多,那么成本可能会很高。Clearcase在前面提到的所有三个类别中也很昂贵(尽管必须说我们使用了所有不需要的高级内容)。另一方面,GIT缺乏一个好的UI,一些概念与您的习惯不同。GIT的安全功能也缺乏(Gitosis解决了一些问题,但并非全部)。
  • 我使用的大多数工具也很慢。诸如PVC/尺寸之类的工具都很慢,无论是什么(基本的事情)(例如在存储库中打开目录),有些以更具体的方式(例如ClearCase)非常慢。

从我使用过的工具中,如果您的开发人员经验不是很丰富(并且您不介意支付许可证费用,这相当昂贵),我会选择 StarTeam;如果您有一些经验丰富的 vcs 人员可以设置环境,我会选择 git给其他人。Mercurial 看起来也是一个有趣的竞争对手,并且似乎有稍微更好的 UI。

对于几乎所有项目来说,Continuus、PVCS/Dimensions 和 ClearCase 都太慢、太复杂且太昂贵。如果有人坚持选择其中之一,我会选择 ClearCase。

我还没有使用过许多人似乎喜欢的 Subversion(但是,我有一种感觉这将在不久的将来发生变化),所以无法评论它与我使用过的其他工具(通常作为构建和/)的比较。或发布经理)。

至于第一个选择的工具,Git、Bazaar 和 Mercurial 的问题是它们是分布式 vcs。这与拥有中央存储库的传统服务器-客户端模型不同。如果只是学习这些内容,我建议您还阅读有关概念的内容。例如,仅靠自己尝试可能无法正确理解分支(针对不同情况有不同的分支策略)。另外,如果您是唯一访问存储库的人,情况就非常不同,例如合并冲突不会成为问题(您可能会看到它们,但您也可以轻松修复它们,因为您知道两个分支中的代码)。当然,您会了解签出、签入等内容,但我认为这些问题一开始并不是特别困难。

VC 的另一个问题是它们倾向于使用不同的术语。在原本易于使用的 StarTeam 中,由于某种原因,他们坚持使用术语“签出”和“签出并锁定”。大多数人认为后者是前者的作用。这是有原因的(即使没有独占锁,您也可以编辑文件),但调用这些“获取”和“检出”以避免混淆仍然更有意义。

任何东西,但我会自己学习像 git 或 subversion 这样的现代系统。我的第一个 VCS 是 RCS,但我已经掌握了基础知识。

好吧,如果你只是想自学,我会说你应该选择免费的东西,比如 subversion。如果您是一家以前从未使用过源代码控制的公司,那么这实际上取决于您的需求。

我第一次接触的是 CVS,以 WinCVS 作为客户端。太可怕了。接下来是 Subversion,它与 TortoiseSVN 和 Eclipse 集成。这是直觉的,而且是天堂般的。我认为将 CVS 与 TortoiseCVS 和 Eclipse 一起使用也会很好,尽管我更喜欢 SVN 处理修订的方式。每次签入时都会对整个存储库进行版本控制,而不是单个文件。

我还推荐 Subversion。设置不需要太长时间,它是免费的,并且在线有一本非常好的书,其中介绍了基础知识以及一些高级主题: http://svnbook.red-bean.com/

用 tortoisesvn 进行颠覆。(tortoisesvn,因为你可以看到很多视觉上发生的事情,并且将为命令行内容提供一个很好的起点。)有大量的文档,很可能您在职业生涯中至少会看到它。我工作过和面试过的几乎每一家公司都运行SVN。

如果您想在入门时学习商业产品,Perforce 提供免费的客户端和服务器,该服务器支持两个用户和五个客户端工作区。

在我以前的工作地点,它不仅被我们的程序员虔诚地用于代码,而且还用于艺术资产和游戏关卡以及我自己的文档。

Subversion 是一个很好的起点。它是非常稳定和现代的版本控制系统。开始学习 Subversion 的最佳在线资源是 使用 Subversion 进行版本控制. 。就服务器和客户端软件而言,有很多选择。我个人更喜欢(对于Windows环境)。

  1. 视觉SVN服务器

  2. TortoiseSVN shell集成客户端和

  3. AnkhSVN Visual Studio Subversion 附加组件

同样,Subversion 有很多可用选项。此外,它是一个不断发展的版本控制系统(与过时的 SourceSafe 不同)。它可以轻松地与众多自动化构建工具(CruiseControl、FinalBuilder)和错误/问题跟踪系统(JIRA)集成。

如果您正在寻找最先进的版本控制系统,请选择 Git(由 Linus Torvalds 开发)。但如果您对版本控制系统完全陌生,我建议从 subversion 开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top