Mercurial .hgignore for Visual Studio 2008 projects

24,950

Solution 1

Here's my standard .hgignore file for use with VS2008 that was originally modified from a Git ignore file:

# 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

Solution 2

This is specific to a C# project, but I ignore these files/directories:

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

I have no problems running the code in the depot on other machines after I ignore all of these files. The easiest way to find out what you need to keep is to make a copy of the folder and start deleting things you think aren't necessary. Keep trying to build, and as long as you can build successfully keep on deleting. If you delete too much, copy it from the source folder.

In the end you'll have a nice directory full of the only files that have to be committed.

Solution 3

I feel left out of the conversation. Here's my .hgignore file. It covers C#, C++ and Visual Studio development in general, including COM stuff (type libraries), some final builder files, CodeRush, ReSharper, and Visual Studio project upgrades. It also has some ignores for modern (c.2015) web development.

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*.*

Solution 4

Here is the content of my .hgignore for C# Visual Studio projects:

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

A few notes:

  1. If you have custom "releases" besides "Debug" and "Release", you may need to add them.
  2. Be careful when you manually edit your .hgignore. If you make a syntax error, then hgtortoise will no longer open the commit dialog.

Solution 5

My Mercurial .hgignore file contents:

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

Keep in mind that I mainly work on WinForms, ASP.NET MVC and Mobile projects using Microsoft Visual Studio and occasionally MonoDevelop. Depending on your toolset and project types, you will probably encounter other files that should be ignored.

I try to keep the latest version on CodePaste.NET at http://codepaste.net/zxov7i

Share:
24,950

Related videos on Youtube

Johannes
Author by

Johannes

Updated on March 12, 2020

Comments

  • Johannes
    Johannes over 4 years

    What is a good setup for .hgignore file when working with Visual Studio 2008?

    I mostly develop on my own, only occasionly I clone the repository for somebody else to work on it.

    I'm thinking about obj folders, .suo, .sln, .user files etc.. Can they just be included or are there file I shouldn't include?

    Thanks!

    p.s.: at the moment I do the following : ignore all .pdb files and all obj folders.

    # regexp syntax.
    syntax: glob
    *.pdb
    
    syntax: regexp
    /obj/
    
    • Slavo
      Slavo over 14 years
      Side note: I think the .sln files should not be excluded from source control
    • Even Mien
      Even Mien over 14 years
      Slavo, you are correct. Solution files (.sln) contain the structure of your projects, so you'll want to include those in your repository.
  • Ash Machine
    Ash Machine about 15 years
    I also ignore *.config files, since my developer team all run under slightly different environments (local db instance, local email server, etc.) Also, passwords reside in the web.config.
  • Even Mien
    Even Mien about 15 years
    No, but they have the same concept of an ignore file.
  • Even Mien
    Even Mien about 14 years
    @sebastiaan Only if the OP accepts his own answer: meta.stackexchange.com/questions/23049/… (and thanks!)
  • Even Mien
    Even Mien about 14 years
    @Nate This has been here a year and you're the first to notice that. Good catch! Updated to [Dd]ebug.
  • Ben McCormack
    Ben McCormack almost 14 years
    I was looking for the ignore code that Rob Connery used in his Mercurial for Codeplex Tekpub video and it matched this exactl. Great job!
  • irag10
    irag10 over 13 years
    For me this meant a file called Debug.Something.dll.config was ignored, so I think the trailing / on [Dd]ebug*/ doesn't have the desired effect. Perhaps for windows it should be [Dd]ebug*\ ?
  • irag10
    irag10 over 13 years
    For me this meant a file called Debug.Something.dll.config was ignored, so I think the trailing / on [Dd]ebug*/ doesn't have the desired effect. I think the problem is with the glob-style syntax not correctly matching on directories. If you take out the Debug and Release lines and replace them with three new lines at the bottom of the file: syntax: regexp and [Rr]elease.*/ and [Dd]ebug.*/ then it seems to work correctly.
  • shmeeps
    shmeeps almost 13 years
    I always thought you needed .suo for it, thanks for the tip. We had conflicts all the time on it.
  • Sebastian
    Sebastian over 10 years
    +1, yours is using Debug/, so will not ingore "Debug.something.cs"