11

该应用程序是使用 Sencha Architect 开发的,它使用大量辅助文件来管理各种与 IDE 相关的东西(导出路径、IDE 的版本控制等)。

每次团队成员在 Sencha Architect IDE 中打开项目时,其中一些文件都会更改。

举一个特别烦人的变化的例子,考虑exportPathArchitect 生成的*.xds文件中的属性。我将选择一个服务器,将其发布到特定路径,其他团队成员将具有不同的服务器/路径配置。

在我们的代码库中,我非常希望拥有 IDE 文件:

  1. 在单独的存储库中,
  2. 在子模块中(是的,特定于 git,我知道)或
  3. 驻留在用户机器上,而 VCS 不会注意到它们的变化。

这里要注意的关键是,Sencha Architect 期望文件位于与项目相关的特定位置,因此 IDE 文件必须与普通源文件位于同一位置。

此外,使用 .gitignore 也不是一种选择,因为 Sencha Architect 会在其中一些文件中写入对其他团队成员正确打开它们至关重要的信息。例如,当打开一个项目时,Sencha Architect 可以决定将项目升级到一个更新的版本(如果你想打开项目,它是非可选的),并且在更新过程中,IDE 会修改一些源-代码文件。其他团队成员必须知道版本升级才能正确打开项目。

这个 SO question为 Sencha 使用的复杂格式提供了一些背景。我原谅我在评估 Sencha Architect 架构时的负面语气,但他们似乎把一个好主意(使用元数据和代码生成)做得太过分了(使所有优秀的 unix 工具的使用无效,包括 git)。

这里的首选方法是什么?为什么?

4

2 回答 2

11

除非您有非常令人信服的理由,否则不应对 IDE 文件进行版本控制。也许您的项目仅使用特定 IDE 中的插件构建,您需要对这些设置进行版本控制。如果您不需要这些文件来构建或运行您的项目,您可能不应该对它们进行版本控制。

您可以使用 Git忽略这些文件。特别是,IDE 文件是全局 gitignore 的良好候选者,因为每个用户都将使用他们想要的任何 IDE,并且这些设置应该应用于他们的所有存储库。

于 2013-06-10T13:04:48.867 回答
2

对 IDE 文件使用版本控制可能会有所帮助,但存储用户特定设置的文件除外。另请参阅https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

对这些文件使用版本控制的好处是

  • 为整个开发团队共享代码风格
  • 管理和共享受版本控制的嵌套存储库。
  • 等等
于 2015-03-24T15:43:22.340 回答