1

Nous utilisons actuellement VSS pour la gestion de contrôle de source, mais nous voulons convertir à un autre système. VSS permet le partage de fichiers uniques entre différents projets. Il semble que parmi les systèmes SCM populaires seulement (?) SVN offre également ces fonctionnalités (svn: externals). D'autres activent les dossiers de partage uniquement. C'est pourquoi SVN est un candidat pour nous de convertir notre repo à car il sera probablement beaucoup plus facile que de redisigner les structures de tous les projets dans notre repo pour les ajuster au partage de répertoire. Cependant, les externes SVN doivent être liés aux révisions de fichiers spécifiées (je ne veux pas prendre en considération la possibilité de lier des externes à des révisions de tête, car il est impossible d'obtenir des versions de projet historiques avec des externes adéquats) . Ainsi, lorsqu'un fichier partagé est modifié, il n'influence aucun projet utilisant ce fichier en tant que fichier externe. Par conséquent, lorsque vous téléchargez un de ces projets dans sa révision de tête, vous n'obtenez pas la dernière révision de l'externe modifié. Il est nécessaire de modifier manuellement la propriété externals qui fait référence à ce fichier pour le mettre à jour. Dans un scénario similaire, VSS vous fournira tous les fichiers dans leurs révisions principales (y compris les fichiers partagés) lors de l'obtention d'un projet dans sa révision en cours.Comment faire pour mettre à jour les externes SVN automatiquement

Je me demande comment faire fonctionner SVN de manière similaire. Quand je reçois la version tête d'un projet à partir d'un repo, je veux aussi avoir tous les externes associés dans leurs révisions de tête. Mais je suis coincé et je ne sais pas comment l'atteindre directement ou indirectement.

Peut-être quelques scripts? Mais qu'auraient-ils à faire et quand devraient-ils être exécutés? Devraient-ils mettre à jour toutes les propriétés externes des projets qui utilisent un fichier partagé lorsque ce fichier est modifié? Ou devraient-ils être lancés juste après le téléchargement d'un projet, pour mettre à jour ses externals?

Je serai vraiment reconnaissant pour toutes les idées qui pourraient me conduire à une bonne solution. Merci beaucoup!

+2

voir cette question et les réponses: http://stackoverflow.com/q/683716/1284631 – user1284631

Répondre

2

Ceci est la réponse que vous cherchez:

find . -name .svn -execdir svn update -r {2010-08-30} \; 

(crédit: https://stackoverflow.com/a/3608453/1284631)

+0

Merci . J'ai déjà trouvé cette discussion, mais je ne pouvais pas comprendre ce que fait cette commande. Je pense que je dois faire plus d'effort et l'essayer sur quelques projets de test. Jusqu'à présent, je n'ai jamais utilisé la ligne de commande pour gérer SVN, mais TortoiseSVN à la place (sur Windows). Je vais devoir regarder à travers la documentation des commandes SVN pour savoir exactement ce que fait celui-ci. Maintenant, je ne peux que supposer qu'il doit être exécuté pour un répertoire de travail local spécifié pour mettre à jour ses fichiers à la date spécifiée ... Vrai ou faux? :) –

+1

Oui, c'est vrai. Exécutez-le dans le dossier principal, là où vous lancerez habituellement * svn update *. – user1284631

Questions connexes