2010-06-16 4 views
5

Je crée une liste noire sur une machine Windows en utilisant la ligne de commande suivante:Comment créer une liste d'ignorés de plusieurs éléments dans SVN?

svn propset svn:ignore "bin" Fardis.Test 

La structure arborescence est:

\src\ 
\src\Fardis.Test\ 
\src\Fardis.Test\bin\ 
\src\Fardis.Test\obj\ 

Je courais cette commande alors que mon répertoire en cours est \src. Cela fonctionne très bien, mais je veux ajouter un autre dossier, \src\Fardis.Test\obj\ à la liste des ignorés, mais il échoue. J'ai essayé les éléments suivants:

svn propset svn:ignore "bin obj" Fardis.Test 
svn propset svn:ignore "bin, obj" Fardis.Test 
svn propset svn:ignore "bin; obj" Fardis.Test 

Après émission dont l'un d'entre eux, svn status montre qu'aucun des dossiers bin ou obj sont ajoutés à la liste des ignorés.

Comment puis-je résoudre ce problème?

Répondre

7

Utilisez svn propedit au lieu de svn propset et placez chaque motif sur une ligne distincte dans la fenêtre de l'éditeur.

Jetez également un oeil à setting global-ignores in your config pour les fichiers et répertoires qui devraient être ignorés dans toute copie de travail. C'est généralement une meilleure façon d'exclure le débogage et la sortie binaire des répertoires contenant beaucoup de projets.

+0

+1 pour global-ignores – 010110110101

24

Je crée généralement un fichier .svnignore. Voir svn:ignore Effectuez ensuite:

$ svn propset svn:ignore -F .svnignore . 
    property 'svn:ignore' set on '.' 

.svnignore:

*.pyc 
*~ 

EDIT: Je ajouter le .svnignore à la prise en pension aussi de garder une trace de celui-ci.

+0

votre solution semble beaucoup trop. tnks. –

+2

Malheureusement cela ne fonctionne pas récursivement comme avec Git. Vous auriez probablement besoin d'ajouter le paramètre '-R' pour appliquer le contenu du fichier à tous les sous-répertoires existants (pas futurs!), Mais les modèles sont probablement faux pour les sous-répertoires. – ygoe

+0

Ou utilisez 'svn: global-ignores' si vous êtes à subversion 1.8. – Dormouse

0

Méthode

Il est de manière flexible sans utiliser global-ignores. Par exemple, vous pouvez créer deux fichiers: .svn-ignore et 0.svn-ignore-recur.

svn-ignore-récidivent

.idea 
*.pyc 
*.aux 
*.out 
*.ilg 
*.toc 
64bit-Debug 

svn- ignorer

.idea 
*.pyc 
*.aux 
*.out 
*.ilg 
*.toc 
64bit-Debug 
# below is difference 
base 
ta.txt 
ta.html 

Ensuite, vous devez appeler deux commandes (séquence est importante).

svn propset svn:ignore -F .svn-ignore-recur . --recursive 
svn propset svn:ignore -F .svn-ignore . 

Ainsi, vous obtenez la façon d'ignorer certains fichiers récursive, et d'autres fichiers à la racine de votre référentiel.

Pour simplifier un problème, il est raisonnable de créer .sh et/ou .bat fichiers:
svn-Ignor.! Bat

svn propset svn:ignore -F .svn-ignore-recur . --recursive 
svn propset svn:ignore -F .svn-ignore . 


svn-ignor.sh

#!/bin/sh 

sh ./!svn-ignor.bat 

Bien sûr, vous devez ajouter le fichier:

svn add .svn-ignore* !svn-ignor.* 

supplémentaires

Il est clair que vous chat créer un fichier comme .svn-ignore-some-subdir

*.dvi 
*.cot 
seven_doo 

et appelez

svn propset svn:ignore -F .svn-ignore-some-subdir ./sub/sub1/sub2 
Questions connexes