Question

J'ai réfléchi au processus de déploiement que j'utilise actuellement et je me demande s'il existe un bon moyen de gérer la création de branches / balises du code qui sera / a été mis en production.

À un moment donné, je souhaite créer une branche en tant que branche de publication et apporter des modifications de dernière minute à la branche et la publier. Puis, après le relâchement, je veux l'enregistrer en tant que balise.

Pour clarifier, je cherche des conventions pour nommer, manipuler les branches et manipuler le marquage. Je me demande également s’il existe des solutions de rechange à la gestion de la situation.

  • Nommez-vous les branches des versions ou utilisez-vous la même branche avec un nouveau code à chaque fois?
  • Supprimer les branches de publication une fois qu'elles existent en tant que balises?
  • Comment appelez-vous vos branches / tags?
Était-ce utile?

La solution

Je suggère de lire cette réponse

Gestion des versions dans SVN

Vous avez essentiellement une branche appelée RELEASE que vous pouvez étiqueter à partir de là si vous le souhaitez. Et conservez la version du code de pointe dans le coffre

En ce qui concerne le nom de la version: cela dépend de ce qui vous convient le mieux et des personnes qui voient le numéro de la version.

Pensez à utiliser MajorRelease.MinorRelease, puis, si vous êtes techniquement intéressé, vous pouvez même spécifier un numéro de version de correctif (par exemple, la mise à jour automatique et le major.minor de l'application sont identiques).

Major: grands changements - > nouvelle fonctionnalité / rupture de compatibilité Mineure: interface compatible (performances, par exemple) Patch: corrections de bugs

Autres conseils

Vous pouvez utiliser les informations ici à titre indicatif, même si vous n'utilisez pas TFS.

Conseils de branchement

Il y a beaucoup de façons de travailler. Celui que j'utilise est le suivant:

project_repository
|
|- trunk //Where the current in support release is.
|
|- branches //Where new features/big fixes or refactors are made.
|
|- tags //Where all releases are tagged.
     |
     |- releases //where all release tags are located
     |- daily //where all daily tags are located.

Le nom que nous utilisons est le suivant:

  • Pour les branches, nous nommons la branche en fonction des tâches principales qui y seront effectuées (par exemple: admin_module_refactor).
  • Pour les tags, nous nommons les tags avec le numéro de version (mayor.minor.micro. Exemple: 1.0.2) quand ils correspondent à un tag de version. Ou avec la date des balises de travail quotidiennes (par exemple: YY_MM_DD).

Pour suivre cette structure et les conventions de dénomination, nous disposons d’un ensemble d’outils et de scripts qui facilitent cette opération. Les tags quotidiens sont également générés par un serveur de build toutes les nuits.

J'ai automatisé le processus de construction à l'aide de CruiseControl.Net. Nous avions les versions correspondant aux numéros de version afin que la version de la DLL soit 6.5.4.1234. Les versions 6 et 5 seraient toujours mises à jour manuellement lorsque nous avions des versions majeures et mineures. Le 4 a été mis à jour manuellement après une construction (et le 1234 a été réinitialisé à 0 puis aussi). Le processus de construction a toujours mis à jour les versions 1234 à 1235.

Lorsque nous sortions d'un tronc (la version serait toujours 6.0.0.x), nous la brancheions manuellement et l'appelions Branch_6_0. La branche se créerait alors en tant que 6.0.1. Le coffre passerait à 6.1 ou 7.0.

CruiseControl avait deux modes (dev et test). Le test a toujours été créé à la demande et créerait une branche correspondant à la version de build.

  

À un moment donné, je veux créer une branche   en tant que branche de publication et faire tout   changements de dernière minute à la branche et   relâchez-le

C'est le bit qui m'inquiète. En règle générale, vous souhaiterez créer une branche, effectuer tout votre développement dessus, puis réintégrer cette branche avec le tronc. Créez votre tag à partir de ce point sur le coffre. Si vous souhaitez apporter d'autres modifications, créez une nouvelle branche, modifiez-la, réintégrez-la et relancez-la.

N'essayez pas de modifier la branche des versions, vous risqueriez de la perdre ou de perdre votre temps à la réintégrer dans le coffre.

L’approche alternative pour la création de branches consiste à apporter toutes les modifications de développement au tronc et, lorsque vous êtes prêt, de créer une branche de publication / balise. Pour un petit magasin de développeurs, il s’agit généralement du moyen le plus simple. (L’autre approche fonctionne bien lorsque vous apportez des modifications importantes à un produit auquel tout le monde apporte des modifications).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top