是否有可能忽略git中的文件娱乐?

时间:2013-11-14 06:19:49

标签: eclipse git emftext

我的项目中的某些文件会被删除并经常重新创建。 Git将它们视为一个完全新的文件,并将它们作为新文件提交,即使文件内容未更改也是如此。是否可以忽略文件重新创建并将其作为常规文件处理,而不是重新创建文件?

我已将core.trustctime设置为false,但没有任何更改。

PS:我正在使用Github for Windows。

2 个答案:

答案 0 :(得分:2)

遗憾的是,

This is a bug in Eclipse不会被修复(从2002年开始)。

这是怎么回事:Eclipse有一个跟踪工作区中文件的对象。他们定义了通常的操作,如创建和删除。所以会发生什么是你建立你的项目。

这会触发EMFText构建器。它将删除将触发“git rm”的文件,因为Eclipse无法区分“代码生成器删除文件以再次创建它们”和“用户删除文件的好处。”

然后再次创建文件。无论你是想在你的提交历史中删除这个删除还是无意的,Eclipse都没有好办法。因此文件保持在已删除状态。

MercurialEclipse以及Eclipse上的所有其他版本控制插件也会受到影响。

解决方法:

  1. 创建一个脚本,只添加所有存在但处于“删除”状态的文件。

  2. 将代码生成器配置为在“清除”期间不删除文件。 Xtext可以做到这一点。

答案 1 :(得分:1)

您可以尝试在EMFText重新生成的所有文件上应用git update-index assume-unchanged指令。

请参阅“git update-index --assume-unchanged on directory”:

cd /path/to/EMFText/generated/files
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')