【问题标题】:Automatic commit on successful build ("breadcumbs")?成功构建时自动提交(“面包屑”)?
【发布时间】:2012-11-22 15:19:06
【问题描述】:

有人知道是否有一种方法可以在 IDE 中成功构建后自动提交项目(目录)吗?也就是说:类似于持续集成系统,只是更轻巧,更适合低仪式的“单独开发”场景。

我对任何可以与 IntelliJ IDEA(社区版)和 GIT 一起用于 Android 项目(Java/Ant/Maven)的解决方案特别感兴趣,但我也对其他解决方案(Eclipse、Netbeans、SVN、Hg)感兴趣, ETC。)。我也对关于这个主题的更一般的讨论感兴趣(这是一个好主意/坏主意,可以通过这种方式或其他方式完成,等等)。

我也愿意接受基于代码的解决方案(脚本、插件等)。特别是,有人知道 IntelliJ IDEA 是否提供任何“挂钩”来在菜单命令之前/之后执行脚本?

理由:我正在使用 IDEA 对现有 Android 项目进行一系列小型(但痛苦)实验,我希望能够在需要时使用 GIT 逐步返回(每个步骤都是由以前成功的构建之一表示)。如果你愿意,可以称之为“面包屑编程”。

请注意:我知道这可以通过命令行使用 Ant/Maven/GIT/many-other-tools 轻松获得。我只是想看看是否可以从我习惯的任何 IDE 中执行此操作。是的:我知道我应该经常提交。我做。我只是累了用手做。

【问题讨论】:

  • 自动提交对我来说听起来是个坏主意,因为这些提交只会捆绑随机更改而没有有用的提交消息。并且可能包括运行时错误。
  • 我想找到一个足够聪明的工具来向用户询问提交消息(或者至少添加时间戳作为提交消息)。请注意,我无意使用此工具来替换通常的面向最佳实践的 GIT 工作流程。相反,我想用它来补充它。在任何两个手工提交之间,我想找到一系列自动提交。我只想要更精细的粒度和更好的控制。 (即使在手动提交的提交中也会出现运行时错误。这仅取决于您在提交之前测试代码的深度)。
  • Eclipse 的Local History 会记录您编辑的文件的所有更改。
  • @andrew Eclipse 的本地历史是一个不错的工具,但它不是我希望找到的。问题是在每个文件的基础上保存历史记录,与文件保存操作同步,是处理这个问题的错误方法。我希望能够恢复到整个系统的安全状态(工作构建),而不是恢复到以前保存的单个文件版本。无论如何,感谢您的贡献。

标签: android git intellij-idea continuous-integration build-automation


【解决方案1】:

好的,看起来这对于 IntelliJ IDEA 来说(还)是不可能的,即使自 2007 年以来有一个非常相似的功能请求处于休眠状态:http://youtrack.jetbrains.com/issue/IDEABKL-5755

据我所知,目前唯一提供挂钩以在其自己的 GUI 中执行构建前/构建后脚本的唯一 IDE 是 Eclipse,这要归功于它的“构建器”对话框:

Eclipse adding your own build command

IDEA 和 NetBeans 都(仅)依赖于 Ant 目标来执行此类构建前/构建后的处理任务。见:https://ant.apache.org/manual/Tasks/exec.html

不幸的是,Ant 和 GIT 之间还没有真正的集成(即使那里有一些项目),所以您必须依赖操作系统命令(进程分支)或者您可以尝试使用 JGit( http://eclipse.org/jgit/)。

另一个可能的解决方案是修改现有的 IDE GIT 插件,使其能够接受提交前/提交后的任务或脚本(Eclipse、NetBeans 和 IDEA 使用插件与 GIT 交互)。

很可能,对于手头的任务,我将依靠我(又老又累)的手或 Ant 脚本。

无论如何,恕我直言,执行这种自动提交的“正确”方式如下:

  1. 构建项目(通过 Ant/Maven 或通过 IDE 内部构建系统)
  2. 向用户询问提交消息(或根据日期和时间生成消息)
  3. 提交源代码树

当然,失败的构建应该中止剩余的操作。

这将/不应该/不应该取代正常的、手工执行的提交流程。相反,它应该补充它(可能使用单独的 GIT 本地存储库或单独的分支)。

【讨论】:

  • 为什么你想阻止提交政策的潮流?
  • 好吧,我不想停止任何事情。我只是想有第二个自动机制来提交我的更改,除了常规的,当我必须在短时间内对代码库进行大量小的更改时使用。与其说是需要,不如说是方便。
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
相关资源
最近更新 更多