Domanda

Non voglio una directory di nome build o dist di andare nella mia SVN, non importa quanto in profondità nella struttura che è.

È possibile? In git ho appena messo

build
dist

nel mio .gitignore alla radice e ignora in modo ricorsivo. Come posso fare questo con svn? Si prega di non dirmi di fare un propset su ogni dir genitore ...

È stato utile?

Soluzione

Come di sovversione 1.8, v'è ora la proprietà svn:global-ignores che funziona come svn:ignore ma ricorsivamente (quindi impostare questo sulla vostra directory di livello superiore)

Altri suggerimenti

svn propset prende --recursive come opzione, in modo da poter fare questo, con due aspetti negativi:

  1. si controlla l'intero repository (o almeno tutte le directory in essa), e
  2. si deve ricordare di impostare la proprietà svn:ignore ogni volta che si aggiunge una nuova directory

Non è possibile farlo. Ci sono solo due ignorare meccanismi in Subversion, svn:ignore (che è non ricorsivo) e global-ignores (che non è specifico per un repository).

Questo funziona per me:

 svn propset --recursive svn:ignore *.zip <dir_tree_with_no_zips>

aggiungere al vostro ~ / .subversion / config o etc / / file di configurazione / subversion:

[miscellany]
global-ignores = build dist

E 'possibile ignorare accumulo e dirs dist rimuovendo le directory dal controllo di versione. Il trucco è quello di utilizzare l'opzione --keep-locale per lasciare la directory nella copia di lavoro. Ad esempio:

svn rm dist --keep-local
svn ci -m'removed build directory from version control'

La directory non sarà più monitorata da eversione, ma sarà ancora lì nella copia di lavoro di tenere l'output del compilatore, ecc.

applausi, joe

Ad esempio la struttura delle cartelle:

Project/
Project/dist/

cd Project
svn propset svn:ignore '*' dist/
svn ci -m "content of dist ignored"

E 'bene fare uno svn delete di contenuti dist prima del comando di ignorare, così per i rami dist sarà vuota.

ha funzionato per me, testato oggi. href="http://www.heavymind.net/2007/08/29/the-nightmare-has-returned-with-new-name-svnignore/" Ecco la pagina che spiega che un po '

Al fine di ignorare tutti questi file in tutti i repository, si potrebbe aggiungere un global-ignores al file di configurazione per ogni utente.

  

Su sistemi Unix-like, questa zona   appare come una directory chiamata   .subversion nella home dell'utente   directory. Nei sistemi Win32,   Subversion crea una cartella denominata   Eversione, tipicamente all'interno   Applicazione Area dati degli utenti del   directory profilo

configurazione

Purtroppo, non c'è nessuna opzione per-repository per fare questo. E 'fondamentalmente per utente, o per-directory, in modo che il svn:ignores multipla è probabilmente la strada da percorrere, come fastidioso come può essere.

Per prima cosa dovete spostare nella cartella superiore della vostra copia di lavoro e creare un file lì (diciamo .svnignore), dove è necessario posizionare tutti i modelli che si desidera essere ignorato, per esempio (per un progetto Android):

bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex

Poi si esegue il comando seguente (ricordate che devi essere nella cartella principale della vostra copia di lavoro):

svn propset svn:ignore -R -F .svnignore .

Questo funziona solo per le cartelle ei file che non sono ancora sotto il controllo di versione. Se si desidera una cartella (o file) che viene di versione per iniziare a essere ignorati e, rimuoverlo dal controllo di versione eseguendo il comando:

svn rm --keep-local <path>

Hai tutto questo da questo grande articolo che spiega tutto: http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/

in Subversion 1.8 sopra, è possibile impostare a livello mondiale-ignora per repository corrente.

svn propset svn:global-ignores build .
svn propset svn:global-ignores dist .

Inoltre è possibile creare una cartella denominata .svnignore, e le condizioni di scrivere.

build
dist

ricordare una condizione per riga, impostando costruire / * o dist / debug è vano. Poi fate il comando:

svn propset svn:global-ignores -F .svnignore .

Creare un file e aggiungi le ignora in esso

Ingore-list:

file1 
directory1
file2
etc...

quindi applicare il seguente comando

for n in directory; do svn propset svn:ignore -F ignore-list $n; done

directory è il nome della directory, è possibile classificare sub e / sub-directory directory. Oppure utilizzare * notare directory corrente si è sotto.

Questo è supponendo che si sta utilizzando bash come shell

svn propset --recursive svn:ignore svn_ignore_rules .

dove svn_ignore_rules è un file contenente le regole ignorano - uno per riga

Naturalmente è necessario rieseguire ogni volta che si aggiunge una nuova directory al tuo repo

svn_ignore_rules possono essere considerati da verificare nel repository, di essere ri-utilizzabile da altri utenti che hanno accesso in scrittura al repository

cd parent_dir #the directory containing folder to be ignored recursively
svn propedit svn:ignore . #will open up svn-prop.tmp
enlist folder(s)
^X
Y
commit -m 'ignore targeted direcoty'

Un modo potrebbe essere quella di aggiungere un qualche tipo di controllo sia al pre o post-commit hook, ma è nota dritto in avanti se non si possiede il server di pronti contro termine.

Dato che non sembra esserci alcuna soluzione per questo problema probabilmente comune, vorrei condividere la nostra soluzione. Come gli altri già chiarito, è possibile utilizzare la proprietà svn:ignore, questo vale per una singola directory (e quindi non per quelli nuovi), o se si utilizza global-ignores che si applica ad un singolo utente (ma non appartiene al repository) .

Per rendere la vita un po 'più facile che ho creato un file di registro denominato Settings.Svn.reg e ha aggiunto alla radice del repository. Ora tutti possono doublecklick questo regfile una volta, e ha le impostazioni effettuate.

REGEDIT4

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"global-ignores"="obj *.suo *.bak *.pdb *.user *.Cache*"

Vorrei davvero apprezzare una soluzione all'interno del repository SVN, quindi se qualcuno lo sa, ti andrebbe di condividere?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top