30

有人使用 Accurev 进行源代码控制管理吗?我们正在(最终)从 StarTeam 切换到 Accurev。

我最初的印象是 GUI 工具严重缺乏,但是底层引擎和分支作为流的概念令人难以置信。

我们面临的最大困难是评估我们自己的与 Starteam 接口的 DIY 工具,或者用 DIY 新工具替换它们,或者寻找和购买合适的替代品。

此外,是否有人使用 AccuWork 组件进行问题管理?Starteam 有一个非常好的变更请求系统,而 AccuWork 并没有与之匹配。我们正在评估使用 Accuwork 或购买 JIRA 等第 3 方包。

意见?

4

26 回答 26

62

甜蜜的上帝之母是Accurev可怕的。30万行代码?与数百名开发人员一起参与数十个项目的数百万人一起尝试。

持续集成?当然,开发人员可以通过在 perforce、git、mercurial 或其他任何实际完成工作的工具中进行常规合并来近似实现这一点,但开发人员可以选择如何进行。对于建筑师、主管、构建工程师或任何实际使用源代码控制进行切片和切块的人来说,Accurev 是可怕的。

我参加了一个“高级 Accurev 主题”演讲,第一个花絮是一个大型 shell 命令,用于清除 Accurev 的客户端缓存/同步机制,以纠正 Accurev 更新何时静默无法下拉应更新的文件。

时间戳优化复选框?深度重叠?只有一个后台进程的模态对话框? (如果这些过程不是冰川过程,那就没问题了。) 选择性配置流的级联图只是为了能够拉出组件和交叉合并?如果没有时间锁定,更新实际上不是原子的?!(老实回答:再次更新)

每次我尝试在 Accurev 中做任何严肃的事情时,我都觉得我正在用 HAL9000、Skynet 和 Speak & Spell 在一张桌子上玩俄罗斯轮盘赌。在线上?我的生命还有四个小时。

为什么我在这里,抱怨Accurev?因为我的另一台机器花了整整四个小时来尝试通过 VPN 更新 10MB 的文件。为什么?因为其他一些变化已经搁浅,需要对元素进行某种灾难性的重新同步扫描。最糟糕的部分?所有这些文件都位于同一台计算机上的工作区中。我们谈论了几个小时,只是为了让最近更新的工作区达到我可以在流历史记录中放置正确缺口的程度。

一字Accurev评论:避免

于 2011-03-08T07:30:32.030 回答
57

老实说,我觉得我需要仔细检查一下我是否使用与这些似乎喜欢 Accurev 的人相同的工具。我在以前的工作中使用过 Subversion,并且非常喜欢它。我们从来没有遇到过任何问题,当然价格也合适。我对 Accurev 最大的问题是,他们似乎觉得有必要为了不同而不同。它使用完全不同的词汇来表达版本控制概念,即使在使用了将近 6 个月后,我也觉得很陌生。任何给定文件可以处于的状态不少于 8 或 9 种,而 Subversion 的状态大约只有 1/2 左右。GUI 很糟糕而且很慢,而且 IDE 集成插件低于标准。我曾假设在某个时候我会“获得”Accurev,看看为什么它会好得多,但这还没有发生。

于 2008-12-23T18:21:38.613 回答
30

我已经使用 AccuRev 九个月了,我焦急地等待着不再使用它的那一天。我的一条评论是:

这就像开发人员编写的源代码控制,他们在书中读过它,但以前从未真正使用过它。

  1. 基本概念缺失或极其复杂。例如,我刚刚失去了 8 个小时的工作,因为一旦更改进入流中,就没有好的方法可以“恢复”更改。您可以“清除”该交易 - 但它已经消失了,您无法选择您真正想要的更改。

  2. GUI 缓慢、臃肿且不一致。警告是神秘的,例如“错误合并元素 id 1234556”。每个对话框都是模态的。正如一位海报所说,一个文件可以处于 9 种状态 - 但更重要的是,您必须手动单击包含 9 个选项的列表框才能查看每个文件的设置。

  3. 流模型听起来是个好主意,但从父流“继承”更改的默认行为实际上在实践中非常糟糕。只需对真正使用 AccuRev 的人说“深度重叠”一词,然后看着他们颤抖、脸色苍白和/或昏厥。制作流非常容易,但实际上将它们与任何有意义的差异合并是神秘的和不确定的。

  4. 没有人提到这一点,但是管理文件和目录过滤器的“包含/排除”规则的整个系统被完全破坏了。该系统位于事务系统之外,因此无法恢复、跟踪历史记录或重现对实时源流的更改 - 例如,当 Johnny Intern 认为“核心”库对整个开发团队没有用时。

我可以解释 Accurev 受欢迎的唯一原因是它针对“演示到管理”案例进行了优化。我们将 AccuRev 用于严肃的软件开发 - 数十个项目和更多的开发人员。流和 GUI看起来很棒,但几周后使用清漆脱落,露出旧的、破败的、机械土耳其人式的系统。

远离 Accurev - 如果您想要现代且免费的东西,请使用 Git 或 Mercurial,如果您想要坚如磐石、支持良好但价格昂贵的东西,请使用 Perforce。

编辑:作为后记,这里是 UI 中缺乏关心和普遍粗制滥造的众多例子之一:

默认差异查看器的编号为“减一” - 例如,如果您在文件中有 2 个差异 - 查看器显示差异“0 of 1”和差异“1 of 1”。我的意思是,真的,您是否愿意将您的代码信任给一个表现出如此愚蠢且易于修复的错误的系统。

于 2011-02-01T00:09:19.753 回答
16

最近我在 AccuRev 上工作(和管理)一年多了,我的大部分印象都非常好。

我们与“Plastic SCM”、SVN 和“ClearCase-UCM”(我们已经拥有并使用过)一起对其进行了评估,并决定放弃 ClearCase 和 SVN(两者都用于两个不同的组)并购买 AccuRev。

  1. 首先,流架构比所有其他工具所依赖的旧分支架构更加可靠、简单和安全的 SCM 方法(是的,甚至 ClearCase 的“流”最终也是分支的包装器)。有很多关于他们网站差异的文章,您可以搜索并阅读它以使其易于理解。(试试这个链接,还有这个

  2. 时间安全架构 -您不能从 depots (=repositories) 数据库中删除任何内容。我看到使用适当的管理员权限可以进行此操作的工具。在 AccuRev 中,您将使用内部命令来更改或修复您犯的错误,这反过来也将被记录为新事务。很聪明很安全。

  3. 集成!AccuRev 集成了很多工具(为您提供 ALM 捆绑包) - 错误跟踪工具(如 JIRA、ClearQuest)、IDE、测试工具(质量中心),如果找不到,您可以自己编写(它们提供 Java /Perl/XML/CLI SDK)

  4. Change Package,我不了解你,但我无法忍受不提供变更管理的 SCM 工具(有人说 SVN 吗?),例如 ClearCase“活动”和 AccuRev 的“问题”。我认为这是必须的,也是我的 CM“最佳实践”之一。它们也可以与您的错误跟踪工具集成,因此您的用户可以处理诸如功能和缺陷之类的实际任务。

  5. 支持真是太棒了. 作为 IBM 的前客户(因为 Rational ClearCase 现在是 IBM 的一部分),向 AccuRev 的转变简直太棒了。在评估期间,他们提供了大量在线支持,以了解我们希望该工具如何为我们服务,因此我们甚至在支付一分钱之前就对其进行了调整。在评估期之后,他们也保持了这种程度的响应;我们在从 4.5.4 升级到 4.6 的过程中遇到了一些问题,在短短几个小时内(升级仍在进行中),支持人员联系了我,提出了一些建议,连接到我的桌面并最终解决了问题在任何其他公司的支持甚至开始试图弄清楚你是谁之前。当然,如果你选择开源工具而不是你自己!该工具还带有帮助系统,有时甚至可能过于冗长。并且不要cmcrossroads)在提供快速答案方面也非常出色。

  6. 还有更多......

当然也有缺点(哪个软件是完美的?) - 例如,我想在签入期间查看文件 <-> 问题关联,就像在 ClearCase 中一样,而不仅仅是在“促销”就像今天一样-但恕我直言,它们确实很小。

所以,正如您所理解的,如果您通读所有内容,我是 AccuRev 的忠实粉丝,我强烈推荐它。恕我直言,它是今天您有机会使用的最好的 SCM 工具之一;现代、明智、轻松和强大。

于 2008-10-06T08:08:37.437 回答
16

我目前的客户将 Accurev 用于 SCM,并且在使用了 Git 或 Mercurial 等 DVCS 的几个项目之后,老实说,使用 Accurev 就像在车门里闭上脸一样令人愉快。

Mac 和 Linux 的 GUI 非常慢。如果您使用 Accurev,您可能会忘记在 IntelliJ 或 NetBeans IDE 中使用重构支持……除非您要编写自己的插件。

哦,是的...我们不要忘记这个小栗子 ==> 邪恶的双胞胎。

积极的一面是,情况可能更糟……可能是 Clearcase。

于 2010-10-14T20:41:02.937 回答
15

Accurev糟透了!以团队的生产力为代价,这过于复杂了。我与几个 SCM 合作过,accurev 的想法很棒但不实用。它是 Merge Hell,其层次结构在 UI 中看起来不错,但在现实生活中却很难处理。特别是当你重构你的代码(有些人实际上每隔一段时间都会这样做)并且当一个失效的文件没有一直提升时你会陷入混乱。或者更糟糕的是,如果其他人覆盖了已失效的文件并创建了一个具有相同名称的新文件....等等

用户界面非常糟糕。老实说,您认为后端有多好并不重要。您仍将使用 UI(我使用 VS 插件,除了它有时会冻结 IDE 之外,它还不错,很好啊!)。

如果您生活在 80 年代,并且计划在日常使用中使用命令行,那么我想您可以避免使用 UI。如果您有一个集成构建服务器,那么您当然别无选择,只能使用命令行(我所知道的 MSbuild/ANT/NANT 没有本机任务)。我刚刚听说他们正在与http://www.electric-cloud.com/合作。对它还一无所知。

Accurev 是新的,因此与 svn 相比,在线资源很少,您会发现数百人完成的大量集成工作(例如 jira)。

如果你是经理。Accurev 会让你在看流时感觉很好,因为只要你不需要处理它,它看起来确实很漂亮。

如果您是开发人员,(初级开发人员不会太在意,他/她会做任何您要求他们做的事情)

如果您是架构师,进行大量重构,重新解决架构决策……等等,您会发现 accurev 是您最大的敌人,移动东西是痛苦的。如果你问我,非常反敏捷。不是液体。。

如果您是一名构建工程师,您会发现让所有开发人员进入一个程序很痛苦,如果您使用 accurev,您将不得不这样做(例如,将他们的代码提升到商定的流以准备发布).. ..

CRM 应该让事情变得更容易......我不认为 Accurev 在这一点上这样做......它还不够成熟,如果你想成为一个先驱者并为希望事情变得更好而奋斗......去吧。 . 否则,不要重新发明轮子,而是使用更多案例研究和应用程序更成熟的东西。因为实际上,当你每天处理它的痛苦时,accurev 声称提供的不同是不值得的......

于 2008-09-29T18:01:20.557 回答
14

我们已经使用 AccuRev 几年了。这是对我们上一个工具(Razor)的重大改进,虽然我会向其他人推荐它,但它确实有一些缺点。

好处:

  • 基于流的界面非常直观。我每两周制作一次快照,并且有许多正在进行的开发流从快照中分支出来。
  • 在流之间移动更改非常简单,只需选择更改,将其发送到“更改调色板”并选择目标流。它指导您完成所有需要合并的文件。
  • 命令行实用程序很棒。我们已经设法围绕它编写了大部分发布版本的脚本。
  • Visual Studio、Bugzilla 等的集成...

缺点:

  • 正如 monjardin 所指出的,客户端 GUI 可能很慢。我使用 Windows 版本进行所有历史记录/流搜索,因为它比 X11 快得多。当然,GUI 是用 Java 编写的,因此性能显然不是他们首先关心的问题。
  • 对于真正的大型数据库(我说的是超过 300,000 LOC),它开始变慢,尽管他们显然已经在今天的 4.7 版本中解决了这个问题。

我们选择使用更便宜的许可证,而不是获得变更包功能(无论如何,我看不出它们运作得那么好,因为促进个人变更的整个想法在面对持续集成时飞速发展)。到目前为止,它还没有伤害到我们。

总的来说,对于您支付的价格,它是一个不错的工具。我们在试用期间评估了 ClearCase、MKS、Spectrum 和 Subversion。Subversion 可能是一个不错的选择,但在我们评估时它仍然很环保。我以前从未听说过 Plastic,但我很遗憾没有评估 Perforce。

另外,我知道 Trolltech 的工程师(Qt 的制造商)最近转向了 git。我也有兴趣检查一下。

于 2008-08-21T05:12:21.127 回答
13

我们已经使用 AccuRev 4 年了。我非常讨厌它,主要是因为它可怕的 GUI。几年前,AccuRev 向他们的客户发送了一份调查问卷,调查结束时有一个包含建议的字段。我开始收集最让我烦恼的东西,下面你会发现我现在拥有的东西。不幸的是,它充满了 AccuRev 术语,但我想你还是会明白的。


Accurev GUI 可能的改进

处理历史

在检查历史记录时,开发人员最常希望查看与先前事务/版本的差异。这应该像双击一样可访问。例如,双击事务日志中的文件可以打开与以前版本的差异。双击默认组过滤器中的文件可以打开 diff to backed,双击修改搜索中的文件可以打开 diff to most recent。这将节省大量时间。

常见的经验是开发人员很少从 AccuRev 中打开文件进行编辑。相反,他们经常比较文件,然后恢复或促进更改。所以双击不应该打开文件进行编辑,而是应该区分它们。这可能是首选项中的一个选项,因此不同的人可能会决定他们是要双击来区分文件还是打开文件。

应该可以在流或工作区历史记录中选择两个事务并在它们之间执行文件差异。

重叠合并

合并流中的重叠需要在工作空间中执行“深度重叠”搜索,这比在特定流中搜索重叠需要更多时间。然后需要按重叠流对重叠进行排序,并仅合并来自特定流的重叠。应该有更方便的方法来在流中执行合并重叠。例如,通过特定流限制深度重叠搜索并且不在父流中显示重叠的能力。如果您是该时间锁定流下的多个流或根本没有父级上的时间锁,则通过时间锁定流限制深度重叠搜索不是很有用。

现在有一种涉及创建更改调色板的简化方法,但仍然不方便。如果该流下有可用于重叠合并的工作区,则合并菜单项应在流级别可用。

注释工具

注释工具很别扭:

  • 使用顶部的滑块浏览不同的版本会重置文件中的位置,这对于大文件来说非常烦人;
  • 应该能够直接从注释工具打开特定事务的历史记录。现在开发者需要记住 transaction# 并在流历史中搜索它(还需要搜索进行交易的流)。

流收藏夹

引入新的流收藏夹时,删除了上下文菜单项“添加到流过滤器”。应该可以右键单击流并将其添加到流收藏夹之一(第二级上下文菜单,或者可能会弹出对话框)。现在编辑流收藏非常烦人,特别是当您需要拥有 2 组相似的流时。

流浏览器

将流名称复制到剪贴板应该很容易。现在您需要为此打开“更改流”对话框。流浏览器中的 Ctrl+C 可以将选定流的名称复制到剪贴板。无法从流视图中复制流名称。右键单击选项卡可以在剪贴板中复制流名称,或者在其中显示带有“将流名称复制到剪贴板”项的上下文菜单。

差异和合并工具

仅显示行中的第一个不同字符,而不是整行差异,不突出显示语法。幸运的是,差异工具可以很容易地切换到外部工具,所以这是次要的。

其他建议

  • 默认情况下,首选项中的选项可启用多列排序模式。
  • 不仅可以保存最新的保持/升级日志,而且至少可以保存 5-10 个旧日志。
  • 流或工作区视图中的文件扩展名列能够对其进行排序会很棒。
  • 重新排序标签会很好。
  • Windows 下保持/提升/锁定消息中的字体非常小,不可读。增加字体大小或允许用户更改它。
  • 实现更方便的方式来本地忽略文件,环境变量不是很有用(用户可能希望忽略不同流/库中的不同文件集)。

在过去的 3 年里,AccuRev 从这个列表中添加了 3 件事(我删除了它们,因为它们已经实现了):

  • 大多数操作的硬编码(无法自定义)键盘快捷键
  • 可以一次从事务中调用多个文件的差异(在此之前,必须右键单击每个文件并从上下文菜单中调用“与先前版本的差异”。
  • 在注释工具中添加了文本搜索。但是由于在您尝试切换到不同版本时会重置位置(见上文),注释工具仍然无法使用。

除了 GUI 之外,AccuRev 总体上还存在根本缺陷:

很难向后更新

您不能轻易向后更新。有accurev update -t <transaction-number>命令,但是如果你更新到事务 100,你不能使用accurev update -t 95. 为此,您需要在支持的流上设置时间锁定(这将在 AccuRev 中引入事务)并更新您的工作区。

深度重叠

当您更新时,您可能碰巧有无效的源状态,恕不另行通知。这是因为重叠功能。重叠基本上是一种冲突(当您和他们都更改文件时)。如果您的工作区中有重叠,则需要在允许更新之前将其合并。但是,如果您在具有工作空间的流中存在重叠,您将不会对此有任何通知,但重叠文件不会在您的工作空间中更新。考虑以下流结构

[Depot Root] <- [Team stream] <- [Your stream] <- [Your workspace]

假设您将其更改foo.cpp并提升为[Your stream]. 之后,您团队中的某个人同时更改了foo.hfoo.cpp,假设为类添加了方法Foo,并将文件提升为[Team stream]. 更新工作区后,您将获得新版本foo.h(因为您没有更改它),但您不会获得foo.cpp,因为它重叠在[Your stream]. Foo::NewMethod因此,您的更新将变得干净,但如果您尝试在此之后构建,链接器会抱怨未解析的符号。

于 2013-01-30T17:06:15.927 回答
12

我是 Accurev 的长期用户,并且最近转到了我正在使用 Perforce 的工作。我得告诉你,我希望我有 Accurev 回来。我同意 - 用户界面很慢并且有问题。

然而,那里有一些真正令人敬畏的可视化工具。我不敢相信有人会看版本历史浏览器而不爱上它!流浏览器是一个非常简单的工具,可以帮助您了解您的开发组织中正在发生的事情。

此外,污垢易于管理。Accurev 实际上是我最喜欢的工具之一。

于 2008-10-06T23:40:35.540 回答
12

我在目前的工作中度过的最好的日子之一是我们放弃 Accurev 并搬到 Subversion 的那一天。Accurev 使用了过于复杂的概念。就像上面的一位评论者一样,在使用了多年之后,我仍然不了解工件可能处于的不同状态。似乎 Accurev 最大的资产是它的白皮书和流可视化,这两者都对管理层很有吸引力但对开发人员没有任何作用。我在各种项目中使用 Subversion、Mercurial 和 Git,并且会推荐这些工具而不是其他任何工具。

于 2009-11-17T20:24:15.490 回答
11

Accurev 是反敏捷工具:

  1. Accurev 的主要思想是为不同的团队使用不同的流,因此,team1 所做的更改不会影响 team2。

    听起来不错,但在现实世界中,我们都知道最后我们必须合并两个团队的代码,相信我,这对 Accurev 来说是一场噩梦。两个团队在他们的流中进行的更改越多,每个人最终将花费更多的时间进行合并。

    如果每个团队都使用 SVN 在单独的分支中进行开发并在开发 1 个月后尝试合并所有内容,那也是一样的......基本上 Accurev 会创建延迟合并价格,如果您愿意,您将永远为此付出代价Accurev 超过 1 个团队。

  2. 为了解决第 1 点造成的问题,人们决定拒绝跨职能团队,转而支持职能。他们甚至提供论据来支持这一想法,例如“知识专长”原则。

    换句话说,当您没有跨职能团队(以及敏捷)时,更容易拥有系统特定部分的专家,因此他们将更好地执行代码审查并充当“信息/设计/实施专家”。

    我们都知道,信息专家不仅在敏捷中是一种反模式,因为最好将专业知识传播开来,以避免开发中的知识瓶颈。

于 2012-04-10T19:22:06.630 回答
8

Accurev 的另一个大拇指。每一个简单的操作似乎都变得如此复杂——神秘的错误消息让你分散到手动,只找到关于最初不应该存在的概念的理论解释。

UI是如此缓慢且反应迟钝,以至于您想挖出自己的眼睛。

远离。

于 2010-05-16T14:46:50.520 回答
8

把我放在反Accurev阵营。我们最近搬到了那里,这太可怕了。我们有许多相当大的项目,而 Accurev 似乎对于我们拥有的文件数量几乎无法使用。通过VPN,忘记它。更新需要很长时间,跨流管理不能以任何直观的方式工作,UI 复杂且缓慢。

此外,我们使用的许多工具对它的支持要么不存在,要么实施不善。

加上不断出现的各种错误,我想说我们浪费了很多钱来做一些开源软件做得更好的事情,比如 Subversion。我们仍然在一些项目中使用 CVS,即使它对于正常的操作和工作流程要好得多,我会选择它而不是 Accurev。

于 2010-02-26T14:51:08.277 回答
8

Accurev 有一些很棒的概念。但遭受:
1)命令行界面中的许多不一致。
2)应用程序/界面中的许多错误和麻烦。例如,它们的时间安全属性实际上根本不是时间安全的,因为有几个影响快照和传递流的错误。
3)至关重要的功能中的主要错误......如上所述;时间安全的错误;按问题合并的错误。3)他们落后了一年,因为他们浪费了整整一年的时间来尝试将后端移动到数据库 - 这将是版本 5,可能永远不会出现。
4)营销优秀;但产品没有辜负营销炒作
5) 每个版本都有重大的严重错误,要求他们立即发布修补程序。这对我们来说是一个重大的破坏。这些都不是小错误。
6) 不能很好地扩展...占用大量磁盘空间并且随着时间的推移变慢

说了这么多;它仍然是一个好产品;但如果我要再做一次,我会考虑使用 git。

于 2011-01-19T04:17:17.810 回答
6

4个月后,我非常消极的看法根本没有改变。虽然 Accurev 有一些非常好的概念,但速度慢和复杂性远远超过了优势,至少对我们来说是这样。除了对 GUI 的常见抱怨和许多功能的晦涩难懂之外,绝对最烦人的错误之一是您必须跳过多少圈才能更新工作区,而无法仅更新一个目录使情况变得更糟(或目录树)。

典型的更新包括等待很长时间才能被告知您有重叠。当然,您不会被告知重叠是什么。所以,你必须做一个重叠搜索,再等很久,解决重叠,再做一次更新,再等很久,希望这次能成功。

我们的一些远程开发人员尽可能不频繁地更新,因为通过 VPN 的更新时间是荒谬的。诚然,我们在许多产品中拥有大量源文件,如果我们重新组织所有内容,我们可能会提高性能。

然而,我们聘请了 Accurev(以高昂的成本)来告诉我们如何设置一切。还是很烂。除此之外,我们真的不应该重新组织我们使用源代码的方式以适应源代码控制系统。它是一种工具,而不是一种商业模式。

最后,我们一直在尝试由 Accurev 编写的 IntelliJ Accurev 插件。它的工作原理和其他的一样糟糕,而且,虽然 Accurev 对修复插件非常敏感,但我们不是他们的 QA 组,也没有注册成为 alpha 测试站点(是的,它就是那个错误)。我们最终放弃并编写了我们自己的真正有效的插件。

于 2010-06-29T15:31:45.147 回答
5

Accurev 简直是我用过的最糟糕的工具。

Subversion 非常好,特别是如果你从 cvs 迁移。

于 2010-06-02T13:49:09.390 回答
5

在以前的雇主中,我们审查了 Accurev 和 Plastic SCM。归根结底,Accurev 的界面或所谓的“流”并没有给我留下深刻的印象。我们选择了塑料,没有人抱怨。

@Jonathan流很有趣,但是当两个人在同一个文件中触摸相同的代码时,我看不到任何版本控制如何神奇地避免冲突。Accurev 的模型很吸引人,但归根结底,漂亮干净的分支和与非常简单的界面合并使 Plastic 成为我们的选择。Plastic 的时间线视图(我忘记了实际名称),显示了分支/合并/签入历史,使得从鸟瞰图查看项目历史变得非常简单。

于 2008-08-21T02:17:39.843 回答
5

@史蒂夫

界面很糟糕......但是流模型非常创新。

能够从主干流中为一个新项目创建一个流,并让 5 个开发人员在其上工作,并且当我们将该流合并回主干时没有任何形式的合并冲突是闻所未闻的,但它在准确的。

于 2008-08-21T02:21:18.213 回答
5

My company ha been using Accurev since early 2010, coming from StarTeam before that and CVS in the very distant past. I haven't used CVS (having been on a different team at the time) so I have no comparisons there, and I never bothered to learn StarTeam too intimately.

Since then I've also played with both the CLI and Tortoise versions of SVN, Git, and Mercurial (Hg) in my free time. I plan on giving Git a more thorough go at some point, but I found Hg to be much more intuitive and easy (at least under Windows). Anyway, like I said management saddled us with Accurev and after spending time to get fairly well acquainted with it (GUI and CLI both) as a developer... I absolutely hate it.

Someone earlier in the thread summed it up as software written by devs that had read about SCM in a book but never used it... I agree whole-heartedly but you also get the feeling that they had the same level of experience with GUIs, efficient processing, etc. (In fact, I see that Accurev has a new product called "Kando" based on Git...sounds like they've finally realized how bad their model is. But to quote a coworker "I wouldn't trust anything written by the same team at this point"... I have to wonder if it is a coincidence that there is a baby-wipe product named "Kandoo"...)

Ok, obviously I don't care for the product. If you've spent the time to read this thread, then obviously there are quite a few folks with similar views on it. But I wanted to share some of my own gripes that I've had with it over the last few years as well -- btw if it helps anyone, I think we were using v4.7 previously and have been on v5.3 (?) now for quite some time.

My biggest beef with Accurev is how horribly slow and inefficient it is. Notice I didn't use the word GUI -- I've tried both GUI and CLI-- the slow parts are on the server, so you're screwed either way. It seems like I see one of those damn modal dialog/status bars at every turn... I switch tabs -- bam!: processing, please wait. I reparent a stream -- oh wait just another minute. For "Updates" I expect it to be a little slow (although sometimes it gets annoying when it screams "Overlap" [aka a conflict] at me when I happen to have a file with IDENTICAL content to what it's pushing down). I change directories browsing to a path... processing, processing, "oh you want to go down one more sub-folder"... let me process that some more. You get the idea.

Is that my only beef? Hell no.

1) For the merge tool, I've had the "ignore white space" option checked for years, but I can only ever recall it working ONE time (for example, say we're talking about about comparing say 2 versions of a JSP where I converted spaces to tabs or trimmed some trailing white space or something). Why is this an issue? Because it becomes pure torture for every other developer that looks in the history and wants to see what REALLY changed. If they can't get implement this correctly, don't put the F***ING option there. (Note:using WinMerge as an external compare tool, with appropriate settings works fine)

2) I've had instances where checking a file into one stream and then needing to put an IDENTICAL copy of that same file into another stream (using the same issues #) causes it to throw a temper tantrum. If I use the wrong issue #, it goes in with no problem. This is probably an isolated case (and maybe due to other poor process decisions my company saddles us with) but I thought I'd mention it for completeness.

3) The history? All stored on the server. Translation: If you enjoyed waiting for it to switch tabs, create/reparent a workspace, and update then you're in for more of the same when you want to view history.

4) The way it's exclusionary rules are done is not only terrible but also pathetic. Under Windows, you actually have to create an environment variable where you can create some exclusions to files that you don't want to show up. IT DOES NOT SUPPORT REGEX. I've seen several other SCMs that offer much better approaches (I'm fond of the the ignore files used in Hg. I think there is something similar in Git too) -- not only are both regex and glob patterns supported, but defining this in a FILE is more system-friendly and much easier to edit that putting it into an Environment variable. Not only that, but it seems that the ignore filters are iffy at best. The way our projects are defined have the build folder under the project folder (which is source controlled) and trying to exclude all folders under the the build folder doesnt seem to work -- most of them still show up in my "External" filter even after setting up rules.

5) It's check-in process (a "Promote") also seems to run with the theme of slow and inefficient. We use an external ticket system (not AccuWork... our ticketing system has its flaws but after using AccuRev, I can't image that product to be much better). Anyway, when we say "Promote [this file]", first it pops up with another modal dialog (after the required waiting, while it does more stat processing), then it presents a list of ALL tickets it has pulled (there are a lot...too many to reliably find anything). Next, we must enter our ticket number from the other system, and wait some more while it takes forever to find a match (I thought it already pulled the list...geez). Finally, it will display the matches, then we pick one and tell it to promote using that ticket number. After yet some more waiting, we're finally done.

I could go on but I'll stop there.... this post is getting too long. Instead, let me sum up Accurev in my own way: After having to wait for all these slow annoying "Stat processing", etc dialogs during an issue where we were trying to quickly get a fix out, I came up with a new slogan for them: "AccuRev: when seconds count, your fix is only minutes away".

Since management won't get rid of Accurev (I know they won't go for anything without Enterprise support but I've begged for them to consider anything else: SmartGit...Kiln...Perforce...), I have been using TortoiseHg to locally version control my files (in addition to Accurev). It is a little more work. But for those saddled with Accurev, it makes life so much easier. You get: better diff management -- MUCH MUCH easier to see and review code changes after an "accurev update", the ability to view some history without waiting 10 years for the server, ability to share directly between you and another dev (assuming they also install it), ability to revert/restore your changes if you accidentally wipe something out while trying to get clear of Accurev's merge hell ("Overlapped" files), and even more if you can get the rest of your team using it.

EDIT: Forgot to mention, during a conversion with our build engineers I was told that while Accurev has a Java API that you can develop for, it apparently requires purchasing some sort of additional licensing. I can't confirm this since a) I can't find pricing anywhere on Accurev's website* and b) I doubt like hell they'd tell me at work...

*Kinda weird considering I can find some sort of rough pricing for Perforce, Kiln, StarTeam and SmartGit quite easily. I usually get a sketchy feeling when some product won't list any sort of price up front, guess it shouldn't surprise me too much that Accurev falls into that category...

于 2013-03-17T03:01:50.640 回答
4

排序答案:使用最新的 SVN 服务器和 SmartSVN(社区版免费)作为客户端。您无需支付任何费用,您可以获得所需的一切。

血淋淋的细节:顺便说一句,在检查期间强加更改管理规则的功能对于编写为 SVN 挂钩是微不足道的。我们在几个小时内完成了它,用了一百行(或大约)代码——它运行得非常好,而且从不出错。它将 SVN 与 Bugzilla 集成并施加了以下规则:

  1. 为了提交,您必须输入一条消息
  2. 为了提交,您必须输入处于“有效”提交状态的 Bugzilla ID。...等等,您可以随心所欲地建立自己的规则

Accurev 对我来说似乎是市场软件......糟糕的 GUI 客户端......非常慢(我们必须升级硬件以使其真正有效地工作),当然......你必须为此付费!啊,是的,如果您确实使用它,我希望您不必在美国某个地方和印度某个地方之间复制您的服务器:)

Perforce 更强大,但管理起来并不容易。无论如何,与 Accurev 相比,它是一款出色的产品。

在 21 世纪编写专业软件(通常是企业软件)时,VSS 和类似的东西甚至不应该被视为“版本控制”系统。这就像在打字机上写你的报告;-)

如果您知道自己在做什么(使用您的软件),那么 SVN 将为您提供强大而高效的解决方案。当今(至少)存在两个强大且高效的修订控制系统(SVN/GIT),几乎没有空间证明使用专有解决方案是合理的;某些原因可能是“惯性”:您拥有它,您不在乎为此付出代价,并且您没有任何重大问题-换句话说,它对您有用。

我在任何地方都使用 SVN,当它不存在时,我使用的是 CVS,在此之前......不,我不会告诉你我多大 ;-)

希望这有助于...

再见。

于 2009-12-07T02:21:42.340 回答
4

我曾经是 SVN 和 Accurev 管理员。Accurev 花了很长时间在我身上成长——大约六个月,但我现在喜欢它用于企业企业环境。这里有几点需要考虑。

优点:

  • 个人代码历史
    • 当用户执行保留时,代码更改会保留在服务器上。保留对用户来说是个人的,并且在发出升级命令之前不会分发给其他用户。
    • 保持执行的代码保存在服务器上并且即使用户执行还原操作也可用。
    • 在大多数情况下,将代码提升到更高的流以进行分发是相当简单的。
  • 管理相当简单
  • 安装效果很好
  • 将后端更改为 PostGres 数据库的 5.3 版的性能有了很大提高
  • CLI 丰富而广泛

缺点:

  • 真正笨重的用户界面
  • 解决重叠可能很复杂,就像 SVN 中的冲突一样

但是,就像任何复杂的工具一样,您对它的了解和了解越多,您的欣赏就会增加。

于 2012-01-11T16:49:10.923 回答
4

好吧,我只能说我完全同意。后端很棒,但用户界面很糟糕。流功能很棒,因为它使合并变得不费吹灰之力,因为来自父流的所有更改都会自动传播给所有子流。我写了一篇关于 Accurev UI 的文章,解释了我在过去 2 年中遇到的大部分缺点。

于 2008-08-28T23:22:31.307 回答
3

我在以前的工作中使用了 AccuRev,并且没有任何问题,但我非常喜欢 Subversion(即使没有比较价格差异)。我记得客户端 GUI 也很慢。另外,我确实记得 GUI 只是调用了他们的命令行实用程序来与存储库交互。因此,将这些界面用于您的 DIY 工具可能并不难。

于 2008-08-21T04:21:20.530 回答
3

我已经使用 Accurev 一年了。我不喜欢它。以下是我遇到的一些问题:

1. 它的 GUI 很糟糕:它非常慢,以至于每次我在选项卡(流和工作区)之间切换或执行某些操作时都必须等待几秒钟。它有时会给您一个令人困惑的错误消息,无法帮助您找出问题所在。

2. 它有很多概念,你必须花很多时间学习 Accurev 本身。

3、我曾经遇到过这样一个问题:我有一个版本控制文件被我们的构建过程修改了。后来,我的队友将该文件移到了他工作区的其他位置并促进了更改。当我运行“accurev update”时,它只是告诉我“某些文件已被移动”,一切看起来都很正常。但实际上该命令在移动的文件处停止并且不再更新其他文件。这非常令人困惑 - 您的更新命令没有更新工作空间,但您对此一无所知。唯一输出的消息“某些文件已被移动”看起来就像其他详细输出一样。它没有告诉我我的更新失败或中止或其他什么。

在此之前,我使用 SVN 和 ClearCase。SVN 是一个很棒的工具,简单易用。而且我对 ClearCase 没有太多抱怨。Accurev 真的很郁闷...

于 2013-01-31T03:01:37.653 回答
1

我刚刚遇到这个讨论,并认为我会分享我们使用 AccuRev 的经验。

我们已经使用 Serena 的Dimensions SCM 大约8 年了。两年前,我们在将印度开发团队与英国开发团队整合时遇到了一个重大问题。很明显,我们不会用当前系统满足我们的需求,因此我们开始评估一些选项。我在这篇文章中讨论了所有这些我们如何整合我们的离岸开发团队。

到目前为止,我们使用 AccuRev 的经验非常积极。

  • 它易于设置和管理。
  • 用户能够非常快速地开始工作(对于印度开发团队尤其重要)
  • 我们从来没有遇到过速度问题(事实上,这是我们的主要优点之一)
  • 复制就像一场梦
  • 我同意 UI 可能有点笨拙(尤其是 Unix 客户端)。我希望下个月更新到最新版本时它会更好。

总而言之,我想说这是我们做出的最好的决定和购买之一。

于 2009-01-28T13:30:51.247 回答
1

注意:我是 AccuRev 用户,我非常喜欢它。我已经在这里提出了一些答案,并想补充一下:

我最近在Jez Humble 和 David Farley的《持续交付》一书中偶然发现了对 AccuRev 的“评论”:

[第 14 章,第 385 页]

商业版本控制系统

(...) 我们能够全心全意推荐的唯一商业 VCS 是:

  • (...)
  • AccuRev。提供类似于 ClearCase 的能力来进行基于流的开发,而没有与 ClearCase 相关的严重管理开销和较差的性能。
  • (...)

可能会补充一点,我从未使用过 ClearCase,但我是这里的 AccuRev 管理员,管理起来确实很少。(WRT 性能,这个问题可能会提供更多见解。)

于 2011-06-27T13:51:47.013 回答