tag - tortoise svn ignore




Comment ignorer un répertoire avec SVN? (16)

Enlevez-le d'abord ...

Si votre répertoire foo est déjà sous contrôle de version, supprimez-le d'abord avec:

svn rm --keep-local foo

... puis ignorez:

svn propset svn:ignore foo .

Je viens de commencer à utiliser SVN, et j'ai un répertoire de cache dont je n'ai pas besoin sous le contrôle de la source. Comment puis-je ignorer l'ensemble du répertoire / dossier avec SVN?

J'utilise Versions et TextMate sur OS X et en ligne de commande.


... et si vous voulez ignorer plus d'un répertoire (par exemple les fichiers build/ temp/ et *.tmp ), vous pouvez le faire en deux étapes (en ignorant les propriétés first et edit ignore (voir les autres réponses ici) ou pourrait écrire quelque chose comme

svn propset svn:ignore "build
temp
*.tmp" .

sur la ligne de commande.


Bash Oneliner pour plusieurs ignore:

svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"

Comme j'ai passé un moment à essayer de faire fonctionner cela, il faut noter que si les fichiers existent déjà dans SVN, vous devez les svn delete , puis éditer la propriété svn:ignore .

Je sais que cela semble évident, mais ils ont continué à apparaître comme ? dans ma liste d' svn status , quand je pensais que ça les ignorerait localement.


Définissez la propriété svn:ignore sur le répertoire parent:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

Cela remplacera toute valeur actuelle de svn:ignore . Vous éditez la valeur avec:

$ svn pe svn:ignore .

Qui va ouvrir votre éditeur. Vous pouvez ajouter plusieurs motifs, un par ligne.

Vous pouvez voir la valeur actuelle avec:

$ svn pg svn:ignore .

Si vous utilisez une interface graphique, il devrait y avoir une option de menu pour le faire.


Important de mentionner:

Sur la ligne de commande, vous ne pouvez pas utiliser

svn add *

Cela ajoutera également les fichiers ignorés, car la ligne de commande se développe * et donc svn add croit que vous voulez que tous les fichiers soient ajoutés. Par conséquent, utilisez ceci à la place:

svn add --force .

La commande pour ignorer plusieurs entrées est un peu compliquée et nécessite des antislashs.

svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .

Cette commande ignore tout ce qui s'appelle cache , tmp , null et and_so_on dans le répertoire courant.


La réponse de Jason fera l'affaire. Cependant, au lieu de mettre svn: ignore à "." Dans le répertoire cache, vous pouvez inclure "cache" dans la propriété svn: ignore du répertoire parent , au cas où le répertoire cache ne soit pas toujours présent. Je fais cela sur un certain nombre de dossiers "jetables".


Pour développer légèrement, si vous faites cela avec l'outil de ligne de commande svn, vous voulez taper:

svn propedit svn:ignore path/to/dir

ce qui ouvrira votre éditeur de texte de choix, puis tapez '*' pour ignorer tout ce qu'il contient, et save + quit - cela inclura le répertoire lui-même dans svn, mais ignorer tous les fichiers à l'intérieur, pour ignorer le répertoire, utilisez le chemin du parent, puis tapez le nom du répertoire dans le fichier. Après l'enregistrement, exécutez une mise à jour ('svn up'), puis vérifiez le chemin approprié.


Puisque vous utilisez des versions, c'est vraiment très simple:

  • Parcourir votre copie retirée
  • Cliquez sur le répertoire à ignorer
  • Dans la "Ignorer la case sur le clic droit Modifier
  • Tapez *. * Pour ignorer tous les fichiers (ou * .jpg pour les fichiers jpg, etc.)

Regardez aussi vos slashes. J'ai trouvé que l'inclusion des images/* dans mon fichier de réglage ignorer n'a pas ignoré ./images/ . Quand j'ai couru le svn status -u il a montré toujours ? images ? images Donc, je viens de changer le réglage ignorer juste des images , pas de barres obliques. Ran une vérification de statut et cela a effacé.


Si votre répertoire de projet s'appelle / Project, et que votre répertoire cache est nommé / Project / Cache, vous devez définir une propriété subversion sur / Project. Le nom de la propriété doit être "svn: ignore" et la valeur de la propriété doit être "Cache".

Reportez-vous à this page dans le manuel de Subversion pour plus d'informations sur les propriétés.


Si vous utilisez un frontend pour SVN comme TortoiseSVN, ou une sorte d'intégration IDE, il devrait aussi y avoir une option ignore dans le même menu que l'opération commit / add.


Voici un exemple de structure de répertoire:

\project
    \source
    \cache
    \other

Lorsque vous êtes dans le project vous voyez que votre répertoire de cache n'est pas ajouté et apparaît comme tel.

> svn st
M  source
?  cache

Pour définir la propriété ignore, faites

svn propset svn: ignore le cache.

svn:ignore est le nom de la propriété que vous définissez, le cache est la valeur de la propriété, et . est le répertoire sur lequel vous définissez cette propriété. Ce devrait être le répertoire parent du répertoire de cache qui a besoin de la propriété.

Pour vérifier quelles propriétés sont définies:

> svn proplist
Properties on '.':
  svn:ignore

Pour voir la valeur de svn:ignore :

> svn propget svn:ignore
cache

Pour supprimer les propriétés précédemment définies:

svn propdel svn:ignore

POUR GARDER LES RÉPERTOIRES QUE SVN IGNORE:

  1. cela supprimera les fichiers du référentiel, mais gardera le répertoire sous le contrôle SVN:

svn delete --keep-local path / directory_to_keep / *

  1. puis paramétrer pour ignorer le répertoire (et tout le contenu):

svn propset svn: ignore "*" path / directory_to_keep


Définissez la propriété svn:ignore du répertoire parent:

svn propset svn:ignore dirname .

Si vous avez plusieurs choses à ignorer, séparez par newlines dans la valeur de la propriété. Dans ce cas, il est plus facile de modifier la valeur de la propriété à l'aide d'un éditeur externe:

svn propedit svn:ignore .






folders