J'ai un ensemble d'applications qui reposent toutes sur une bibliothèque multi-plateforme (développement interne), et tout est stocké dans subversion. Maintenant, cette bibliothèque fait partie de chaque application et en tant que telle une copie de celui-ci doit être dans le répertoire de travail de chaque application. Afin de pouvoir revenir à n'importe quelle version d'une application et d'avoir la version correcte de la lib, une option serait de conserver une copie de la lib dans le projet, mais c'est un cauchemar à maintenir.Rendre les définitions externes de SVN infaillibles?
Plus élégant semble être d'utiliser la fonctionnalité externals definitions de subversion. Cependant, il semble nécessaire d'utiliser des numéros de révision explicites pour s'assurer à 100% que la révision correcte est affectée (par exemple, si le tronc ou une balise ou une branche ont été spécifiés sans numéro de révision, il semble que vous ne pouvez pas être 100% Assurez-vous que vous obtiendrez EXACTEMENT la même révision que par exemple il y a un an, car les gens peuvent toujours commettre sur le tronc/branche/tag).
Maintenant, cette bibliothèque est en développement constant, car elle est fondamentalement le cœur de notre application multi-plateforme. Donc, maintenir les révisions dans le svn: accessoire externe nécessitera une mise à jour constante. Il est également fréquent que les développeurs apportent des modifications à leur copie locale (corrections de bogues, nouvelles fonctionnalités), puis les commettent. Je crains maintenant que si je le configure en utilisant des révisions, il sera plus difficile de savoir où va exactement ce commit (par exemple, les devs peuvent perdre la trace que le dep est sur une branche, aussi en commit, il sera engagé en haut) du tronc/branche, en sautant éventuellement d'autres commits par d'autres développeurs). Fondamentalement, il semble que même avec des définitions externes, les devs qui travaillent avec cela auront encore besoin de maintenir une certaine quantité de contrainte et de contrôle pour gérer ceci (voir par exemple example on SO). Idéalement, ils devraient être assez intelligents pour le faire, mais (à en juger par moi-même) l'oubli de ces petits détails est assez commun et peut causer beaucoup de maux de tête plus tard. Donc, ce que je cherche est une solution vraiment infaillible (s'il y en a une) à ce problème de garder cette lib synchronisée avec plusieurs projets d'une manière que je puisse remonter dans le temps et obtenir toujours le corriger les versions ensemble sans avoir à être constamment à l'affût.
Vous avez raison avec la lib n'étant pas vraiment une lib, mais c'était un peu plus facile à expliquer (en plus cela ne fait pas vraiment de différence). – Steven
Oui, je suppose qu'il est beaucoup plus facile de l'expliquer de cette façon. Et je sais que c'est une question de sémantique, mais je pense aux bibliothèques comme des artefacts plus ou moins statiques, ce qui n'est pas le cas ici parce que la «lib» est en état de développement. Sinon, les branches du vendeur le feraient. – Javier