除了源代码之外,哪些Eclipse文件适合放在源代码控制之下?
在我的项目中,具体来说,我想知道:
. metadata / * project-dir / . project project-dir / . classpath project-dir / .settings / *
如果有任何这些取决于,请解释你的指导方针。
除了源代码之外,哪些Eclipse文件适合放在源代码控制之下?
在我的项目中,具体来说,我想知道:
. metadata / * project-dir / . project project-dir / . classpath project-dir / .settings / *
如果有任何这些取决于,请解释你的指导方针。
当前回答
我目前正在做一个项目,我们在源代码控制下有.project和.cproject文件。我们的想法是,与库路径和链接指令相关的设置将在整个团队中传播。
在实践中,它并没有很好地工作,合并几乎总是以冲突状态返回,需要在eclipse之外消除冲突,然后项目关闭并重新打开以使更改生效。
我不建议将它们保留在源代码控制中。
其他回答
classpath文件无疑是检查scm的一个很好的候选文件,因为手动设置它可能会有很多工作,并且对于新开发人员来说很难进入项目。的确,它可以从其他来源生成,在这种情况下,您将检入其他来源。
至于.settings,这取决于设置。这是一个灰色地带,但是一些设置几乎是强制性的,并且可以方便地检出项目,在Eclipse中导入它,并设置好一切。
At our project, we therefore maintain a copy of the .settings folder called CVS.settings and we have an ant task to copy it to .settings. When you get the project from CVS, you call the 'eclipsify' ant task to copy the default settings to the new .settings folder. When you configure settings that are needed by everyone developing on the project, you merge those back into the CVS.settings folder and commit that to CVS. This way saving settings in SCM becomes a conscious process. It does require devs to merge those settings back into their .settings folders from time to time when big changes are checked in. But it's a simple system that works surprisingly well.
CDT配置文件不是源代码控制友好的,这是毫无价值的。有一个关于.cproject文件频繁更改并导致冲突的错误文件,请参阅在存储库中共享cdt-project文件总是会导致冲突。
我目前正在做一个项目,我们在源代码控制下有.project和.cproject文件。我们的想法是,与库路径和链接指令相关的设置将在整个团队中传播。
在实践中,它并没有很好地工作,合并几乎总是以冲突状态返回,需要在eclipse之外消除冲突,然后项目关闭并重新打开以使更改生效。
我不建议将它们保留在源代码控制中。
我觉得一个都没有。它们很可能包含只与您的工作站相关的信息(我在考虑库和所有的路径)。另外,如果团队中有人不使用Eclipse怎么办?
有些项目,比如使用Maven的项目,喜欢基于POMs生成.project文件。
That said, other than that - .metadata should NOT be in source control. Your project will have to make a determination about whether projectdir/.settings does, based on how you plan to manage standards and such. If you can honestly trust your developers to set up their environment based on the standard, and you don't have to customize anything special for any project, then you don't need to put them in. Me, I recommend configuring every project specifically. This allows devs to work on multiple projects' stuff in the same workspace without having to change default settings back and forth, and it makes the settings very explicit, overriding whatever their default settings are to match the project's standards.
唯一困难的部分是确保它们保持同步。但在大多数情况下,您可以将.settings文件从一个项目复制到另一个项目。如果有任何您特别不想在源代码控制中使用的内容,为它们设置svn:ignore,如果您的SCM支持的话。