Il miglior SVN generale ignora il pattern?


175

Qual è il migliore (o il meglio possibile) SVN generale da ignorare?

Esistono diversi file specifici IDE, editor, compilatore, plug-in, piattaforma, ecc. Specifici e alcuni tipi di file che "si sovrappongono" (vale a dire desiderabili per alcuni tipi di progetti e non per altri).

Esistono tuttavia numerosi tipi di file che non si desidera che vengano mai inclusi automaticamente nel controllo del codice sorgente indipendentemente dalle specifiche dell'ambiente di sviluppo.

La risposta a questa domanda servirebbe da buon punto di partenza per qualsiasi progetto, richiedendo solo loro di aggiungere i pochi elementi specifici dell'ambiente di cui hanno bisogno. Potrebbe essere adattato anche per altri sistemi di controllo versione (VCS).


Ciao Zach, ho letto questo tuo post: zachburlingame.com/2011/03/… e ho un paio di domande ... C'è un modo per contattarti con questo? Grazie per il tuo tempo ... PS: Non ho trovato altro modo per raggiungerti se non attraverso questo commento qui, scusami per il disturbo
Brams

Risposte:


193

Aggiungerò i miei due centesimi a questa domanda:

Uso il seguente modello di ignora SVN con TortoiseSVN e Subversion CLI per progetti C ++, C # / VB.NET e PERL nativi su piattaforme Windows e Linux. Funziona bene per me!

Formattato per copia e incolla:

* .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 ignora Ignora bin Bin obj Obj * .csproj.user * .user * .generated.cs

Formattato per la leggibilità:

* .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 Rilascia il debug Debug
ignora Ignora bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

5
Che dire di * .tmp * .temp?
Bob King,

3
Inoltre, se esegui WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King,

6
è richiesto * .dll come potrebbe essere il caso in cui gli assembly di riferimento devono essere sottoposti a commit anche nel repository?
Jaroslav Urban

6
@Xabatcha: è sempre possibile includere in modo esplicito un file di qualsiasi estensione (o cartella) indipendentemente dal fatto che sia elencato o meno nel modello di ignoramento globale. Generalmente non vuoi che * .dll venga tracciato da SVN, ma puoi sempre aggiungere esplicitamente quelli necessari (cosa che faccio spesso nel caso di assiemi di terze parti).
Zach Burlingame,

2
Se stai usando ReSharper, aggiungi anche quello
autonomatt

44

Basandomi sul modello ignore di Burly, ho aggiunto ReSharper all'elenco ignora

Formattato per copia e incolla:

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

Formattato per la leggibilità:

*.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
lo uso solo anche con: _ReSharper. *
Dve

1
Nota che il commento di Dve è stato incorporato nel modello sopra. Non è necessario aggiungerlo di nuovo.
Hydrargyrum,

34

Il mio modello ignora per 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 registra output TestResults * .crunchsolution . * * .crunchproject. *

Formattato per leggibilità

* / 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 registra l'output TestResults 
* .crunchsolution. * * .crunchproject. *

16

Ogni volta che trovo un file che generalmente non desidero nel repository, aggiorno il modello. Credo che non esista un modello "migliore": dipende sempre dalla lingua e dall'ambiente in cui ti sviluppi.

Inoltre, non è molto probabile che tu pensi a tutti i possibili tipi di file "ignorabili": incontrerai sempre un tipo di file che hai semplicemente dimenticato di includere. Ecco perché l'aggiornamento del modello mentre procedi funziona meglio.


2
Sono d'accordo che non esiste uno schema "migliore" in senso assoluto, motivo per cui ho aggiunto il (o il più buono possibile). Hai ragione, non li enumererai tutti e dipende dal lang & env, che ho anche affermato. Tuttavia, ci sono molti numeri che puoi eliminare immediatamente.
Zach Burlingame,

1
Inoltre, aggiungendoli man mano che procedi, va bene per i singoli ambienti di sviluppo, quando hai più sviluppatori su un progetto, è desiderabile avere un progetto da ignorare. Devi aggiornarlo il più raramente possibile, quindi devi eliminarne il maggior numero possibile in anticipo
Zach Burlingame,

Ovviamente, il solito schema di * .bin * .bak * .pdb * .suo ecc. Ecc. Deve essere impostato in anticipo, sono d'accordo. Ma una volta impostate le proprietà ignore su una cartella del repository, diventano effettivamente condivise - anche se sono consapevole che questo non è esattamente ciò che intendevi.
petr k.

11

Gli utenti Windows potrebbero voler lanciare desktop.ini e thumbs.db.


4

Utilizzato per i miei progetti Visual Studio

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

È possibile espandere più tipi di file da lì.


Oggi ho visto un elenco simile: qual è la differenza tra * / bin e solo bin? Supponendo di voler ignorare l'intera cartella.
Harpo,

Leggi la sezione 5.13. Ignora file e directory del file della guida di TortoiseSVN.
Icelava,

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… Lì dice che non dovresti includere un / o \, e che includerli è un'eredità di versioni precedenti
Simon D

@Simon, non sta dicendo (nel riquadro "No Paths in Global Ignore List") che i percorsi sono a posto svn:ignore, ma non nell'elenco globale ignore?
Matthew Flaschen,

3

Gli utenti di Visual Studio (VC ++) devono assolutamente escludere i file .ncb


1

Gli utenti Mac probabilmente vogliono inserire .DS_Store. Inoltre, se ci sono sviluppatori che usano Emacs o Vim, probabilmente vorrai aggiungere ~ ~ e # #.


1

Per Eclipse, utilizzo:

bin
.*

. * ottiene tutta la configurazione del progetto. Non vorrai quasi mai archiviare una directory o un file "nascosto", ma se si presenta, puoi comunque svn aggiungerlo.


obj è anche necessario, così come i file * .user
jrojo

1

Dato che potresti usare librerie e dll di terze parti come parte del / i progetto / i, non vedo la saggezza nel bloccare * .lib e * .dll dal repository. Queste sono le cose che dovrebbero essere archiviate nel repository.


5
Quando si usano librerie di terze parti, DLL, exe, ecc., Basta aggiungerle esplicitamente. Se vuoi fare un intero albero di terze parti, disabilita temporaneamente il pattern ignore. Tuttavia, non si desidera che questi tipi vengano raccolti implicitamente durante lo sviluppo quotidiano, quindi la loro inclusione nel modello.
Zach Burlingame,

1

Gli utenti di Visual Studio 2010 dovrebbero aggiungere ipch(una cartella che contiene intestazioni precompilate in C ++) e *.sdf(enormi file utilizzati da intellisense per qualsiasi tipo di progetto).


0

Il modello dipende dal sistema operativo in uso.

Su Linux, ti consigliamo di bloccare **. O *, **. So *, **. A * e **. La * per cominciare. Potresti anche voler bloccare ** ~ * (file di backup dalla modifica) e # * # (emacs backup da un arresto anomalo).

Su Windows, avrai almeno **. Obj *, **. Lib * e **. Dll *.

Qualsiasi altro file che devi bloccare dipende dal tuo IDE, editor e compilatore.


0

Devi aggiungere Resharper al mix se ne usi uno.

un altro da cercare è Ankh *. *


Sì, ho lasciato fuori la maggior parte dei flag specifici dello strumento tranne Visual Studio. Speriamo che altri continuino ad aggiungere risposte con elenchi espliciti di modelli di file per i loro vari strumenti!
Zach Burlingame,



0

gitignore.io fornisce modelli configurabili per git. Forniscono un elenco leggibile, che è necessario riformattare per SVN.

Ad esempio, la richiesta di MicrosoftOffice e Windows restituisce

# 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 fornisce modelli configurabili per git. Forniscono un elenco leggibile, che è necessario riformattare per SVN.

Ad esempio, la richiesta di MicrosoftOffice e Windows restituisce

# 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

Sembra che possa essere usato direttamente come svn:global-ignore

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.