Dans notre société, nous travaillons sur un produit composé de différents modules C/C++. Idéalement, chaque niveau et chaque module devrait être développé séparément par différentes équipes et testé de manière indépendante. , Nous avons chaque module séparé dans sa propre branche: \svn: externals & tagging, comment combiner le code entre équipes
Les modules sont les suivants:
\hid \branches \tags \trunk \api \branches \tags \trunk \ui \branches \tags \trunk
Par ailleurs, la sortie du produit est construit en combinant les modules et compilé en utilisant régulièrement un système de CI.
\productX \branches \5.0 \hid-4.0 (svn:externs \hid\branches\4.0) \api-3.0 (svn:externs \api\branches\3.0) \ui-5.0 (svn:externs \ui\branches\5.0) \tags \trunk
Le problème principal que nous avons est le comportement de 'svn tag' en association avec externs. Les externs actuels se réfèrent à la HEAD - parce que nous aimerions construire la dernière version régulièrement pour assurer que tous les modules fonctionnent ensemble. Cependant, une fois qu'une build est réussie et que nous procédons à une version, ce serait bien s'il y avait un moyen facile d'étiqueter automatiquement tout - y compris la version utilisée dans l'extern. Dans l'état actuel des choses, nous devons créer des tags pour les modules, puis mettre à jour les externs vers ces tags, puis marquer le produit et enfin l'échanger vers le tronc.
Y a-t-il une façon plus propre de faire cela? N'hésitez pas à commenter également la structure actuelle.
Merci Michael. Vos commentaires reflètent ce que j'ai lu (beaucoup!) Sur les pratiques SVN svn: externs. Nous faisons principalement ce qui a été suggéré: * la plupart du temps, le produit se réfère aux branches des modules * avant une version, nous créons une étiquette pour chaque module * ensuite, nous mettons à jour les externes pour les pointer vers ces tags * enfin, nous marquons le produit * puis nous changeons de nouveau les externes vers les branches Cela fonctionne, mais il est très fastidieux et sujet aux erreurs. J'espérais qu'il y a un meilleur moyen ... – Charles