Visual Studio 2008项目的Mercurial .hgignore

使用Visual Studio 2008时,什么是.hgignore文件的良好设置?

我主要是自己开发,只是偶尔我克隆存储库给其他人来处理它。

我正在考虑obj文件夹,.suo,.sln,.user文件等。他们可以只是被包括或有我不应该包括的文件?

谢谢!

PS:目前我做了以下操作:忽略所有.pdb文件和所有obj文件夹。

# regexp syntax. syntax: glob *.pdb syntax: regexp /obj/ 

这是我用于VS2008的标准.hgignore文件,最初是从一个Git忽略文件修改的:

 # Ignore file for Visual Studio 2008 # use glob syntax syntax: glob # Ignore Visual Studio 2008 files *.obj *.exe *.pdb *.user *.aps *.pch *.vspscc *_i.c *_p.c *.ncb *.suo *.tlb *.tlh *.bak *.cache *.ilk *.log *.lib *.sbr *.scc [Bb]in [Dd]ebug*/ obj/ [Rr]elease*/ _ReSharper*/ [Tt]est[Rr]esult* [Bb]uild[Ll]og.* *.[Pp]ublish.xml 

这是特定于C#项目,但我忽略这些文件/目录:

  • *.csproj.user
  • /obj/*
  • /bin/*
  • *.ncb
  • *.suo

在忽略所有这些文件后,我在运行其他机器上的代码库时没有问题。 找出你需要保留的最简单的方法是复制文件夹,并开始删除你认为没有必要的东西。 不断尝试构build,只要你能成功地继续删除。 如果删除太多,请将其从源文件夹复制。

最后,你将拥有一个完整的唯一文件必须提交的完整目录。

我觉得没有谈话。 这是我的.hgignore文件。 它涵盖了C#,C ++和Visual Studio开发,包括COM东西(types库),一些最终的生成器文件,CodeRush,ReSharper和Visual Studio项目升级。 它也有一些忽略现代(c.2015)networking发展。

 syntax: glob * - [Cc]opy * - [Cc]opy/ * - [Cc]opy (?)/ * - [Cc]opy.* * - [Cc]opy (?).* **/.* **/scss/*.css *.*scc *.FileListAbsolute.txt *.aps *.bak *.bin *.[Cc]ache *.clw *.css.map *.eto *.exe *.fb6lck *.fbl6 *.fbpInf *.ilk *.lib *.log *.ncb *.nlb *.nupkg *.obj *.old *.orig *.patch *.pch *.pdb *.plg *.[Pp]ublish.xml *.rdl.data *.sbr *.scc *.sig *.sqlsuo *.suo *.svclog *.tlb *.tlh *.tli *.tmp *.user *.vshost.* *.docstates *DXCore.Solution *_i.c *_p.c __MVC_BACKUP/ _[Rr]e[Ss]harper.*/ _UpgradeReport_Files/ Ankh.Load Backup* [Bb]in/ bower_components/ [Bb]uild/ CVS/ [Dd]ebug/ [Ee]xternal/ hgignore[.-]* ignore[.-]* lint.db node_modules/ [Oo]bj/ [Pp]ackages/ PrecompiledWeb/ [Pp]ublished/ [Rr]elease/ svnignore[.-]* [Tt]humbs.db UpgradeLog*.* 

下面是C#Visual Studio项目的.hgignore的内容:

 syntax: glob *.user *.ncb *.nlb *.suo *.aps *.clw *.pdb *\Debug\* *\Release\* 

一些注意事项:

  1. 如果除“debugging”和“发布”之外还有自定义“发布”,则可能需要添加它们。
  2. 手动编辑.hgignore时要小心。 如果出现语法错误,那么hgtortoise将不再打开提交对话框。

我的Mercurial .hgignore文件内容:

 syntax: glob #-- Files *.bak.* *.bak thumbs.db #-- Directories App_Data/* bin/ obj/ _ReSharper.*/ tmp/ #-- Microsoft Visual Studio specific *.user *.suo #-- MonoDevelop specific *.pidb *.userprefs *.usertasks 

请记住,我主要使用Microsoft Visual Studio和偶尔使用MonoDevelop的WinForms,ASP.NET MVC和Mobile项目。 根据您的工具集和项目types,您可能会遇到其他应该忽略的文件。

我试图保持CodePaste.NET的最新版本在http://codepaste.net/zxov7i

我使用的其他一些:

 output PrecompiledWeb _UpgradeReport_Files #Guidance Automation Toolkit *.gpState #patches *.patch 

这里有几个麻烦的:Matlab和Excel / Office自动保存。

 # use glob syntax syntax: glob # Matlab ignore files *.asv # Microsoft Office ~$* 

如果我不小心添加它们,然后closures打开的真实文件,Excel和/或Matlab将删除自动保存,然后Mercurial会卡住想知道他们去哪里。 我确定还有其他的程序可以做类似的事情。