Je viens de commencer à utiliser SVN et j'ai un répertoire de cache dont je n'ai pas besoin sous contrôle de source. Comment puis-je ignorer tout le répertoire / dossier avec SVN?
J'utilise Versions et TextMate sur OS X et ligne de commande.
svn
version-control
directory
Gilean
la source
la source
Réponses:
Définissez la
svn:ignore
propriété du répertoire parent:Si vous devez ignorer plusieurs éléments, séparez-les par des retours à la ligne 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:
la source
svn rm --keep-local dirname
première. (Ma sortie de statistiques svn était énorme et je me suis cogné la tête pendant un moment.)svn propset svn:ignore -F file.txt .
svn:ignore
et passvn::ignore
comme je l'ai fait. Vous pouvez définir des propriétés arbitraires, donc cette dernière sera définie sur OK, et vous pouvez voir et modifier la propriété, mais cela ne fera pas ignorer SVN les fichiers que vous listez.Voici un exemple de structure de répertoire:
Une
project
fois dedans, vous voyez que votre répertoire de cache n'est pas ajouté et apparaît comme tel.Pour définir la propriété ignore, faites
où
svn:ignore
est le nom de la propriété que vous définissez,cache
la valeur de la propriété et.
le répertoire sur lequel vous définissez cette propriété. Il doit s'agir du répertoire parent ducache
répertoire qui a besoin de la propriété.Pour vérifier quelles propriétés sont définies:
Pour voir la valeur de
svn:ignore
:Pour supprimer des propriétés précédemment définies:
la source
dirname
. Par exemple, lors de la frappesvn propset svn:ignore dirname
, si vous autorisez le shell (bash) à remplir le nom du répertoire pour vous, il ajoutera cette barre oblique de fin, vous laissant avec la commandesvn propset svn:ignore dirname/
, ce qui n'entraîne pas l'ignorance du dossier. Du moins, ce fut mon expérience.Important à mentionner:
Sur la ligne de commande, vous ne pouvez pas utiliser
Cela ajoutera également les fichiers ignorés, car la ligne de commande se développe
*
etsvn add
pense donc que vous souhaitez que tous les fichiers soient ajoutés. Utilisez donc ceci à la place:la source
svn add --force *
NE FONCTIONNERA PAS. Utilisez le point, pas l'étoile.Étant donné que j'ai passé un certain temps à essayer de faire fonctionner cela, il convient de noter que si les fichiers existent déjà dans SVN, vous en avez besoin
svn delete
, puis modifiez lasvn:ignore
propriété.Je sais que cela semble évident, mais ils ont continué à apparaître comme
?
dans masvn status
liste, quand j'ai pensé que cela les ignorerait localement.la source
Pour développer légèrement, si vous faites cela avec l'outil de ligne de commande svn, vous voulez taper:
qui ouvrira l'éditeur de texte de votre choix, puis tapez '*' pour ignorer tout ce qu'il contient, et enregistrer + quitter - cela inclura le répertoire lui-même dans svn, mais ignorera tous les fichiers qu'il contient, 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 d'accès approprié.
la source
Définissez la
svn:ignore
propriété sur le répertoire parent:Cela écrasera toute valeur actuelle de
svn:ignore
. Vous pouvez éditer la valeur avec:Ce qui ouvrira votre éditeur. Vous pouvez ajouter plusieurs modèles, un par ligne.
Vous pouvez afficher la valeur actuelle avec:
Si vous utilisez une interface graphique, il devrait y avoir une option de menu pour ce faire.
la source
svn ps svn:ignore . 'cachedir'
résulte encachedir is not under version control
. changer poursvn ps svn:ignore 'cachedir' .
travailler pour moiMerci 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 l' importation svn et svn co les fichiers, ce que nous faisons habituellement pour la première fois.
Tout le cache d'exécution, les dossiers 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 SVN version 1.5 ci-dessus, nous pouvons utiliser
svn del --keep-local your_folder
, mais pour une version antérieure, ma solution est:.svn
dossier caché)Lorsque nous avons besoin de plusieurs dossiers à ignorer
svn:ignore
svn pe
devra modifier le fichier texte, et vous pouvez utiliser cette commande si nécessaire pour définir votre éditeur de texte à l'aide de vi :Le fichier ressemble simplement à ceci:
la source
svn propset svn:ignore -F .ignorethesefiles .
, qui utilisera le contenu du fichier. J'aime le garder pour que vous sachiez ce qui est ignoré. Les modifications nécessitent un ensemble de suivi.Retirez-le d'abord ...
Si votre répertoire
foo
est déjà sous contrôle de version, supprimez-le d'abord avec:... puis ignorez:
la source
... et si vous voulez ignorer plus d'un répertoire (disons
build/
temp/
et*.tmp
fichiers), vous pouvez soit le faire en deux étapes (ignorer la première et modifier les propriétés ignorer (voir les autres réponses ici)) soit écrire quelque chose commesur la ligne de commande.
la source
Si vous utilisez le client SVN particulier TortoiseSVN , puis lors de la validation, vous avez la possibilité de cliquer avec le bouton droit sur les éléments et de sélectionner "Ajouter à ignorer la liste".
la source
La commande pour ignorer plusieurs entrées est un peu délicate et nécessite des barres obliques inverses.
Cette commande ignore tout nom
cache
,tmp
,null
etand_so_on
dans le répertoire courant.la source
svn propset svn:ignore -F .ignorethesefiles .
vous permettra d'utiliser un fichier. Et comme mentionné, vous avez toujours une autorisation.J'ai eu des problèmes pour ignorer les répertoires imbriqués; le répertoire supérieur que je voulais ignorer ne s'afficherait pas avec «svn status» mais tous les sous-répertoires le faisaient. C'est probablement évident pour tout le monde, mais je pensais le partager:
EXEMPLE:
la source
"Merci" svn pour une manière si hideuse, fausse et difficile d'ignorer les fichiers.
J'ai donc écrit un script svn-ignore-all :
De plus, pour ignorer une liste spécifique de fichiers / noms de chemin, nous pouvons utiliser cette variante svn-ignore . Je suppose que svn-ignore-all devrait vraiment être comme xargs svn-ignore.
Une dernière chose: j'ai tendance à polluer mes caisses svn avec de nombreux fichiers aléatoires. Quand il est temps de valider, je déplace ces fichiers dans un sous-répertoire «ancien» et je dis à svn d'ignorer «ancien».
la source
Bash oneliner pour plusieurs ignorés:
la source
Si votre répertoire de projet est nommé / Project et votre répertoire de 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 à cette page du manuel Subversion pour en savoir plus sur les propriétés.
la source
La réponse de Jason fera l'affaire. Cependant, au lieu de définir svn: ignorez "." sur le répertoire cache, vous souhaiterez peut-être inclure "cache" dans la propriété svn: ignore du répertoire parent , au cas où le répertoire cache ne serait pas toujours présent. Je le fais sur un certain nombre de dossiers "jetables".
la source
POUR GARDER LES RÉPERTOIRES QUE SVN IGNORERA:
la source
Si vous utilisez un frontend pour SVN comme TortoiseSVN, ou une sorte d'intégration IDE, il devrait également y avoir une option ignorer dans le même menu que l'opération commit / add.
la source
Définissez la propriété svn: ignore . La plupart des outils de l'interface utilisateur svn ont un moyen de le faire ainsi que la discussion en ligne de commande dans le lien.
la source
Puisque vous utilisez des versions, c'est vraiment très simple:
la source
Regardez également vos barres obliques de fin. J'ai constaté que l'inclusion
images/*
dans mon fichier de paramètres d'ignorance n'ignorait pas./images/
. Quand je courais,svn status -u
ça montrait encore? images
. Donc, je viens de changer le paramètre ignorer en justeimages
, sans barres obliques. A effectué une vérification d'état et cela l'a effacé.la source
Résolu avec Eclipse de la manière suivante:
Tout d'abord, faites une synchronisation de votre dossier avec le projet:
Dans la vue suivante, vue d'équipe, vous pouvez voir toutes les ressources que vous pouvez valider sur le serveur SVN.
Sélectionnez donc le dossier de ressources de la ressource que vous souhaitez ignorer, puis vous pouvez l'ignorer à l'aide
Après cela, dans la fenêtre de confirmation, sélectionnez la première option: "ignorer par nom".
Par exemple, si je veux ignorer le dossier cible et leurs ressources .class, je synchroniserai et dans la vue de synchronisation, je sélectionnerai le dossier cible. Après cela, je vais sélectionner
à
svn:ignore
puis je confirme la première option dans la fenêtre de confirmation.la source
Après avoir perdu beaucoup de temps à chercher comment faire cette activité simple, j'ai décidé de publier qu'il n'était pas difficile de trouver une explication décente.
Laissez d'abord la structure de l'échantillon
$ svn st? projet / tronc / cible? project / trunk / myfile.x
1 - configurer d'abord l'éditeur, dans mycase vim export SVN_EDITOR = vim
2 - "svn propedit svn: ignore project / trunk /" ouvrira un nouveau fichier et vous pourrez ajouter vos fichiers et votre sous-répertoire dans le cas type "target" enregistrer et fermer le fichier et fonctionne
$ svn st? project / trunk / myfile.x
Merci.
la source