Je n'archiverais pas de succursales. Autrement dit, les succursales s'archivent. Ce que vous voulez, c'est vous assurer que les informations pertinentes pour les archéologues peuvent être trouvées par des moyens fiables. Fiable dans la mesure où il facilite le développement quotidien et n'ajoute pas d'étape supplémentaire au processus de réalisation du travail. Autrement dit, je ne pense pas que les gens se souviendront d'ajouter une balise une fois qu'ils auront terminé avec une branche.
Voici deux étapes simples qui aideront grandement l'archéologie et le développement.
- Liez chaque branche de tâche à un problème associé dans le suivi des problèmes à l'aide d'une convention de dénomination simple .
- Utilisez toujours
git merge --no-ff
pour fusionner les branches de tâches; vous voulez que le commit de fusion et la bulle historique, même pour un seul commit.
C'est tout. Pourquoi? Parce qu'en tant qu'archéologue du code, je commence rarement par vouloir savoir quel travail a été effectué sur une branche. Bien plus souvent, c'est pourquoi dans tous les neuf hurlements, le code est écrit de cette façon?!Je dois changer le code, mais il a des fonctionnalités étranges, et je dois les énigmer pour éviter de casser quelque chose d'important.
La prochaine étape est git blame
à rechercher les validations associées et à espérer que le message du journal soit explicatif. Si j'ai besoin de creuser plus profondément, je vais savoir si le travail a été effectué dans une branche et lire la branche dans son ensemble (avec ses commentaires dans le tracker de problème).
Disons des git blame
points à valider XYZ. J'ouvre un navigateur d'historique Git (gitk, GitX,, git log --decorate --graph
etc ...), trouve commit XYZ et vois ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
Voilà ma branche! Je sais que QQ, UU, XYZ, JJ et MM font tous partie de la même branche et je devrais consulter leurs messages de journal pour plus de détails. Je sais que GG sera un commit de fusion et aura le nom de la branche qui, espérons-le, est associée à un problème dans le tracker.
Si, pour une raison quelconque, je souhaite trouver une ancienne branche, je peux l'exécuter git log
et rechercher le nom de la branche dans le commit de fusion. Il est assez rapide même sur de très grands référentiels.
C'est ce que je veux dire quand je dis que les succursales s'archivent elles-mêmes.
Le balisage de chaque branche ajoute un travail inutile pour faire avancer les choses (un processus critique qui devrait être impitoyablement rationalisé), résume la liste des balises (sans parler des performances, mais de la lisibilité humaine) avec des centaines de balises qui ne sont utiles que très occasionnellement, et qui ne sont pas '' t même très utile pour l'archéologie.
git checkout [rev] file