Comment mettre à jour la Subversion externes
Nous avons plusieurs dépôts subversion: l'un pour le code commun et un pour chaque haut niveau projet. Le haut niveau des projets ont un svn:lien externe vers le tronc de l'référentiel commun.
Avant de nous créer une version d'un projet, nous avons créer une branche de haut niveau du projet et de créer une branche parallèle dans le référentiel commun.
Comment pouvons-nous assurer automatiquement la propriété svn:biens externes dans les branches, de haut niveau, projet de les points de la branche parallèle dans le répertoire commun - actuellement, il sera pointant vers "tronc" dans la commune respository. Nous sommes actuellement en train d'avoir à modifier manuellement cette dans les branches d'un projet.
Grâce
Vous devez vous connecter pour publier un commentaire.
Si je vous comprends, vous voulez vous assurer que
foo
etbar
partager la même branche.foo
est votre directeur de projet et a unesvn:externals
sur elle quelque part pointant versbar
. Lorsque vous branchefoo
, vous voulez vous assurer quebar
est à l'aide de la même branche. La seule façon de s'assurer que tout soit créer votre dépôt avec letags
etbranches
répertoires à la racine de votre dépôt, plutôt qu'à la racine du projet (comme la plupart des sites n').Ensuite, vous pouvez utiliser relatif références externes à partir de la
foo
répertoire qui contient lesvn:external
retour àbar
. Aussi, si vous étiquette de foo et bar avec le même tag, foo et bar maintenir leur relation:Si vos branches ont été à la racine de votre dépôt, puis le
common
répertoire pointant vers la même direction pourfoo
que c'est surbar
.Le gros problème avec
snv:externals
est que si vous ne faites pas attention, vous vous pointez à jamais changer la version du répertoire que vous créez un lien vers. Disons que quelqu'un a fait cela:dans mon
foo
projet. Je fais une décharge et une copiefoo
à une balise. Cependant, lacommon
répertoire que j'ai marquées seront modifiées lorsque quelqu'un met à jourbar/trunk
. Cela rend presque impossible de reconstruirefoo
.Lorsque j'utilise
svn:externals
, je m'assure toujours que je suis un lien vers un tagged version debar
, ou une révision spécifique, et si je suis un lien vers une révision spécifique, j'ai aussi peg mon URL en révision dans le cas où quelqu'un décide de supprimer le répertoire que je me connecte à monsvn:externals
propriété.Il n'y a rien dans la Subversion, qui va automatiquement mettre à jour votre
svn:externals
propriétés, mais vous pouvez consulter tous les svn:externals sur une arborescence de répertoire en utilisantJ'ai trouvé que
svn:externals
termine généralement par une plus grande douleur que ce qu'il vaut.Au lieu de cela, j'ai simplement stocker l'objet construit de
bar
ou une zippée une copie de la source, dans ma version du référentiel, et dans le cadre de ma procédure de compilation, je copie l'objet ou zippé source de ma version du référentiel.J'utilise Maven site référentiels comme Nexus ou Artifactory que ma version du référentiel, même si je ne fais pas un projet Maven ou même en travaillant dans une Java du projet. Le local repository Maven fournit tous les outils dont vous avez besoin pour télécharger et télécharger vos paquets dépendants, plus Maven a la notion de libération référentiel -- où le code ne change jamais, et d'une instantané référentiel dans lequel vous avez l'intention de libérer le code, mais ça pourrait changer. Ceci est utile si vous pensez que
bar
pourrait changer en raison des trucs dont vous avez besoin dansfoo
.