l3d*_*3dx 59 language-agnostic version-control
对于哪些文件和/或目录不应该(在大多数情况下)处于源代码管理之下,最好有一个或多或少的完整列表.您认为应该排除什么?
建议到目前为止:
一般来说
C#
视觉工作室
Java的
日食
我不知道,这就是我现在正在寻找的东西:-)
蟒蛇
临时文件 - .*.sw? - *〜
Cor*_*y D 42
任何生成的东西.二进制,字节码,从XML生成的代码/文档.
从我的评论者,排除:
但包括:
FWIW,在我为一个非常大的项目工作时,我们在ClearCase下有以下内容:
我们没有为我们的软件构建模块.每两周发布一个完整的二进制文件,包含最新的更新.
app*_*rat 15
一些其他Visual Studio典型的文件/文件夹
*.cachefile
*.backup
_UpgradeReport_Files
Run Code Online (Sandbox Code Playgroud)
例如,我的乌龟全局忽略模式看起来像这样
bin obj *.suo *.user *.cachefile *.backup _UpgradeReport_Files
Run Code Online (Sandbox Code Playgroud)
小智 11
不应检入构建的文件
像科里d已经说时产生什么,由生成过程和发展环境产生的是好的候选人具体什么.例如:
上述一些例外情况可能是:
拿第三方库,如果你需要发货或你的构建依赖于第三方库,将它置于源代码控制之下是不合理的,特别是如果你没有源代码.还要考虑一些源控制系统在存储二进制blob方面效率不高,你可能无法利用这些文件的系统diff工具.
基本上,如果您无法合理地期望开发人员拥有他们所需的确切工具的确切版本,则可以将生成的文件放在版本控制中.
总而言之,您需要根据具体情况考虑您在源代码管理下的所有内容.定义一个简单的列表,列出什么和什么不放在它下面只会对某些人有效,而且可能只有这么长时间.当然,您添加到源代码控制的文件越多,更新工作副本所需的时间就越长.
我会以不同的方式解决问题; 什么东西应该包含在源代码管理中?您应该只控制那些文件:
该清单包括以下内容:
有时,构建输出可以是构建输入.例如,模糊重命名文件可以是输出和输入以保持相同的重命名方案.在这种情况下,使用签入文件作为构建输入,并将输出放在不同的文件中.构建之后,检查输入文件并将输出文件复制到其中并检入.
使用排除列表的问题在于,您永远不会知道所有正确的排除项,并且可能最终源控制不应受源控制的内容.
例外情况:
4或5个不同的答案表示生成的文件不应该受源代码控制.那不是真的.
专业工具生成的文件可能属于源代码管理,尤其是在需要这些工具的特定版本的情况下.
例子:
基本上,如果您无法合理地期望开发人员拥有他们所需的确切工具的确切版本,则可以将生成的文件放在版本控制中.
svn人员在他们的最佳实践谈话中讨论了这个例外.