Migliore modello SVN generale di ignoranza?

Qual è il migliore (o il più buono ansible) SVN generale per ignorare il modello da usare?

Esistono diversi file specifici per IDE, editor, compilatore, plug-in, piattaforma, ecc. E alcuni tipi di file che “si sovrappongono” (cioè desiderabili per alcuni tipi di progetti e non per altri).

Tuttavia, esiste un numero elevato di tipi di file che non si desidera includere nel controllo sorgente automaticamente, 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 ad altri Version Control Systems (VCS).

Aggiungerò i miei due centesimi a questa domanda:

Uso il seguente pattern ignora SVN con TortoiseSVN e Subversion CLI per i progetti nativi C ++, C # / VB.NET e PERL su entrambe le piattaforms 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 Rilascio 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 Rilascio debug Debug ignora Ignora bin Bin obj Obj * .csproj.user * .user * .generated.cs 

Basato sul pattern di ignoranza di Burly, ho aggiunto ReSharper all’elenco di 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 

Il mio pattern di ignorare 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 l'output TestResults * .crunchsolution . * * .crunchproject. *

Formattato per la 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 output TestResults 
 * .crunchsolution. * * .crunchproject. *

Ogni volta che mi imbatto in un file che generalmente non voglio nel repository, aggiorno il pattern. Credo che non esista uno schema “migliore”, dipende sempre dalla lingua e dall’ambiente in cui ci si sviluppa.

Inoltre, non è molto probabile che tu pensi a tutti i possibili tipi di file “ignorabili”: troverai sempre un tipo di file che hai semplicemente dimenticato di includere. Ecco perché aggiornare il pattern mentre vai funziona al meglio.

Gli utenti di Windows potrebbero voler inserire desktop.ini e thumbs.db.

Utilizzato per i miei progetti di Visual Studio

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

Puoi espandere altri tipi di file da lì.

Gli utenti di Visual Studio (VC ++) hanno sicuramente bisogno di escludere i file .ncb

Probabilmente gli utenti Mac vorranno lanciare .DS_Store. Inoltre, se ci sono sviluppatori che usano Emacs o Vim, probabilmente vorrai aggiungere ~ ~ e # #.

Per Eclipse, io uso:

 bin .* 

. * ottiene tutta la configurazione del progetto. Non vuoi quasi mai controllare una directory o un file “nascosto”, ma se viene visualizzato, puoi comunque aggiungerlo.

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

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

Il modello dipende dal sistema operativo che stai utilizzando.

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

Su Windows, vorrai ** .obj *, **. Lib * e **. Dll * per lo meno.

Tutti gli altri file che devi bloccare dipendono dal tuo IDE, editor e compilatore.

Devi aggiungere Resharper al mix se ne usi uno.

un altro a cui prestare attenzione è Ankh *. *

Non dimenticare i file temporanei NCrunch :

 *.crunchsolution.* *.crunchproject.* 

E core dump (cygwin, linux)

 *.stackdump core.* 

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

Ad esempio, richiede 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 

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

Ad esempio, richiede 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