【问题标题】:Subversion, Hudson, Maven, Trac. What's good/bad? [closed]颠覆,哈德逊,Maven,Trac。什么是好/坏? [关闭]
【发布时间】:2011-01-20 19:33:57
【问题描述】:

我们的项目很快就会迁移到这些开源工具。在积极的努力中,我想从专家那里得到 - 你发现这些产品有什么好的、坏的和丑陋的?什么是不直观的?无需对所有内容发表评论,但如果您愿意,请随意!

如果这应该是一个 wiki 或被编辑为更“有问题”,请建议或编辑。谢谢大家!

【问题讨论】:

  • 你确实在你的问题上征求过意见,就这样。此问题未通过帮助中心内what should I avoid asking 下的前两点。正如措辞,它只是征求意见——如果你要求具体的、客观的结果,它会更有用。 (例如,您收到的答案表明生产效率可能是一种衡量标准。)您希望得到一些权威的答案 - 所以您需要提出一个更具体、更客观的问题。

标签: svn hudson maven trac


【解决方案1】:

我们公司大约 8 个月前开始使用 Maven。它迫使您将项目组织成逻辑模块。之前,我们有两个用于客户端/服务器应用程序的项目,具有循环依赖关系。现在我们有一个用于共享代码的框架项目,以及用于独特内容的单独的服务器和客户端项目。我们所有的“独立”应用程序(自定义安装程序构建器等)也可以从框架中分支出来。根据您的设置的复杂程度,“Mavenize”您的项目可能会很耗时。然而,我发现一旦你这样做了,诸如依赖管理之类的事情就不再是一个积极的问题。

Maven 也很有用,因为它可以很好地连接到 Hudson,它是一个持续集成服务器。 Hudson 会定期为您构建,无论是定期轮询 Subversion,还是只是每晚轮询。它还将自动化您的所有单元测试(您 /are/ 使用 JUnit 或类似的适当框架,对吗?)Hudson 的设置非常简单。您几乎可以立即将其部署到 Tomcat 中,只需最少的配置。如果您想使用 Sonar 等工具,它提供了不错的插件选择。

Subversion 是一个相当流行的源代码控制工具。我不介意;这是我最有经验的。我玩过 Mercurial,但还不足以真正将 Subversion 与它进行对比。使用 Subversion 学习的最重要的事情是如何正确地分支和合并。了解这一点可以让您为不相交的功能请求、错误修复等维护单独的分支。您可以更轻松地为 QA/您的测试组进行实验性构建或特殊构建。合并可能很痛苦。我听说过一些恐怖故事,但我遇到的最糟糕的情况是处理团队合作时出现的“正常”冲突。

我忽略了 Trac,因为除了以前听过这个名字之外,我对它没有任何经验。 编辑: 一个快速的谷歌告诉我它是错误跟踪软件。我在使用 Bugzilla 时运气不错,这是另一个开源错误跟踪器,但是正确配置它会加剧和升级可能是一场噩梦,因为它的权限设置非常挑剔,尤其是在尝试与 suexec 集成时。 YMMV

【讨论】:

    【解决方案2】:

    我将专注于 Hudson,因为这是我所知道的。首先,一些快速建议:

    哈德逊是一个移动的目标。有频繁的发布和许多扩展功能的插件。这既有优点(总是有新的东西)也有缺点(总是有新的东西!)。可能很难找到合适的插件来处理构建过程的细节。目前,最好的搜索工具是Hudson Plugins page 上的Ctrl-F。我建议只安装你将使用的插件,因为如果你安装所有东西,你最终会得到很多很多的配置选项,这会使你的构建设置导航变得混乱。以下是一些常用的插件:

    升级(或安装新的 你想使用的插件),但不断升级只是为了跟上最新的 如果一切都对您有用,则不需要发布。你会想来 制定适合您的升级政策。

    我之前推荐过这个(在my answer about upgrading Hudson 的背景下),但我发现拥有一个哈德逊游乐场很有用 与团队使用的主要 Hudson 分开。这让我可以对 在“生产”实例上执行之前升级,这是尝试提供更好报告的新功能/插件的简单方法。

    对于您的所有工具,都有一个学习曲线。尤其是在这种情况下 哈德逊,尝试它并学会使用它是值得的,因为它是 非常强大,它给了整个团队过去休息的那种力量 在“建造者”的手中。

    关于Subversion,我完全同意@Tom 的“学习分支和 合并”建议。最近,我一直在使用git's svn integration 来管理我的 开发工作(见popular blog post about git-svn)。 git很重要 更容易一次处理几个主题并将它们分开, 即我需要进行的错误修复不会干扰我正在使用的功能 工作。我建议学习一些 DVCS 允许的技巧 因为扩展你的视野是一件好事。

    【讨论】:

      【解决方案3】:

      为了真正能够回答您的问题,您能分享一下您/从//迁移的产品吗?

      我的团队最近从 VSS 迁移到了 Subversion,我们非常喜欢它。它为我们提供了更多的功能和更少的问题。在使用它之前了解它的工作原理很重要,尤其是(正如有人提到的)分支和合并。值得庆幸的是,官方的 Subversion 书是免费提供的(只需 google “subversion book”)并且写得非常好。特别是,我们喜欢 Subversion 的原子提交、轻松分支的能力、自动处理大多数合并的能力,以及可以告诉你谁最后更改了一行代码的“责备”功能。我们主要不喜欢的是学习曲线。 Subversion 与 VSS 完全不同,我们的一些老开发人员花了很长时间才习惯它。一些开发人员已经开始使用 git 与 svn 存储库进行交互,并报告说提高了生产力,但我自己还没有这样做。还有各种各样的 Subversion 工具可用,因此很容易找到适合您风格的工具。

      Trac 不仅仅是一个错误跟踪器。我们刚刚实现了 Trac,它一炮而红。 Trac 自动交叉引用存储库提交和票证的能力使我们的 QA 团队的工作变得更加容易。还能够将工单链接到基于 wiki 的文档并从单个搜索框中搜索所有内容,这使得查找信息和了解您以前没有参与过的项目部分变得非常容易。 “里程碑”功能(加上几个插件)正在自动化我们过去手动完成的一些项目管理任务。同样,缺点是学习曲线。它是开发人员必须习惯使用的新东西,而 wiki 使用必须学习的标记语法。不过,这不是太大的障碍。在其他两三个团队想要自己的团队之前,我们只让 Trac 启动并运行了一周。我个人很喜欢 Trac 是开源的,并且可以使用一点 Python 轻松扩展。

      我没有使用过 Maven 或 Hudson,所以我无法评论这些。

      【讨论】:

        【解决方案4】:

        他们都很好。 Trac 对我不起作用,但这可能是因为我在安装过程中做错了什么。在我工作的地方,我们使用 Subversion、Hudson 和 Maven,效果非常好。您可能还想看看 Nexus 或 Artifactory。

        【讨论】:

        • 您的回答没有解决我的问题。 “它们都很好”并不能告诉我产品好坏的原因或原因。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 2011-06-25
        • 2011-05-24
        • 1970-01-01
        • 2010-12-22
        • 2013-06-25
        相关资源
        最近更新 更多