6

我是 Git 新手,我很难弄清楚这一点。

我们在 Eclipse 中使用 JBoss Application Server 5.1。有些人已经下载了 JBoss Tools Eclipse 插件,因此他们可以将 JBoss 5.1 运行时服务器作为“JBoss AS 5.1”添加到他们的 Eclipse 工作区。这会产生如下所示的类路径行:

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss 5.1 Runtime"/>

其他人看不到下载和安装 JBoss Tools 插件的价值,所以他们只是使用 Eclipse 内置的 JBoss 服务器适配器,它只升级到 JBoss v.50。他们有一个类路径行,如下所示:

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.generic.runtimeTarget/JBoss v5.0"/>

我不想将 .classpath 添加到我的 .gitignore 文件中,因为:

  1. 这些文件已经被推送到我的原点,删除它们是一个非常痛苦的过程,我过去曾尝试过但未能理解。
  2. 我希望正在设置新工作空间的人能够从 Git 导入项目并立即开始工作。

到目前为止,我们只是尝试了每次修改工作目录中的 .classpath 文件,但从未提交过。这很烦人,不仅因为它们不断出现在我们的 git 状态中,而且有时它们不允许我们在 Egit 中合并或切换分支——抱怨未提交的更改。

我已经在互联网上阅读了有关使用类路径变量的信息,但我似乎根本找不到 JBoss 库的正确路径。我上面列出的类路径行似乎指向 Eclipse/plugins 目录中的某个地方?但我找不到它。我还尝试将一些变量指向我的 C:\jboss-5.1.0.GA\ 目录,但这似乎也没有任何作用。

有没有办法将 .classpath 文件保留在存储库中,因为它现在处于当前状态,以便克隆存储库的新用户仍然可以获得它们,但是然后忽略任何开发人员对文件所做的所有未来更改?

4

2 回答 2

6

来自Pagebakersgit的简单的、每个开发人员一次的解决方案是

git update-index --assume-unchanged <file>

要撤消它,只需使用

git update-index --no-assume-unchanged <file>
于 2013-08-16T17:54:28.100 回答
1

另一个答案可以是使用内容过滤器驱动程序,即您在.gitattribute文件中声明的脚本。

过滤器驱动程序

在签出您的存储库时,涂抹脚本将负责分析本地环境,检测 JBoss 并classpathentry相应地进行调整。
这样,您可以保留该文件中最有用的内容已经版本化,同时适应少数classpathentry不正确的特殊情况。

于 2012-05-03T05:59:18.967 回答