2012-08-09 62 views
5

我在本地机器上有一个grails应用程序,并且我已经在XP-DEV中创建了一个存储库。我在项目根目录中有文件夹.groovy.settings。我需要将这些文件提交到版本控制中吗?我在问这个问题,因为我不知道这些文件夹的用途。我需要提交.groovy和.settings文件夹到存储库

回答

10

更新

5年以上的开发经验后,我想我需要稍微走回到我原来的看法。我仍然认为这些文件通常不应该包含在源代码管理中。

但是,某些设置可以方便地在开发人员之间共享。问题是,很难知道要共享哪些设置以及哪些不共享。例如,任何具有绝对路径的设置都不应该共享;但是如何知道给定工具的配置(例如Eclipse,IntelliJ等)是否包含绝对路径?

如果您使用git进行版本控制,github会为各种工具github/gitignore发布大量.gitignore模板。如果您想尝试共享设置,我建议使用这些模板之一。

如果这些模板不适合您,我坚持我原先的建议,即不要将这些设置检查到版本控制中,并允许它们自动生成。然后,如果需要共享重要设置(如代码样式模板等),请提供有关如何将该设置应用于所有预期开发环境的说明。


原来的答案:

.settings一般是由什么IDE你正在使用创建(我知道的Eclipse采用了这种约定),并包含了对于IDE特殊的项目设置。

.groovy包含groovy的用户特定设置。例如,我知道Grape将依赖项下载到.groovy目录中。

我的意见是,不要提交这些目录。如果另一个人签出您的项目,他们自己的这些目录的个人副本将自动生成。

+2

我会说这是一个_strong_ no。承诺这些只会增加混乱和没有价值。 – cdeszaq 2012-08-09 14:09:19

+1

请看我的回答。我不同意。 – 2012-08-10 04:57:02

9

我不同意@FGreg的回答。 .settings文件夹包含项目特定设置。这包括自定义编译器设置,错误和警告级别,格式化首选项,保存操作等。通常,在开发人员之间共享这些首选项是个好主意。如果这些设置不共享,则可能会在格式设置和编译器问题上产生不一致。

一般来说,如果您想为任何团队提供一致的开发环境,您需要将设置文件夹包含到版本控制中。

Groovy-Eclipse中的.groovy文件夹用于项目特定的DSL信息和推理建议。一般来说,如果您有特定于项目的推断信息,您将希望与同一项目中的其他人共享此信息。

在我们的团队中,我们明确定义了每个项目将使用的所有设置,提交.settings文件夹,我们确信每个开发人员都能看到相同的设置。

2

我认为,提交IDE项目文件是个坏主意。如果你有特定的配置,你应该配置你的maven,gradle,ant或其他任何到生成正确的配置

有我见过

  • 您的项目可能会是IDE具体的问题的列表。
  • 您将在开发和集成之间存在差异。您稍后会发现问题。
  • IDE的配置文件取决于IDE版本和安装的插件。
  • 人们犯错误(为什么我们做源代码管理)某些文件将被提交错误的配置。

如果您选择提交此文件,请记住您必须执行一些手动额外工作才能确保提交正确的文件。 但是,如果你正确配置你的构建工具,你只能做一次工作。 ;)

相关问题