Mercurial .hgignore per progetti Visual Studio 2008


164

Qual è una buona configurazione per il file .hgignore quando si lavora con Visual Studio 2008?

Per lo più sviluppo da solo, solo occasionalmente clonare il repository affinché qualcun altro ci lavori.

Sto pensando a cartelle obj, .suo, .sln, file .user ecc. Possono essere semplicemente inclusi o ci sono file che non dovrei includere?

Grazie!

ps: al momento faccio quanto segue: ignoro tutti i file .pdb e tutte le cartelle obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/

6
Nota a margine: penso che i file .sln non debbano essere esclusi dal controllo del codice sorgente
Slavo

2
Slavo, hai ragione. I file di soluzione (.sln) contengono la struttura dei tuoi progetti, quindi ti consigliamo di includerli nel tuo repository.
Anche Mien il

Risposte:


208

Ecco il mio file .hgignore standard da utilizzare con VS2008 che è stato originariamente modificato da un file Git ignore:

# 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

4
No, ma hanno lo stesso concetto di file ignorato.
Anche Mien il

2
La riga [Db] ebug * / - Suppongo che dovrebbe essere una lettera minuscola e non una b minuscola, ho usato questo elenco ignorato come modello e mi ci è voluto un minuto per capire perché diavolo non fosse una cartella "debug" t essere ignorato :) Grazie per l'ottimo file ignorato.
Nate Pinchot,

4
Stavo cercando il codice ignorato che Rob Connery ha usato nel suo video Mercurial per Codeplex Tekpub e corrispondeva a questo esatto. Ottimo lavoro!
Ben McCormack,

1
Per me questo significava che un file chiamato Debug.Something.dll.config è stato ignorato, quindi penso che il trailing / on [Dd] ebug * / non abbia l'effetto desiderato. Forse per Windows dovrebbe essere [Dd] ebug * \?
Rory,

2
Per me questo significava che un file chiamato Debug.Something.dll.config è stato ignorato, quindi penso che il trailing / on [Dd] ebug * / non abbia l'effetto desiderato. Penso che il problema sia che la sintassi in stile glob non corrisponde correttamente alle directory. Se si prendono le linee di debug e di uscita e sostituirli con tre nuove linee alla fine del file: syntax: regexpe [Rr]elease.*/e [Dd]ebug.*/poi sembra funzionare correttamente.
Rory,

37

Questo è specifico per un progetto C #, ma ignoro questi file / directory:

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

Non ho problemi a eseguire il codice nel deposito su altre macchine dopo aver ignorato tutti questi file. Il modo più semplice per scoprire cosa è necessario conservare è fare una copia della cartella e iniziare a cancellare le cose che ritieni non siano necessarie. Continua a provare a compilare e finché riesci a compilare correttamente continua a eliminare. Se si elimina troppo, copiarlo dalla cartella di origine.

Alla fine avrai una bella directory piena degli unici file che devono essere impegnati.


5
Inoltre ignoro i file * .config, poiché il mio team di sviluppatori viene eseguito in ambienti leggermente diversi (istanza db locale, server di posta elettronica locale, ecc.) Inoltre, le password risiedono in web.config.
Ash Machine,

Ho sempre pensato che avessi bisogno di .suo per questo, grazie per il suggerimento. Abbiamo avuto conflitti per tutto il tempo.
shmeeps

24

Mi sento escluso dalla conversazione. Ecco il mio file .hgignore. Copre lo sviluppo di C #, C ++ e Visual Studio in generale, inclusi elementi COM (librerie dei tipi), alcuni file del builder finale, CodeRush, ReSharper e aggiornamenti del progetto Visual Studio. Ha anche alcuni punti da ignorare per lo sviluppo web moderno (c.2015).

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

+1, il tuo sta usando Debug /, quindi non verrà importato "Debug.something.cs"
Sebastian

11

Ecco il contenuto del mio .hgignore per i progetti di Visual Studio in C #:

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

Alcune note:

  1. Se hai "rilasci" personalizzati oltre a "Debug" e "Rilascio", potresti doverli aggiungere.
  2. Fai attenzione quando modifichi manualmente il tuo .hgignore. Se si commette un errore di sintassi, hgtortoise non aprirà più la finestra di dialogo di commit.

8

Il mio file 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

Tieni presente che lavoro principalmente su progetti WinForms, ASP.NET MVC e Mobile utilizzando Microsoft Visual Studio e occasionalmente MonoDevelop. A seconda del set di strumenti e dei tipi di progetto, probabilmente incontrerai altri file che dovrebbero essere ignorati.

Cerco di mantenere l'ultima versione su CodePaste.NET all'indirizzo http://codepaste.net/zxov7i


4

alcuni altri che uso:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch

3

Eccone alcuni fastidiosi: salvataggi automatici Matlab ed Excel / Office.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Se li aggiungo accidentalmente e poi chiudo il file reale che era aperto, Excel e / o Matlab elimineranno il salvataggio automatico e Mercurial rimarrà bloccato chiedendosi dove sono andati. Sono sicuro che ci sono altri programmi che fanno cose simili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.