100 votes

SVN vérifier ignorer dossier

Puis-je ignorer un dossier lors du checkout de svn? Je dois ignorer le dossier DOCs lors du checkout sur mon serveur de construction.

éditer: Ignorer les externaux n'est pas une option. J'ai besoin de certains externaux.

0 votes

0 votes

Est-ce que cela répond à votre question? Comment ignorer un répertoire avec SVN?

105voto

Jon Topper Points 2530

Vous ne pouvez pas ignorer directement les dossiers lors d'un checkout, mais vous pouvez utiliser des checkouts parcimonieux en svn 1.5. Par exemple:

$ svn co http://subversion/project/trunk my_checkout --depth immediates

Cela va vérifier les fichiers et répertoires de votre projet trunk dans 'my_checkout', mais ne pas récursivement dans ces répertoires. Par exemple:

$ cd my_checkout && ls
bar/ baz foo xyzzy/

Ensuite, pour obtenir le contenu de 'bar':

$ cd bar && svn update --set-depth infinity

0 votes

Note : il y avait un bug dans certaines versions 1.5 qui empêchait ceci avec svn: Shallowing of working copy depths is not yet supported

81voto

tommy_turrell Points 399

Oui, vous pouvez utiliser SVN 1.6. Vous devrez d'abord effectuer un checkout, puis marquer le dossier à exclure avant de supprimer le dossier indésirable.

svn checkout http://www.example.com/project
cd project
svn update --set-depth=exclude docs
rm -fr docs

Désormais, toutes les mises à jour de la copie de travail ne réintégreront pas le dossier docs.

Voir http://blogs.collab.net/subversion/2009/03/sparse-directories-now-with-exclusion/ et http://subversion.apache.org/docs/release-notes/1.6.html#sparse-directory-exclusion pour plus de détails.

Tom

3 votes

J'ai voté pour cela car cela m'a évité de devoir vérifier un dossier énorme qui n'était pas pertinent pour mon travail.

1 votes

C'est génial, avec svn cleanup cela m'a fait économiser 12 Gio.

1 votes

Ne cela vérifie-t-il pas toujours tout initialement ?

9voto

mxcl Points 5921

Avec les versions antérieures à 1.5, j'ai constaté que si vous ne récupérez que le dossier le plus haut et que vous mettez à jour de manière sélective, les mises à jour n'affectent que ce que vous avez récupéré. C'est-à-dire :

svn co -N foo
cd foo
svn up -N bar
svn up

Le drapeau -N rend l'opération non récursive. Ce qui précède ne récupérera rien d'autre au niveau de foo, par exemple s'il y a un dossier lala, le dernier svn up ne récupérera pas ce dossier, mais il mettra à jour bar.

Mais ultérieurement, vous pouvez faire svn up lala et ainsi l'ajouter à la récupération.

Présumément, cela fonctionne aussi avec la version 1.5.

6voto

gammay Points 1002

Ceci est dans le client TortoiseSVN 1.7.1 (peut être disponible dans certaines versions plus anciennes aussi):

  • SVN checkout --> Sélectionnez l'URL du référentiel

  • Cliquez sur "Articles de caisse" (sous la profondeur de la caisse) et sélectionnez uniquement les dossiers nécessaires!

4voto

Greg Hewgill Points 356191

Oui, Subversion 1.5 a une fonctionnalité appelée Sparse checkouts qui peut faire exactement ce genre de chose.

2 votes

En lisant cela, on dirait que les "sparse checkouts" limitent uniquement la profondeur d'un checkout. Ils ne peuvent pas ignorer un dossier particulier.

0 votes

Bien sûr, vous devrez peut-être faire un peu de travail supplémentaire, comme limiter la profondeur du dossier parent avec --depth immediates, puis vérifier tous les autres dossiers sauf celui que vous souhaitez ignorer. Le point, c'est que les outils sont là si vous avez besoin de les utiliser.

0 votes

Je note la mention des SparseCheckouts, et c'est certainement intéressant, mais cette réponse ne répond pas à la question initiale. Bien sûr, je peux vérifier un fichier à la fois, et cela entraînera la création de copies locales de fichiers spécifiques que je veux, mais c'est pénible de devoir le faire individuellement. Je crois que l'auteur de cette question demande comment ignorer un dossier spécifique, pas une profondeur de x dossiers, et permettre à l'ordinateur de faire le travail - le même travail que vous recommandez pourrait être effectué manuellement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X