Comment puis-je obtenir une liste de tous les svn: externals (récursivement) dans un répertoire? Y a-t-il une utilité pour cela?
(J'utilise Windows (et tortue))
J'ai un tas de svn: externals liés à différentes parties partagées de mon projet et lorsque je branche, il est généralement assez sujet aux erreurs de trouver tous les externes et de les modifier afin que le lien vers les chemins dans la nouvelle branche.
svn
tortoisesvn
Niels Bosma
la source
la source
Réponses:
Procédez comme suit à la racine de votre copie de travail:
Comme indiqué dans les commentaires ci-dessous, cela ne répertorie pas les externes dans les externes.
Remarque pour les utilisateurs de TortoiseSVN: il existe une option dans le programme d'installation de TortoiseSVN pour installer également le client en ligne de commande SVN. Cette option n'est pas activée par défaut.
la source
Changer manuellement toutes ces propriétés externes semble fastidieux. Avez-vous examiné la nouvelle fonctionnalité pour les externes ajoutée dans Subversion 1.5?
Peut-être que l'un de ceux-là aiderait? Je suppose que cela dépend exactement de la façon dont vous créez des branches et de l'apparence de votre structure de référentiel.
la source
Ma solution de contournement pour TortoiseSVN:
Ouvrez la boîte de dialogue "Branche / étiquette ..." dans le menu contextuel SVN. La boîte de dialogue inférieure affiche tous les externes, y compris les externes imbriqués.
la source
svn propget svn:externals -R
.Pour contourner le problème, vous pourriez peut-être structurer votre projet de manière à ce que tous les éléments externes soient définis sur le même dossier, par exemple sur le dossier du projet juste en dessous de Trunk. (Cela ne signifie pas que tous les dossiers externes doivent être à la même profondeur d'ailleurs.) Ensuite, vous pouvez faire un clic droit sur votre dossier de projet, puis Propriétés ..., puis l'onglet Subversion, puis Propriétés ... puis double-cliquez sur svn: externals.
la source
J'ai utilisé la réponse de Wim Coenen et j'ai écrit le script suivant pour créer une liste de toutes les révisions:
Heureusement, je n'ai pas d'externes imbriqués, donc je n'ai pas eu à tester cela et je suppose que cela ne fonctionnerait pas. Mais si vous en avez besoin, il suffit probablement d'appeler cette fonction de manière récursive. De plus, je n'ai jamais testé avec des noms de fichiers qui doivent s'échapper. Cela ne fonctionnera probablement pas alors.
AVERTISSEMENT: Je sais que la question initiale concernait Windows, et le script shell ne fonctionnera pas là-bas à moins que vous n'utilisiez cygwin ou similaire.
la source
J'ai pris la réponse de Daniel Alder , supprimé les appels svnversion et l'ai rendu récursif (NOTE:
read a b c d e
ne fonctionne pas s'il y a un espace dans la source ou la destination). Il s'agit d'un script bash, vous aurez donc besoin de quelque chose comme Cygwin ou d'utiliser le sous-système Windows pour Linux .la source