Eclipse Git关键字扩展

时间:2012-05-03 06:44:39

标签: eclipse git revision egit keyword-expansion

每次我检查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  $

Herehere您可以在Git中找到有关如何实现此目标的完整说明。

  

事实证明,您可以编写自己的过滤器   提交/结帐时文件中的替换。这些都是“干净”的   “涂抹”过滤器。在.gitattributes文件中,您可以为其设置过滤器   特定路径,然后设置将仅处理文件的脚本   在他们被检查之前(“涂抹”,见图7-2)和之前   他们承诺了。

所以我知道如何使用git命令。我测试过,它只是有效! 我真正的问题是我想通过使用Eclipse IDE来实现同样的功能。 在Eclipse中我有Eclipse Git,这是一个基于JGit的Eclipse Team提供程序,它是Git版本控制系统的纯Java实现。

在Eclipse EGit中没有这样的命令“git checkout”,但是可以通过硬重置来完成(右键单击你的项目然后选择Team - &gt; Reset - &gt; Hard)。不幸的是,这不会运行您的清洁/涂抹过滤器,事实上,您将从git hub获得源的纯文本,而不会进行关键字扩展。

我希望我已经详细描述了整个故事,因为现在我会问:

  • 这是否可以在Eclipse中使用EGit?

1 个答案:

答案 0 :(得分:1)

commit (August 2010)发表了评论

在WorkingTreeIterator

期间执行自动CRLF到LF转换
  

WorkingTreeIterator 现在可以选择对文本文件执行CRLF到LF转换   我们提供了一个基本框架,以支持基于gitattributes启用(或禁用)此功能,并支持更通用的涂抹/清洁过滤系统。
  由于JGit中尚未提供gitattribute支持,因此未实现,但mightNeedCleaning()isBinary()filterClean()方法将提供合理的位置以便将来插入。

我认为latest JGit releases完全支持gitattribute,而latest revision of WorkingTreeIterator仍有空filterClean()功能。

因此单独使用JGit可能不足以触发“过滤内容”驱动程序。