Question Comment ignorer un répertoire avec SVN?


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.


723
2017-09-22 16:55


origine


Réponses:


Met le svn:ignore propriété 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 .

764
2017-09-22 16:56



Voici un exemple de structure de répertoire:

\project
    \source
    \cache
    \other

Quand à 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, 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 cache répertoire 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

394
2017-09-22 17:06



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 .

128
2018-05-07 23:38



Depuis que j'ai passé un moment à essayer de faire fonctionner cela, il convient de noter que si les fichiers existent déjà dans SVN, vous devez svn delete eux, puis modifiez le svn:ignore propriété.

Je sais que cela semble évident, mais ils ont continué à apparaître comme ? dans mon svn status liste, quand je pensais que ce serait simplement les ignorer localement.


78
2017-10-30 15:02



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é.


67
2017-09-22 17:00



Met le svn:ignore propriété 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.


28
2017-09-22 17:02



Merci pour toutes les contributions ci-dessus. Je voudrais juste partager quelques informations supplémentaires de mes expériences tout en ignorant les fichiers.


Lorsque les dossiers sont déjà sous contrôle de révision

Après svn import et svn co les fichiers, ce que nous faisons habituellement pour la première fois.

Tous les dossiers de cache d'exécution et de pièces jointes seront sous contrôle de version. donc, avant svn ps svn: ignore, nous devons le supprimer du dépôt.

Avec la version SVN 1.5 ci-dessus, nous pouvons utiliser svn del --keep-local your_folder, mais pour une version antérieure, ma solution est:

  1. svn export une copie propre de vos dossiers (sans .svn dossier caché)
  2. svn del le local et le référentiel,
  3. svn ci
  4. Copier les dossiers
  5. Faire svn st et confirmez que les dossiers sont marqués comme '?'
  6. Maintenant nous pouvons faire svn ps selon les solutions

Quand nous avons besoin de plus d'un dossier à ignorer

  • Dans un répertoire, j'ai deux dossiers qui doivent être définis comme svn:ignore
  • Si nous en définissons un, l'autre sera supprimé.
  • Ensuite, nous nous demandons svn pe

svn pe devra modifier le fichier texte, et vous pouvez utiliser cette commande si nécessaire pour définir votre éditeur de texte en utilisant vi:

export SVN_EDITOR=vi
  1. Avec "o" vous pouvez ouvrir une nouvelle ligne
  2. Tapez tous les noms de dossiers que vous voulez ignorer
  3. Appuyez sur la touche 'esc' pour quitter le mode d'édition
  4. Tapez ": wq" puis tapez Entrer sauver et quitter

Le fichier ressemble à ceci:

runtime
cache
attachments
assets

20
2017-09-13 03:26