2011-09-17 3 views
0

J'utilise SVN pour mon projet. J'ai deux dépôts appelés repo1 et repo2. Dans chaque référentiel, j'ai créé une branche appelée branch1 dans les deux référentiels. Pour l'un des modules de la branche1 de repo2 appelée module1, un svn: external a été défini et est défini sur module1 de branche1 dans Repo1. Mais maintenant j'ai créé une autre branche appelée branch2 dans repo1 et repo2 qui est une copie de branch1 des deux repos. Maintenant, mon module1 dans branch2 de repo2 pointe toujours vers module1 de branche1 dans repo1. Mais il devrait se référer à module1 de branche2 dans repo1.Comment résoudre le problème SVN: externals

Y a-t-il un moyen de changer automatiquement svn: externals quand on fait une copie SVN ou une branche svn?

+0

Pourriez-vous ajouter ce que vous voulez lire en utilisant 'svn: externals'? Il y a peut-être une autre solution possible avec SVN. Pourquoi les deux dépôts ont-ils la même structure, et il semble que repo2 devrait suivre la structure de repo1. – mliebelt

Répondre

2

Je ne pense pas que ce soit possible. Je ne pense pas qu'il existe un moyen pour svn de savoir si vous voulez que svn externals fasse référence à branch2 ou branch1.

Mise à jour: Cette discussion semble utile.

+0

À mon avis, c'est une fonctionnalité, pas un bug. 'svn: externals' devrait être utilisé pour les références stables, donc ils devraient normalement même pointer vers une révision spécifique, et non vers la tête. – mliebelt

-1

La ressource définitive sur svn:externals montre quelques possibilités de liaisons "relatives". Mais aucun d'entre eux ne peut traverser les frontières du dépôt de la façon dont vous voulez.

Cela laisse les options suivantes:

  • Mettre les projets connexes dans le même référentiel et dans le même répertoire de la branche et de l'utilisation svn relative: liens externes, ou
  • Utilisation et/ou pirater un outil comme svncopy dans le but de traiter svn: externals. Cet outil se trouve dans l'arborescence de la sous-version dans contrib/client-side/svncopy.
  • Ou vous pouvez mettre des branches/étiquettes dans votre système de construction.

Aucune de ces options n'est un nobrainer.

0

Non, ce dont vous avez besoin n'est pas possible par svn automatiquement. La création d'une branche copie le dossier complet dans svn ainsi que toutes ses références externes.

Mais vous pouvez écrire vos propres scripts pour créer la branche et mettre à jour les externes.

Questions connexes