Comment garder le SVN de mise à jour d'un répertoire déjà dans le dépôt
Ce n'est pas le cas, je ne pense pas que, une norme svn ignorer question.
J'ai un espace de stockage avec un énorme répertoire que je ne veux pas. Parce que les autres en utilisant le référentiel ne, je ne peux pas le supprimer de l'arbre. MAIS, je ne veux pas re-télécharger ce répertoire chaque fois que je fais un svn up. Je peux comprendre que l'ignorer pour éviter les répertoires que j'ai d'être téléchargés sur le svn, mais comment je puis-je dire svn que je n'ai pas envie de le télécharger à nouveau à certains répertoires qui sont déjà dans le référentiel.
Ce que je fais...
svn up
rm badDirectory
et puis l'avenir svn up de la télécharger à nouveau. Je tiens à les en empêcher.
Merci!
edit: OK. J'espérais que SVN avait construit dans l'option que je ne l'avaient pas encore remarqué. J'espérais éviter d'avoir à "pirater" autour de subversion des insuffisances, mais les options ci-dessous semblent comme des solutions de rechange acceptables.
éditer à nouveau à l'adresse d'un couple de commentaires:
Est-il une raison particulière pourquoi vous
ne peut pas vérifier que le dossier et de le garder
il ? pas d'espace disque (probablement pas depuis
vous pouvez check-out) ? sécurité
la raison ?
J'ai pu consulter le dossier. L'ensemble du référentiel svn est d'environ 291 mo.. 290 c'est dans cette "mauvaise" répertoire. Fondamentalement, quelques autres personnes qui ont le contrôle sur le référentiel (et, par conséquent, décider de ce qui se passe là) mettre un répertoire qui n'a pas vraiment besoin d'être là. Je ne voulais pas dire pour que ce soit une question à propos de la politique et de la "bonne & droite" les moyens pour l'utilisation de svn. Je me demandais juste si il y avait une solution technique.
Pouvez-vous donner une meilleure description de
la structure de l'arborescence du référentiel?
Sont-il des fichiers au même niveau que
le mauvais répertoire, ou seulement d'autres
les répertoires? –
Structure de base:
repository root
- good dir 1
- plenty of subdirs in all of these directories
- good dir 2
- good dir X
- bad dir 1
- bad dir 2
- bad dir X
- good file 1
- good file 2
- good file X
Pouvez-vous donner une meilleure description de la structure de l'arborescence du référentiel? Sont-il des fichiers au même niveau que le mauvais répertoire, ou seulement d'autres répertoires?
Pas exactement une réponse à votre question, mais, êtes-vous en mesure de changer votre système de gestion de versions? Git, par exemple, serait de vous laisser chekout le projet, créer une branche locale pour vous-même, et de supprimer la délinquance dossier. Les futures mises à jour à partir de cette branche ne serait pas de toucher ce que vous avez supprimé localement.
OriginalL'auteur Kirby | 2009-02-03
Vous devez vous connecter pour publier un commentaire.
Je suis allé avec le sparse checkout route similaire à ce que Stefan mentionné. La différence est que je exclue un répertoire entier.
Voici ce que j'ai fait pour exclure tout un répertoire et tous ses sous-répertoires. Remarque: les indésirables répertoire était déjà sur mon disque dur donc je l'ai supprimé en premier.
<- non désirées-répertoire n'est pas acquis à partir du référentiel$ rm -rf unwanted-directory
$ svn checkout url/to/repo/unwanted-directory unwanted-directory --depth empty
$ cd root/of/my/tree
$ svn update
Pour référence, nous avons un 'prototype' répertoire de notre arbre avec un tas de code expérimental. Depuis que je ne travaille pas dans ce domaine, je n'ai aucun intérêt à avoir de la 1G à des sources dans mes multiples de développement des arbres.
OriginalL'auteur Mark
Vous pouvez faire un sparse checkout:
que vous obtiendrez un wc avec uniquement les fichiers, pas de sous.
Vous pouvez maintenant obtenir tous les dossiers que vous voulez avec
OriginalL'auteur Stefan
Vous pouvez utiliser un script pour svn update --non-récursive le répertoire courant, puis individuellement à jour les sous-répertoires restants recurvively. Avec un script bash vous pourriez en boucle sur tous les sous-répertoires et juste sauter sur la délinquance.
Quelque chose comme ceci:
OriginalL'auteur Stephen Pape
Si vous renommez le .svn répertoire dans le mauvais dossier, puis exécutez une mise à jour, svn va sauter sur le répertoire et dire qu'il a été supprimé, même si elle est encore là.
Vous aurez besoin de le remettre, mais quand vous voulez s'engager, au moins à un niveau supérieur qui contient le mauvais répertoire.
OriginalL'auteur Andrew Burgess
Mise à jour de toutes les données de localisation à l'exception de quelques mauvais répertoire :
OriginalL'auteur Fedir RYKHTIK
Vous pouvez spécifier --non-récursive ou -N pour supprimer à partir de l'obtention de toutes les sous-dossiers
et explicitement de faire une mise à jour sur ceux que vous souhaitez.
Un petit fichier batch serait de le rendre facilement repeatble
\0
OriginalL'auteur
Si ce n'est pas un dossier nécessaire pour le quotidien pour vous (ou votre groupe) vous pouvez demander à l'administrateur de mettre à jour le svn de la hiérarchie de déplacer ce dossier au même niveau (ou plus) les dossiers que vous avez à mettre à jour.
par exemple
et vous n'aurez qu'à mettre à jour (check-out) "l'essentiel" dossier " et les autres aussi
mettre à jour (check-out) le "non-essentiels" dossier".
OriginalL'auteur Max
Solutions déjà prévu, je dirais que la nécessité d'ignorer une partie de l'espace de stockage sur une base régulière est un signe clair de la mauvaise structure du dépôt. Essayez de trouver un moyen de le déplacer vers un autre emplacement à l'intérieur de dépôt ou quelque chose comme ça.
OriginalL'auteur Mart Oruaas
Kirby solution est propre, sauf qu'il ne met pas à jour le répertoire courant.
Si vous avez une structure comme ceci:
Kirby solution ne sera pas de mise à jour fileA, fichierb et tous les autres fichiers sont ensuite ajoutés à la racine dir.
Vous aurez envie d'ajouter un "svn up -N". Vous pouvez le faire avec un alias et un point-virgule:
(Alias bash syntaxe. Si vous utilisez un autre shell, modifier au besoin)
OriginalL'auteur
Utilisez la commande suivante
Garder ajoutant tous les répertoires avant -exec comme ! -nom de répertoire
OriginalL'auteur Bharathwaaj
Tout en considérant spécifiques au fournisseur de solution, dans TortoiseSVN vous pouvez l'atteindre en suivant les procédures décrites sur le page de manuel, après l'inscription à l'intérieur de la section "Commande de la Profondeur".
MAIS: je tiens à ajouter que je changerais l'étape finale. Au lieu de trouver le sous-dossier que vous souhaitez ajouter (ou supprimer) à partir de la copie de travail, clic droit sur le dossier racine, choisissez "mettre à Jour à la révision...", sur la Profondeur de Travail, cliquez sur le bouton "Choisir les Éléments" et sélectionnez tous les childs sur le gestionnaire de fichier qui s'ouvre.
OriginalL'auteur tyron
Je vois que la question a été posée tout à fait un certain temps en arrière, mais si vous êtes toujours intéressé, je suis tombé sur un joli blog qui explique les différentes façons d'utiliser "svn:ignore"
Voici le lien : http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/
Comme expliqué dans le blog, vous pourriez probablement créer une liste de "mauvais dossiers" dans un fichier et choisissez "svn propset svn:ignore-R-F bad_folder_list_file"
Espère que ça aide !
OriginalL'auteur Ravi
Donc, je suis juste venu avec ce que je pense est au sujet de la manière la plus rapide de répondre à la question. Depuis le SVN n'ont pas un moyen de autoignore répertoires que je ne veux pas mis à jour...
Voici mon dir structure:
racine
-> goodDir 1
-> goodDir 2
etc
J'ai supprimé les mauvais répertoires de ma caisse. Je ne peux pas faire un "svn up" à partir du répertoire racine, parce qu'il essaie de vérifier de nouveau le mauvais annuaires.
Mais, la commande suivante fonctionne très bien:
Court, doux, simple, et facile à retenir.
Aussi, je pense que "svn up *" a le même effet.
Si vous utilisez un script comme celui de commettre, vos modifications seront répartis sur plusieurs révisions plutôt qu'un seul. La solution à l'aide de éparses extractions, c'est mieux.
OriginalL'auteur Kirby