Je suis désolé pour le titre de la question terrible, mais je vais essayer de me expliquer un peu plus verbeux:Versioning et dans un héritage SCM corrections de bugs
J'utilise Git (mais je suppose que le logiciel particulier n'a pas vraiment d'importance dans ce cas) pour mon projet de logiciel. Comme beaucoup de projets, je prévois d'avoir plusieurs versions. Quand il y a une version, j'attribuerais probablement une balise commit - par exemple "1.0". Le temps passe, et le code est piraté, et finalement il y a une version, avec une autre étiquette - cette fois "2.0".
Un jour, j'ai remarqué un bug sérieux, présent dans les versions 1.0 et 2.0, et il doit être corrigé. Pour rendre les choses difficiles (et probablement aussi plus réalistes), je ne peux pas les corriger dans le master/trunk actuel et supposer que tout le monde l'utilise, car il y a des incompatibilités en arrière dans 2.0 avec 1.0 et les gens sont paresseux. Je ne veux pas mettre à jour. Donc, quel serait un bon système pour supporter ce genre de comportement: être capable de faire des changements dans les anciennes versions. Git semble égaliser les balises avec les versions à un certain niveau, en raison de la sortie de la commande git describe
("[latest tag]-[commits since the tag]-[current commit hash]
"). Je ne peux probablement pas éviter d'utiliser des balises, alors.
Je peux sentir qu'une combinaison de balises et de branches serait une bonne idée, mais pour une raison quelconque, je ne peux pas envelopper ma tête autour des détails avec celui-ci.
Si vous pouviez développer votre réponse un peu plus, avec un exemple peut-être, je suis sûr que les gens (sans m'exclure) seraient mieux éclairés. –
Je n'étais pas en ligne depuis un certain temps, et Greg Hewgill a fait un travail décent pour l'expliquer, alors je renoncerai aux points de rep et je laisserai à sa réponse. Et pointez sur http://www.cmcrossroads.com/ pour plus d'informations. –