Si je svn: ignorer un très gros dossier améliorera-t-il les performances lors des mises à jour SVN?
J'ai ce dossier vraiment énorme (> 600 Mo) dans mon projet. Les fichiers de ce dossier ne devraient pas être modifiés du tout. Le problème est que chaque fois que j'appelle "mise à jour svn", cela prend une éternité. Existe-t-il un moyen d'ignorer ce dossier lors des mises à jour pour accélérer le processus de mise à jour?
Le svn:ignore
est uniquement pour les fichiers qui ne sont pas déjà dans le référentiel Subversion. Ce dossier l'est déjà.
Vous pouvez utiliser le svn update --set-depth exclude
folderName
pour supprimer ce dossier de votre répertoire de travail:
$ svn update --set-depth exclude bigFolder #Removes "bigFolder" from workdir
D bigFolder
$
La prochaine fois que vous effectuerez une mise à jour, bigFolder n'apparaîtra pas dans votre répertoire de travail. Si vous le souhaitez, vous devrez réinitialiser la profondeur:
$ svn update --set-depth infinity
U bigFolder
U bigFolder/File1
U bigFolder/File2
...
Vous pouvez faire une mise à jour svn et mentionner spécifiquement tous les autres répertoires, par exemple.
svn update dir1 dir2 dir3
Ou, grep -v sur ce que vous ne voulez pas.
svn update `ls | grep -v big_dir`
Ou, svn mv le big_dir dans un autre dossier et changez votre système de construction pour obtenir le contenu de l'autre répertoire.
Faites juste:
svn up `svn ls | grep -v big_dir`
Utilisation de "svn ls" Vous pouvez mettre à jour non seulement les répertoires et fichiers existants localement, mais également les nouveaux fichiers du référentiel. La mise à jour est donc plus complète que d'exclure. Et vous n'avez pas besoin de supprimer les fichiers déjà existants, comme le fait apparemment "--set-depth exclude".
En dehors de ce qu'a dit @Bill Brasky, une suggestion est de déplacer l'énorme dossier vers un fichier externe. De cette façon, vous pouvez faire svn up --ignore-externals
Si vous ne voulez pas l'énorme dossier dans votre copie de travail, vous pouvez jeter un œil aux extractions clairsemées:
svn checkout repo . --depth empty
svn up other dirs