每次我将源代码检出到 git-hub 服务器时,我都需要更新我的源代码修订关键字(@version、@date 等)。
你可能知道:
在 Git 中这样做的主要问题是,您无法在提交后修改包含有关提交信息的文件,因为 Git 首先校验文件。
基本上我想要实现的是我的源代码应该如下所示:
* Git revision information:
*
* @version $Revision: 1e7f611039399b32e9000ec454609a0641dde368 $
* @author $Author: Eugen Mihailescu <eugenmihailescux@gmail.com> $
* @date $Date: Thu May 3 01:17:45 2012 +0200 $
*
* $Id: | Thu May 3 01:17:45 2012 +0200 | Eugen Mihailescu $
在这里和这里你可以找到关于如何在 Git 中实现这一点的完整描述。
事实证明,您可以编写自己的过滤器,以便在提交/签出时在文件中进行替换。这些是“清洁”和“涂抹”过滤器。在 .gitattributes 文件中,您可以为特定路径设置一个过滤器,然后设置在文件被签出之前(“涂抹”,参见图 7-2)和提交之前处理文件的脚本。
所以我知道如何用 git 命令来做。我已经测试过,它可以正常工作!我真正的问题是我想通过使用 Eclipse IDE 来实现同样的目标。在 Eclipse 中,我有 Eclipse Git,它是基于 JGit 的 Eclipse Team 提供程序,JGit 是 Git 版本控制系统的纯 Java 实现。
在 Eclipse EGit 中没有这样的命令“git checkout”,但可以通过硬重置来完成(右键单击您的项目,然后选择团队 -> 重置 -> 硬)。不幸的是,这不会运行您的清洁/涂抹过滤器,实际上您将从 git hub 获得源代码的纯副本,而无需关键字扩展。
我希望我已经详细描述了整个故事,因为现在我要问:
- 这在 Eclipse 中使用 EGit 可行吗?