I'll add my own two cents to this question:
I use the following SVN ignore pattern with TortoiseSVN and
Subversion CLI for native C++, C#/VB.NET, and PERL projects on both
Windows and Linux platforms. It works well for me!
Formatted for copy and paste:
*.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
Formatted for readability:
*.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
Based on Burly's ignore pattern, I have added ReSharper to the ignore list
*.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
My ignore pattern for Visual Studio:
*/bin */obj */Release */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 logs output
TestResults
The pattern depends on which operating system you're using.
On Linux, you'll want to block *.o, *.so, *.a, and *.la to begin with. You may also want to block *~ (backup file from editing) and #*# (emacs backup from a crash).
On Windows, you'll want *.obj, *.lib, and *.dll at the very least.
Any other files you need to block depend on your IDE, editor, and compiler.