过去,在 Visual Studio 中使用 mercurial,我习惯于 add mercurial changeset ids to my application因此,当用户执行“帮助”时,它会列出所有组件及其精确 mercurial 修订版。它还会在每次启动时将所有变更集 ID 记录到应用程序日志文件中。这个过程甚至允许我查看自上次提交以来是否修改了特定的工作副本(mercurial 的 hg id
通过在它报告的变更集 id 的末尾添加 + 来指示脏工作副本)。
这非常有用,因为这意味着每当用户报告问题时,我都可以快速构建完全他们正在使用的修订版。我还可以分辨出人们什么时候偷偷通过快速黑客来解决问题并且既没有提交更改也没有告诉我。
我现在想在我的 git
托管的 RCP 应用程序中复制相同的功能。不幸的是,我对 git
和 Eclipse RCP 应用程序开发都很陌生,所以我不太清楚相同的技术是否有效。
特别是我一直无法弄清楚如何用 git
做等同于 hg id
的事情,如何让 Eclipse 构建系统调用 git
创建一个包含 id 的 .gitignore
d 文件,以便它可以被编译到应用程序/插件中,或者如何将这些信息获取到帮助>关于页面中。
如果您已经这样做或类似的事情,我希望您能提供一些关于您是如何做到的建议。或者,我很乐意听到有关实现我寻求的最终结果的替代方法的任何建议。
用一点 google-fu,阅读背后的内容和实验,看起来 git rev-parse HEAD
或 git rev-parse --short HEAD
可能是最接近 hg id
,可惜我找不到指示工作副本不干净的方法,所以看起来我将不得不检查 git 的输出status --short
如果它不为空,则手动将 +
附加到提交哈希。
现在我只需要了解如何让这些命令从 Eclipse 构建系统运行,以及将这些信息注入(inject)到哪里,以便它显示在“关于”页面中。
最佳答案
我不能谈论这个问题的 git 部分,但我可以在某种程度上谈论 RCP 部分。也就是说,您已经提到您不喜欢关键字替换。我对此表示赞赏,但据我所知,这是整个 RCP 构建框架中非常普遍的做法!
可以使用 about.properties、about.mappings 和 about.ini 文件控制“关于”对话框。 Rich Client Platform Book谈论这个。
我要做的是让您的构建生成带有您的 git 标签的 about.mappings 文件。
关于git - 如何将 git 哈希添加到我的 Eclipse RCP 应用程序“关于”页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926186/