2009-10-29 8 views
4

J'ai le modèle svn:ignore datasheets/*/*.pdf
Il est censé ignorer tous les fichiers PDF qui sont à une profondeur arbitraire sous plusieurs répertoires "datasheet" sous le dossier racine en cours.Quel est le problème avec svn: ignore pattern?

À titre d'exemple: dire que j'ai une structure dir comme celui-ci

 
Websites 
    -web1 
    -dataSheets 
     -AT 
     -ignore.pdf 
     -BE 
     -NL 
      -ignore.pdf 
     -FR 
      -ignore.pdf 
      -ignore2.pdf 
    -licenseAgreements 
     -important.pdf 
    -web2 
    -datasheets 
     -etc 

Dans cet exemple, le modèle a besoin d'ignorer tous les ignore.pdfs sans ingoring le important.pdf aussi.

Le motif affiché inclut toujours tous mes fichiers pdf.

Je sais qu'il y a un tas de questions similaires, mais aucune d'entre elles ne semble aborder le problème avec les différents niveaux de hiérarchie. Svn: ignore ne fonctionne que sur le répertoire où il a été défini.

+0

Veuillez ajouter (à la question, pas comme commentaire) la sortie de certaines commandes svn qui indiquent l'échec du modèle. Par exemple. svn status, avant et après changement de PDF: s. – unwind

+0

Je ne suis pas entièrement sûr de ce que vous voulez dire. J'ai ajouté le modèle montré aux propriétés de la racine, pdfs ajouté dans l'un des répertoires inférieurs ne sont pas ignorés –

Répondre

0

svn: ignore Pour ignorer les fichiers dans les sous-répertoires, vous devez appliquer cette propriété de manière récursive aux sous-répertoires. (Commutateur -R).

S'il vous plaît essayez ceci:

svn propset svn:ignore "*pdf" -R datasheets 
+0

il ajoute toujours tous les fichiers PDF: S –

2

De the documentation:

[U] ontrairement l'option global-ignores, les modèles trouvés dans la propriété svn:ignore appliquent uniquement au répertoire sur lequel cette propriété est définie et pas à l'un de ses sous-répertoires.

Vous devez appliquer le modèle ignoré à chaque répertoire de manière récursive, ce que vous pouvez faire en utilisant l'option --recursive.

+0

malheureusement l'exemple donné n'est pas la situation réelle. Dans mon cas réel, il existe de nombreux dossiers de fiches techniques et les dossiers vont et viennent.L'appliquer à chaque fois serait le travail de fou –

1

Vous devez utiliser la fonctionnalité intégrée dans. ignorer avec les propriétés svn ne fonctionnera que sur un seul niveau et oui, vous devrez les changer ou les rajouter si de nouveaux dossiers seront ajoutés.

Il faut donc utiliser la fonctionnalité de client de global-ignores qui se trouve dans votre configuration locale [autour de la ligne 94, recherchez « global-ignores]

config locale se trouve sous:.

fenêtres :

%APPDATA%\subversion\config 

* nix

~/.subversion/config 
+0

Il ne veut pas ignorer tous les fichiers PDF, seulement la plupart d'entre eux. –

+0

Je pensais qu'il voulait ignorer tous les fichiers PDF d'un certain nom de fichier, mais ne pas ignorer les autres noms de fichiers –

0

Je suis sûr à 80% vous ne pouvez pas faire ce que vous voulez hors-la-boîte. Regardez dans un crochet post-commit - vous pouvez évaluer le chemin du fichier ajouté et le rejeter s'il répond aux critères que vous spécifiez.