最佳一般SVN忽略模式?


175

什么是最好的(或尽可能好的)通用SVN忽略模式使用?

有许多不同的IDE,编辑器,编译器,插件,平台等特定文件和一些“重叠”的文件类型(即某些类型的项目需要,而其他类型的项目则不需要)。

但是,无论开发环境的具体情况如何,您都绝对不想将大量文件类型自动包含在源代码管理中。

这个问题的答案可以作为任何项目的一个很好的起点-仅要求他们添加一些所需的特定于环境的项目。它也可以适用于其他版本控制系统(VCS)。


扎克您好,我一直在阅读您的这篇文章:zachburlingame.com/2011/03/…而且我有几个问题。.有没有办法与您联系?谢谢您的宝贵时间... PS:除了通过此处的评论,无法找到其他任何方式联系您,对您的烦恼感到抱歉
Brams 2014年

Answers:


193

我将在此问题上加上自己的两分钱:

对于Windows和Linux平台上的本机C ++,C#/ VB.NET和PERL项目,我对TortoiseSVN和Subversion CLI使用以下SVN忽略模式。这对我来说很有效!

格式化以进行复制和粘贴:

* .o * .lo * .la#*#。*。rej​​ * .rej。*〜*〜。#* .DS_Store thumbs.db Thumbs.db * .bak * .class * .exe * .dll * .mine * .obj * .ncb * .lib * .log * .idb * .pdb * .ilk * .msi * .res * .pch * .suo * .exp *。*〜*。〜*〜*。* cvs CVS .CVS .cvs版本发布版本调试调试忽略忽略bin Bin obj Obj * .csproj.user * .user * .generation.cs

格式化以提高可读性:

* .o * .lo * .la#*#。*。rej​​ * .rej
。*〜*〜。#* .DS_Store thumbs.db 
Thumbs.db * .bak * .class * .exe * .dll
* .mine * .obj * .ncb * .lib * .log 
* .idb * .pdb * .ilk * .msi * .res * .pch * .suo 
* .exp *。*〜*。〜*〜*。* cvs CVS .CVS .cvs  
发布发布调试调试
忽略忽略bin Bin obj Obj
* .csproj.user * .user
* .generation.cs

5
* .tmp * .temp呢?
鲍勃·金

3
此外,如果您执行WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
鲍勃·金2009年

6
* .dll是必需的,因为在引用参考程序集也需要在存储库中提交的情况下?
Jaroslav Urban

6
@Xabatcha-您始终可以显式包括任何扩展名(或文件夹)的文件,而不管其是否在全局忽略模式中列出。通常,您不希望SVN跟踪* .dll,但是您始终可以显式添加任何必需的文件(在第三方程序集的情况下,我经常这样做)。
Zach Burlingame'4

2
如果您使用ReSharper的附加太
autonomatt

44

基于Burly的忽略模式,我已将ReSharper添加到忽略列表中

格式化以进行复制和粘贴:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user _ReSharper.* *.resharper.user

格式化以提高可读性:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak
*.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs
CVS .CVS .cvs release Release debug
Debug ignore Ignore bin Bin obj Obj
*.csproj.user *.user _ReSharper.* *.resharper.user

1
我也将它用于:_ReSharper。*
Dve

1
请注意,Dve的注释已合并到上面的模式中。您无需再次添加。
Hydrargyrum

34

我对Visual Studio的忽略模式:

* / bin * / obj * /发布* / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe * .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper * .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper。* bin obj * .resharperoptions * .db * .bak * _ReSharper * * .snk记录输出测试结果* .crunchsolution 。* * .crunchproject。*

格式化以提高可读性

* / bin * / obj * /发布* / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe 
* .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper 
* .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper。* bin对象 
* .resharperoptions * .db * .bak * _ReSharper * * .snk记录输出TestResults 
* .crunchsolution。* * .crunchproject。*

16

每次遇到通常不希望在存储库中使用的文件时,都会更新该模式。我相信没有“最佳”模式-它始终取决于所使用的语言和环境

而且,您不太可能想到所有可能的“可忽略”文件类型-您将总是遇到一个根本忘记包含的文件类型。这就是为什么在运行时更新模式效果最佳的原因。


2
我同意绝对意义上没有“最佳”模式,这就是为什么我添加了(或尽可能好的)。您是正确的,您不会全部列举它们,并且确实取决于lang&env,我也说过。但是,有很多您可以立即击倒。
Zach Burlingame

1
同样,在添加过程中,对于单个开发人员环境也可以正常使用,但是当一个项目中有多个开发人员时,希望有一个通用的项目忽略模式。您需要尽可能不频繁地更新它,所以您想提前删除尽可能多的内容
Zach Burlingame

当然,我必须同意通常先设置* .bin * .bak * .pdb * .suo等的常规模式。但是,一旦您在存储库文件夹上设置了ignore属性,它们就会有效地共享-尽管我知道这并不完全是您的意思。
彼得·k。

11

Windows用户可能想扔出desktop.ini和thumbs.db。


4

用于我的Visual Studio项目

*/bin */obj *.user *.suo

您可以从此处扩展更多文件类型。


我今天早些时候看到了类似的列表-* / bin和just bin有什么区别?假设您要忽略整个文件夹。
harpo

阅读第5.13节。忽略TortoiseSVN帮助文件的文件和目录。
icelava

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… 那里说您不应该包含/或\,并且包含它们是早期版本的遗产
Simon D

@Simon,不是在(在“全局忽略列表中没有路径”插图中)表示路径可以svn:ignore,但在全局忽略列表中不是吗?
马修·弗拉申


1

Mac用户可能想抛出.DS_Store。另外,如果有开发人员正在使用Emacs或Vim,则可能要添加〜〜和##。


1

对于Eclipse,我使用:

bin
.*

。*获取所有项目配置。您几乎永远都不想签入“隐藏”目录或文件,但是,如果它出现了,您仍然可以svn添加它。


obj以及* .user文件也是必需的
jrojo 2012年

1

由于您可能在项目中使用了第三方库和dll,所以我看不出从存储库中阻止* .lib和* .dll的智慧。这些就是要存储在存储库中的东西。


5
使用第三方库,dll,exe等时,只需显式添加它们即可。如果要执行整个第三方树,只需暂时禁用忽略模式。但是,您不希望在日常开发过程中隐式地选择这些类型,因此将它们包含在模式中。
Zach Burlingame,

1

Visual Studio 2010用户应添加ipch(包含C ++预编译头的文件夹)和*.sdf(Intellisense用于任何类型项目的巨大文件)。


0

模式取决于您使用的操作系统。

在Linux上,您首先要阻止**。o *,**。so *,**。a *和**。la *。您可能还希望阻止**〜*(编辑时的备份文件)和#*#(崩溃崩溃后的emacs备份)。

在Windows上,您至少需要**。obj *,**。lib *和**。dll *。

您需要阻止的任何其他文件取决于您的IDE,编辑器和编译器。





0

gitignore.io为git提供了可配置的模式。它们提供了可读的列表,您需要重新设置格式以使用SVN。

例如,请求MicrosoftOffice和Windows返回

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

0

gitignore.io为git提供了可配置的模式。它们提供了可读的列表,您需要重新设置格式以使用SVN。

例如,请求MicrosoftOffice和Windows返回

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

看来它可以直接用作 svn:global-ignore

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.