Catégories
Divers

Quand le gitflow de sourcetree se met à faire des siennes !

Le contexte : Gitflow et Sourcetree

Dans le cadre de mes développements, j’utilise le logiciel Sourcetree couplé à la méthode Gitflow. Vous pouvez d’ailleurs consulter si cela vous intéresse le cheat sheet dédié à cette méthode.

À ce sujet, c’est une méthode qui me va très bien et je ne souhaite pas rentrer dans un débat pour savoir si il y en a une meilleure ou si elle est moins bien qu’une autre, ce n’est pas le sujet de ce petit article.

Le problème : Gitflow déraille

J’ai eu récemment, dans le cadre du tutoriel sur Nuxt.js et Adonis.js, un problème pas très, important mais tout de même gênant.

En effet, l’interface graphique de Gitflow ne se rappelait pas des features, des releases ou des hotfix que j’avais initié.

À vrai dire, sans que je n’initie aucun de ces trois items, il me proposait cette fenêtre directement :

Gitflow me propose cette fenêtre par défaut sans qu'aucune feature ne soit initiée
Gitflow me propose cette fenêtre par défaut sans qu’aucune feature ne soit initiée

En regardant plus attentivement, on se rend compte qu’en état courant (current state), il considère la branche develop comme une feature… et me propose donc de terminer cette feature 😉

Première piste : le fichier de configuration de Sourcetree

J’ai donc mis direct les main dans le cambouis :

> nano .git\sourcetreeconfig.json

nano m’a proposé ce fichier :

{
  "$id": "1",
  "AutoRefresh": true,
  "AutoRefreshRemotes": true,
  "CommitTextLinks": null,
  "DraftCommitMsg": "",
  "IncomingSavedCount": 0,
  "LastCheckedRemotes": "2019-08-08T11:16:45.9545453+02:00",
  "LastUsedView": 0,
  "LogBranchFilterIndex": 0,
  "OutgoingSavedCount": 0,
  "SidebarExpandedItems": [
    "Branches",
    "Stashes"
  ],
  "SidebarWidth": 210.0,
  "SubtreeLinks": [],
  "RemoteProjectLinks": []
}

En bref, on voit rapidement que rien ne nous aidera dans ce fichier. [CTRL] + [x] et on en parle plus !

Piste numéro 2 : le fichier de configuration de Git

Ainsi à nouveau, j’utilise Nano pour aller voir de quoi il retourne :

> nano .git\config

et voici ce qu’il m’affiche :

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = https://github.com/itanea/meetthecoders.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[gitflow "branch"]
        master = master
        develop = develop
[gitflow "prefix"]
        feature =
        bugfix =
        release =
        hotfix =
        support =
        versiontag =
[gitflow "path"]
        hooks = C:/laragon/www/meetthecoders/.git/hooks
[branch "develop"]
        remote = origin
        merge = refs/heads/develop

Et là on se rends compte que potentiellement quelque chose ne va pas.

Effectivement, la section gitflow « prefix » semble assurément un peu trop vide à mon goût !

En réalité, en cherchant un peu, on trouve les valeurs par défaut à utiliser.

Aussitôt lu, aussitôt appliqué, notre fichier .git\config devient :

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = https://github.com/itanea/meetthecoders.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[gitflow "branch"]
        master = master
        develop = develop
[gitflow "prefix"]
        feature = feature/
        bugfix =
        release = release/
        hotfix = hotfix/
        support = support/
        versiontag =
[gitflow "path"]
        hooks = C:/laragon/www/meetthecoders/.git/hooks
[branch "develop"]
        remote = origin
        merge = refs/heads/develop

Je sauvegarde le fichier et je relance Sourcetree tout en psalmodiant quelques vers interdits du Necronomicon !

Et là effectivement, tout est rentré dans l’ordre, la branche develop n’est plus vue comme une feature. Lors du clic sur le bouton Gitflow dans Sourcetree (en haut à droite), j’ai bien la bonne fenêtre modale qui me propose les bons choix.

Les actions Gitflow possibles
Les actions Gitflow possibles

Conclusion

Pour conclure, il faut toujours faire l’effort se rapprocher des documentations (RTFM) officielles ou non d’ailleurs. Parfois, il est possible de trouver une solution à un problème non traité par la documentation officielle dans des blogs peu connus ou encore d’autres sources.

J’espère que ce petit article pourra aider quelques personnes qui pourraient rencontrer le même problème.

Enfin, n’hésitez pas à me faire de vos remarques dans les commentaires ci-dessous.

Par HappyToDev

Absolument passionné depuis toujours par l'informatique et la programmation, je souhaite via ce blog vous faire passer un peu du savoir que j'ai accumulé depuis des années.
Et même, pourquoi pas, vous aider à faire le premier pas dans le développement web.

Vous êtes prêts ?
Alors allons y ensemble et n'oubliez pas que les débutants sont vraiment les bienvenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.