有关源代码控制工具的行业报告

发布于 2024-08-03 09:57:22 字数 253 浏览 4 评论 0原文

我正在寻找独立行业报告来比较和对比各种源代码控制工具。我特别关心 Clearcase、Sourcesafe 和 SVN,但如果报告包含其他 SCM 系统,那也没关系。

我需要这个工具来帮助那些想要准确了解切换到 SVN(是的,从 Clearcase 和 VSS)可以获得什么好处的客户。换句话说,我可以用它来将其出售给他们的企业。

我希望已经使用这些工具对开发人员的生产力进行了一些案例研究,并免费提供结果报告。

谢谢, 肯特

I'm looking for independent industry reports that compare and contrast the various source control tools out there. In particular, I care about Clearcase vs Sourcesafe vs SVN, but if the report includes other SCM systems that's fine.

I need this for a client who wants to get a feel on exactly what they stand to gain switching to SVN (yes, from Clearcase and VSS). In other words, something I can use to sell it to their business.

I'm hoping some case studies have been done on developer productivity with these tools and resultant reports made freely available.

Thanks,
Kent

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

So要识趣 2024-08-10 09:57:22

当我第一次开始在一家没有源代码控制的公司工作时,我寻找类似的东西(哎呀)。当时的开发负责人基本上只会考虑微软的东西,而小开发团队中唯一有过SCC经验的人也只用过SourceSafe。

我拥有大量使用 SVN 的经验,所以不可否认我有相当的偏见,但我确实尝试对 SVN、VSS 和 TFS 进行评估。除了那些将 VSS 与根本不使用源代码管理进行比较的人之外,我确实很难找到任何关于 VSS 的积极信息。


Sourcesafe

  • Visual SourceSafe:微软的源代码销毁系统

    • 摘自文章:
      • SourceSafe 缺乏可用的分支支持 [..] SourceSafe 的合并支持与签入紧密集成,这使得在将建议的合并签入树之前很难检查差异和测试建议的合并。凭借这种较弱的支持水平,很容易将无法运行的代码签入版本控制系统。
      • 更新本地工作区以匹配服务器时,应引起您注意在服务器上删除的文件。 (或者删除,因为可以从修订控制系统中检索旧版本。)如果不这样做,项目中可能会使用过时的文件,这通常会导致问题。 [..] SourceSafe 无法删除过期文件或提供任何警告。
      • SourceSafe 的基本设计假设客户端是值得信赖的,始终正常运行,并且没有任何干扰导致数据损坏的通信。因此,SourceSafe 很脆弱且不值得信任。我曾在 SourceSafe 从事过三份不同的工作。在每种情况下,SourceSafe 数据库最终都会被损坏。数据已损坏,工作已丢失,时间已浪费在解决问题上。
  • Visual SourceSafe 版本控制:任何速度都不安全?

    • 摘自文章:
      • 当人们使用创建和开发源文件、在给定里程碑签入文件、标记项目等等的简单循环时,SourceSafe 似乎可以合理地工作。然而,许多简单的操作会导致软件以各种微妙的(有时是不微妙的)方式失败。 ''已删除的文件可以轻松地从数据库中清除,从而防止重建项目的早期版本。 ''
      • 用户可以合理地预期 Destroy 命令会从用户的硬盘驱动器中删除文件的当前工作版本。用户也可能合理地期望 Destroy 命令会从项目的当前版本中删除该文件。用户可能没想到该文件会从项目的所有早期版本中删除。
  • CodingHorror:源代码控制:除了 SourceSafe 之外的一切

    • 摘自文章:
      • SourceSafe 在 90 年代末期是一个完全足够的源代码控制系统。不幸的是,SourceSafe 从未在架构上进行更新以反映现代源代码控制实践。即使是最新版本 SourceSafe 2005,也绝对带有 1999 年的味道。
      • SourceSafe 给您带来安全和可控的错觉,同时让您的项目面临风险。
      • SourceSafe 教会开发者坏习惯:避免分支、独占锁、简单的永久删除。
  • http://www.wadhome.org/svn_vs_vss.html

  • 来自 http://svn.haxx.se/users/archive-2006-11/0242 .shtml

    • 默认情况下,VSS 在处理文件时使用锁定。如果用户签出(锁定)文件,然后离开公司或休假 2 周,则管理员必须手动解锁该文件(如果其他人需要处理该文件),当其他人回来时,您就必须手动解锁该文件。你手上的合并一团糟。根据我的记忆,合并并不是很好。

简短的 VSS 与 SVN(取自 http://better-scm.berlios.de/comparison /comparison.html):

  • VSS 不是原子的 - 如果网络出现故障、断电(在服务器或客户端上)等,存储库就会损坏。 SVN 是原子性的,要么整个更改都会进入,要么
  • VSS 不会锁定文件 - 多人无法同时处理同一个文件
  • VSS 中的更改是特定于文件的。 SVN 可以将多个文件中的更改作为一个“更改集”提交。
  • VSS 不跟踪每行的更改。使用 SVN,可以看到谁最后更改了一行,以及哪个版本(“svnblame”)

Subversion

非常简单的源代码管理系统。跟踪更改,使用更新-合并-提交模型,该模型允许多个开发人员同时处理同一个文件,并且 subversion 自动合并他们的更改(如果可能)。没有“魔法”发生。

通过 TortoiseSVN 集成到 Windows/Explorer。通过 VisualSVN 集成到 Visual Studio(50 美元/开发人员) - 这实际上只是 TortoiseSVN 的前端。

与许多第三方工具集成,例如:

Svn 缺点:

  • 没有内置合并跟踪(跟踪哪些变更集已被合并)从例如开发分支合并到稳定分支)
    • 可以使用 svnmerge / svnmergegui
    • 从 SVN 1.5 开始,具有内置合并跟踪
  • 缺少“搁置”功能
    • 允许某人处理某件事,并将其“搁置”到存储库中(而不使其成为项目的一部分),以便其他开发人员可以取用。
    • TFS 有这个
    • 可以使用补丁或创建单独的分支来近似此功能。

Team Foundation Server (Visual Studio Team System)

使用 SQL 服务器作为后端(因此它是可靠的)。拥有一套内置的工具,用于错误跟踪、项目规划、持续集成。


我的超级快速总结:

  • VSS 很糟糕
  • TFS 似乎非常有用/有能力,但是一旦您的团队超过 5 人,
  • 就会相当昂贵 SVN 可用且经过充分验证,并且没有任何成本

这对我们来说 - 可能的好处TFS 不值得付出巨大的额外成本。

无论如何,我写这篇文章已经是几年后的事了。原来的负责人已经不在公司了,我现在是开发经理,我们的团队规模扩大了三倍。我们使用 SVN、VisualSVN + TortoiseSVN 和 Trac 的组合。我认为开发人员中的任何人都无法想象不再使用这些工具。每个人都能够很快地掌握 SVN,也许除了分支之间的合并之外,有些人仍然对自己做这件事没有信心。


Jeff Atwood(stackoverflow 的创建者)在他和 Joel 的一个播客中讨论了 SVN:https://blog。 stackoverflow.com/2008/06/podcast-10/

I looked for something similar when I first started working at a company that did not have source control (yikes). The person in charge of development at the time would basically only consider Microsoft stuff, and the only other person on the small dev team that had any SCC experience only had used SourceSafe.

I've had a ton of experience with SVN, so admittedly I'm quite biased, but I really did try to do an evaluation of SVN vs VSS vs TFS. I really had trouble finding anything positive about VSS, other than by people who were comparing it to not using source control at all.


Sourcesafe

  • Visual SourceSafe: Microsoft's Source Destruction System

    • From article:
      • SourceSafe lacks usable branching support [..] SourceSafe's merge support is tightly integrated with checking in, making it difficult to examine differences and test the proposed merge before checking it into the tree. With this weak level of support, it's easy to check non-functioning code into the revision control system.
      • When updating your local workspace to match the server, files which were deleted on the server should brought to your attention. (Or deleted, since the old version can be retrieved from the revision control system.) Failure to do so risks out of date files being used in your project, often causing problems. [..] SourceSafe fails to delete the out of date file or provide any warning.
      • SourceSafe's fundamental design assumes that clients are trustworthy, always function correctly, and that nothing interferes with the communication causing corrupted data. As a result, SourceSafe is fragile and untrustworthy. I have worked with SourceSafe at three different jobs. In each case, eventually the SourceSafe database became corrupted. Data has been corrupted, work has been lost, time has been wasted on the problem.
  • Visual SourceSafe Version Control: Unsafe at any Speed?

    • From article:
      • SourceSafe seems to work reasonably when one uses a simple cycle of creating and then developing source files, checking the files in at given milestones, labeling the project, and so on. However, many simple actions cause the software to fail in various subtle (and sometimes unsubtle) ways. ''A file that has been deleted may easily be purged from the database, preventing previous versions of the project from being rebuilt. ''
      • A user could reasonably expect that the Destroy command deletes the current working version of a file from the user's hard drive. A user might also reasonably expect that the Destroy command deletes the file from the current version of the project. The user might not expect that the file is deleted from all previous versions of the project.
  • CodingHorror: Source Control: Anything But SourceSafe

    • From article:
      • SourceSafe was a perfectly adequate source control system in the late 90's. Unfortunately, SourceSafe was never updated architecturally to reflect modern source control practices. Even the latest version, SourceSafe 2005, absolutely reeks of 1999.
      • SourceSafe gives you the illusion of safety and control, while exposing your project to risk.
      • SourceSafe teaches developers bad habits: avoid branching, exclusive locks, easy permanent deletions.
  • http://www.wadhome.org/svn_vs_vss.html

  • From http://svn.haxx.se/users/archive-2006-11/0242.shtml:

    • VSS by default uses locking when working with files. If a user checks out (locks) a file, then leaves the company or goes on vacation for 2 weeks, an administrator has to manually unlock the file if someone else needs to work on it, and when that other person comes back, you've got a merge mess on your hands. Merging is not terribly good from what I recall.

Short VSS vs SVN (taken from http://better-scm.berlios.de/comparison/comparison.html):

  • VSS is not atomic - if network goes down, power goes out (on server OR client), etc, the repository is corrupted. SVN is atomic, either the entire change gets in, or none of it does
  • VSS locks files - multiple people cannot work on the same file at the same time
  • Changes in VSS are file-specific. SVN can commit changes in multiple files as one "changeset".
  • VSS does not track per-line changes. With SVN it is possible to see who last changed a line, and in which revision ("svn blame")

Subversion

Very simple source code management system. Tracks changes, uses a update-merge-commit model, which allows multiple developers to work on the same file at the same time, and subversion automatically merges their changes (when possible). No "magic" happens.

Integration to Windows/Explorer via TortoiseSVN. Integration to Visual Studio via VisualSVN ($50/developer) - which is really just a front-end to TortoiseSVN.

Integrates with many 3rd party tools, eg:

Svn Cons:

  • No built-in merge tracking (keeping track of which changesets have been merged from eg, development to stable branch)
    • Possible with svnmerge / svnmergegui
    • As of SVN 1.5, there is built-in merge tracking
  • Missing "shelve" feature
    • Allows someone to work on something, and "shelve" it into the repository (without making it part of the project) where other developers can pick it up.
    • TFS has this
    • Can approximate this feature using either patches, or by creating a separate branch.

Team Foundation Server (Visual Studio Team System)

Uses SQL server as a backend (so it's reliable). Has a built-in set of tools for bug tracking, project planning, continuous integration.


My super-quick summary:

  • VSS sucks
  • TFS seems very usable/capable, but quite expensive as soon as your team grows past 5 people
  • SVN is usable and well-proven, and has no costs

What it came down to for us - the possible benefits of TFS were not worth the huge extra cost.

For what it's worth, it's now a couple years later since I wrote this. The guy who used to be in charge is no longer with the company, I'm now the development manager, and our team is 3 times as big. We use a combination of SVN, VisualSVN + TortoiseSVN, and Trac. I don't think anyone in dev could imagine not using these tools anymore. Everyone was able to pick up SVN very quickly, with maybe the exception of merging between branches, which some are still not confident about doing on their own.


Jeff Atwood (creator of stackoverflow) discusses SVN a bit on one of his and Joel's podcasts: https://blog.stackoverflow.com/2008/06/podcast-10/

我很坚强 2024-08-10 09:57:22

有很多地方可以相互比较,但它们几乎总是偏向于一种系统。

以下是我过去使用过的一些比较。
better-scm
动态比较网站
维基百科

维基百科网站实际上非常全面且易于阅读。

There are SO many places to compare one to another, but they almost always are biased toward one system.

Here are some comparisons I've used in the past.
better-scm
A dynamic comparison site
wikipedia

The Wikipedia site is actually quite thorough and easy to read.

反差帅 2024-08-10 09:57:22

Forrester Research 每隔几年就会发布一份报告。 IBM 引用了 2007 版本,并且CollabNet颠覆

Forrester Research puts out a report every few years. The 2007 version is cited by IBM and CollabNet, the people behind Subversion.

沧桑㈠ 2024-08-10 09:57:22

我们在工作中使用 SVN 已经大约一年了(来自 on-high)。我只能说,如果你想做合并,远离长杆SVN。严重地。这是有害的。对于基本的源代码控制来说就很好了。随着合并,它变成了一场噩梦。并且不要告诉我我们用错了它。我们已经尝试了一切。它只是没有被开发来正确地进行合并。但如果你决定这样做,我祝你比我们好运。

we've been using SVN at my work for about a year (dictated from on-high). All I can say is, if you want to do merging, stay away from SVN with a long pole. Seriously. It's detrimental. For basic source control it's fine. With merging, it becomes a nightmare. And don't tell me we are using it wrong. We've tried everything. It's just not developed to work properly for merging. But if you decide to do it, I wish you better luck than we've had.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文