web-dev-qa-db-fra.com

Comment inclure / exclure un certain type de fichiers sous Subversion?

Je suis confus avec le jargon d'inclusion/exclusion, et mon client SVN actuel ne semble pas avoir (ou je n'ai pas pu le trouver facilement) une option simple pour ajouter ou supprimer un certain type de fichiers pour le contrôle de version .

Supposons par exemple que j'ai ajouté l'intégralité du dossier Visual Studio, avec ses solutions, projets, fichiers de débogage, etc., mais je souhaite uniquement versionner les fichiers source réels. Quelle serait la façon la plus simple de procéder?

46
Nano Taboada

Vous êtes probablement plus sûr d'exclure des types de fichiers particuliers, plutôt que de choisir ceux que vous souhaitez inclure, car vous pourriez alors ajouter un nouveau type sans vous rendre compte qu'il n'était pas versionné.

Sur une base par répertoire, vous pouvez modifier la propriété svn: ignore .

Courir

svn propedit svn:ignore .

pour chaque répertoire pertinent pour faire apparaître un éditeur avec une liste de modèles à ignorer.

Ensuite, mettez un modèle sur chaque ligne correspondant au type de fichier que vous souhaitez ignorer:

*.user
*.exe
*.dll

et qu'avez-vous.

Alternativement, comme cela a été suggéré, vous pouvez ajouter ces modèles au global-ignores propriété dans votre fichier ~/.Subversion/config (ou "%APPDATA%\Subversion\config" sous Windows - voir Disposition de la zone de configuration dans le livre des haricots rouges pour plus d'informations ). Dans ce cas, séparez les motifs par des espaces. Voici la mienne. # au début de la ligne introduit un commentaire. J'ai ignoré les fichiers Ankh .Load et tous les fichiers * .resharper.user:

### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
global-ignores = Ankh.Load *.resharper.user
61
Blair Conrad

Ceci peut être réalisé en utilisant la propriété svn: ignore , ou la propriété global-ignore dans votre ~/.Subversion/config fichier. (Faites défiler vers le haut de ce premier lien pour voir les instructions sur la modification des propriétés.)

En utilisant svn propset ou svn propedit sur un répertoire, vous pourrez faire en sorte que Subversion ignore tous les fichiers correspondant à ce modèle dans le répertoire spécifique. Si vous changez global-ignore dans ~/.Subversion/config's [miscellany] section, cependant, Subversion ignorera ces fichiers, peu importe où ils se trouvent.

5
Max Cantor

Voir l'article de blog svn: ignore.

Je sais en utilisant TortoiseSVN que je peux cliquer sur un dossier racine où j'ai extrait quelque chose et que je peux ajouter des propriétés arbitraires en sélectionnant l'élément de menu "Propriétés". Dans ce cas, vous devez simplement spécifier les modèles de fichiers à exclure.

Le billet de blog pour des informations en ligne de commande, mais je suis sûr que cela fonctionnera bien avec le client que vous utilisez.

2
MattC

Une autre façon, lorsque vous utilisez TortoiseSVN, vous pouvez sélectionner "Valider ..." puis cliquer avec le bouton droit sur un fichier et passer à la liste des modifications "ignorer lors de la validation".

1
John Henckel

Au niveau le plus bas, SVN vous permet d'ignorer certains fichiers ou modèles avec l'attribut svn: ignore . Les compléments VS pour SVN tels que VisualSVN ignoreront automatiquement ces fichiers en votre nom. Si vous utilisez TortoiseSVN , vous pouvez cliquer avec le bouton droit sur les fichiers et dossiers dans l'Explorateur et choisir Ajouter à ignorer la liste .

1
Kent Boogaart

En utilisant le svn:ignore, vous pouvez utiliser des caractères génériques.

1
Prody