Supposons que vous disposez d'un répertoire sous le contrôle de subversion, qui contient des fichiers et des tonnes de sous-répertoires, comme ça:
file1.txt
file2.txt
file3.txt
dir1/
dir2/
dir3/
dir4/
:
dirXX/
Maintenant, vous avez besoin des fichiers et certains de la dirs, mais pas tous d'entre eux. Cela peut être fait avec SVN. Il suffit de faire le checkout non-récursive:
svn checkout -N <URL>
Cela permet d'extraire seulement le premier répertoire et les fichiers à l'intérieur. Pas de sous-répertoires sont inclus. Même si vous allez dans la caisse de répertoire et de lancer un "svn up
", il suffira de mettre à jour les fichiers extraits précédemment, il ne sera pas ajouter les répertoires. Vous pouvez maintenant sélectivement ajouter les répertoires que vous devez explicitement à la mise à jour de ceux-ci. E. g. si vous avez besoin d'dir2 et dir4 seulement, vous pouvez vous rendre dans la caisse répertoire et exécuter
svn up dir2
svn up dir4
Si vous exécutez un générique "svn up
" dans l'avenir, il suffira de mettre à jour les fichiers et ces deux répertoires, il ne sera pas ajouter tous les autres répertoires.
Maintenant le problème: Que faire si je décide plus tard que je n'ai pas besoin dir2 de plus? Comment puis-je me débarrasser de lui? Il n'y a aucun moyen de le faire, d'autres que la suppression de l'ensemble de la caisse et de recommencer à partir de zéro.
Lorsque vous venez de supprimer dir2, la prochaine "svn up
" la ramène, comme "svn status
" bien sûr, le montre comme absent aujourd'hui ("!" devant son nom). L'exécution d'un "svn remove
" supprime, bien sûr, mais sur le prochain commit il va également supprimer à partir du référentiel, qui ne doit pas se produire.
Même le nouveau éparses répertoire ("shallow " checkout") de la fonction de SVN 1.5 est d'aucune utilité ici:
Subversion 1.5 mise en œuvre de peu profondes des caisses est bon mais n'a pas le soutien d'un couple d'intéressant les comportements. Tout d'abord, vous ne pouvez pas de-télescope d'une copie de travail de l'élément. L'exécution de svn update --set-profondeur vide dans une infinie profondeur de la copie de travail sera pas avoir pour effet que de les jeter tout, mais le plus haut -répertoire, il sera tout simplement l'erreur.
- http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html
Est-ce impossible avec SVN? Jamais quelqu'un est venu avec un travail intelligent-pour qui?
Juste de la création de la caisse de répertoire (sans SVN) et ensuite de vérifier les différents sous-répertoires à partir du référentiel directement comme des sous-répertoires de ce répertoire de travail pour les répertoires: maintenant, chaque répertoire est une caisse de son propre, peut être mis à jour et une fois n'est pas besoin de plus, vous pouvez simplement le supprimer. Cependant, comment puis-je obtenir les fichiers, puis (par ex. file1.txt)? SVN ne pas permettre à la caisse des fichiers individuels, vous pouvez seulement de la caisse des répertoires complets.