Il miglior pattern generale per ignorare SVN?
Domanda
Qual è il modello generale di ignoranza SVN migliore (o il più buono possibile) da utilizzare?
Esistono numerosi IDE, editor, compilatori, plug-in, piattaforme, ecc. diversi.file specifici e alcuni tipi di file che "si sovrappongono" (ad es.desiderabile per alcuni tipi di progetti e non per altri).
Esistono tuttavia numerosi tipi di file che non vorresti mai includere automaticamente nel controllo del codice sorgente, indipendentemente dalle specifiche del tuo ambiente di sviluppo.
La risposta a questa domanda costituirebbe un buon punto di partenza per qualsiasi progetto, richiedendo solo di aggiungere i pochi elementi specifici dell'ambiente di cui hanno bisogno.Potrebbe essere adattato anche per altri sistemi di controllo versione (VCS).
Soluzione
Aggiungerò i miei due centesimi a questa domanda:
Utilizzo il seguente pattern di ignoranza SVN con TortoiseSVN e Subversion CLI per progetti nativi C++, C#/VB.NET e PERL su piattaforme Windows e Linux.Funziona bene per me!
Formattato per copiare e incollare:
*.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 *.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 Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user *.generated.cs
Altri suggerimenti
In base al modello di ignoranza di Burly, ho aggiunto ReSharper all'elenco di ignoranza
Formattato per copiare e incollare:
*.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 da 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 logs 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 logs output TestResults *.crunchsolution.* *.crunchproject.*
Ogni volta che mi imbatto in un file che generalmente non desidero nel repository, aggiorno il pattern.Credo che non esista uno schema "migliore": esiste sempre dipende dalla lingua e dall'ambiente ti sviluppi in.
Inoltre, è molto improbabile che tu pensi a tutti i possibili tipi di file "ignorabili": incontrerai sempre un tipo di file che semplicemente hai dimenticato di includere.Ecco perché aggiornare il modello man mano che procedi funziona meglio.
Gli utenti Windows potrebbero voler inserire desktop.ini e Thumbs.db.
Utilizzato per i miei progetti di Visual Studio
*/bin */obj *.user *.suo
Da lì puoi espandere più tipi di file.
Gli utenti di Visual Studio (VC++) devono assolutamente escludere il file .ncb File
Gli utenti Mac probabilmente vorranno aggiungere .DS_Store.Inoltre, se ci sono sviluppatori che utilizzano Emacs o Vim, probabilmente vorrai aggiungere ~~ e ##.
Per Eclipse, utilizzo:
bin
.*
.* ottiene tutta la configurazione del progetto.Non vorrai quasi mai controllare una directory o un file "nascosto", ma se viene visualizzato, puoi comunque aggiungerlo con svn.
Dato che potresti utilizzare librerie e DLL di terze parti come parte dei progetti, non vedo il senso di bloccare *.lib e *.dll dal repository.Queste sono le cose che devono essere archiviate 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 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 #*# (backup di emacs da un arresto anomalo).
Su Windows, ti serviranno almeno **.obj*, **.lib* e **.dll*.
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 NCrunch file temporanei:
*.crunchsolution.* *.crunchproject.*
E core dump (cygwin, linux)
*.stackdump core.*
gitignore.io fornisce modelli configurabili per git.Forniscono un elenco leggibile, che è necessario riformattare per SVN.
Ad esempio, richiedendo MicrosoftOffice e Windows ritorna
# 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 modelli configurabili per git.Forniscono un elenco leggibile, che è necessario riformattare per SVN.
Ad esempio, richiedendo MicrosoftOffice e Windows ritorna
# 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 utilizzato direttamente come svn:global-ignore