Developing FreeCAD with GitKraken/fr

Avant-propos
FreeCAD utilise Git pour gérer son code source. Ce document est une introduction rapide à GitKraken, une interface utilisateur graphique de Git. GitKraken est un logiciel propriétaire qui est gratuit lorsqu'il utilisé à des fins non commerciales; vous n'avez pas besoin de GitKraken pour développer du code pour FreeCAD, mais de nombreux développeurs l'apprécient et le trouvent utile pour gérer leur développement. FreeCAD n'approuve pas GitKraken mais nous espérons qu'un guide comme celui-ci montrera aux utilisateurs à quel point il est facile de configurer l'environnement de développement et d'encourager davantage de personnes à la contribution du projet.

Pour plus d'informations sur l'utilisation générale de Git à partir de la ligne de commande, consultez Gestion du code source et le livre en ligne Pro Git. Pour compiler FreeCAD, voir Compilation.

Introduction
Git est un puissant système de contrôle de révision couramment utilisé pour suivre le développement de code informatique. Bien qu'il s'agisse d'un système complexe, vous n'avez généralement besoin que de connaître le fonctionnement général et quelques fonctions en ligne de commande (CLI). Une interface utilisateur graphique (GUI) facilite la courbe d'apprentissage. GitKraken est un programme propriétaire gratuit (lorsqu'il est utilisé à des fins non commerciales) qui fonctionne sur le framework Electron, ce qui signifie qu'il est multiplateforme et peut être utilisé de la même manière sous Linux, MacOS et Windows.

Configuration de l'outil de développement Git
Il existe différentes manières de télécharger GitKraken en fonction de votre système d'exploitation. Dans les distributions Linux, vous pouvez parfois l'obtenir à partir du gestionnaire de paquets.

  Télécharger GitKraken.  Dans votre navigateur, allez à: https://github.com/FreeCAD/FreeCAD.  Cliquez sur le bouton Fork. Ceci va cloner le dépôt sur votre compte Git. En d'autres termes, l'URL pour accéder à votre fork sera: https://github.com/GITHUBUSERNAME/FreeCAD.git   Ouvrez GitKraken, allez sur, et saisissez cette adresse.  GitKraken va maintenant effectuer un de votre dépôt personnel.

Veuillez lire le post "différence entre le référentiel du dépôt original et celui du dépôt cloné (Fork)" origin vs upstream. Pour résumer, le référentiel de votre propre dépôt (fork) de FreeCAD est, tandis que le référentiel du dépôt officiel FreeCAD est. Par conséquent, vous devez maintenant configurer l'upstream.   Allez sur ou effectuez la combinaison de touche  +  avec votre clavier. Saisissez ce qui suit pour configurer votre dépôt distant. git remote add upstream https://github.com/FreeCAD/FreeCAD.git   Vérifiez maintenant les branches distantes que vous avez définies: git remote -v Vous devriez voir quelque chose comme ça dans le terminal:  origin	https://github.com/foobar/FreeCAD (fetch) origin	https://github.com/foobar/FreeCAD (push) upstream	https://github.com/FreeCAD/FreeCAD.git (fetch) upstream	https://github.com/FreeCAD/FreeCAD.git (push)  Revenez sur l'interface de GitKraken. Sur le côté gauche de l'écran, vous verrez une barre latérale avec une section intitulée Local; double-cliquez sur la branche pour la sélectionner comme branche active. En ligne de commande, cela équivaut à git checkout master </li>  Cliquez sur l'icône Push en haut à droite de l'interface. Cela poussera votre branche locale Local master vers votre branche distante Remote origin master </li> </ol>

L'interface de GitKraken
Pour plus d'informations, consultez le Guide de démarrage de GitKraken.



Sur l'image, les branches distantes Local master et Remote origin master sont situées après trois commits derrière le Remote upstream master, c'est-à-dire le code source officiel de FreeCAD. Ceci est indiqué par les icônes illustrant les 3 étapes dans la liste qui représente l'historique de validation de la branche maître. Voir Rebasage pour mettre à jour les branches qui se trouvent derrière.

Rebasage

 * Sélectionnez la branche Local master en double cliquant sur elle pour la rendre active.
 * Positionnez la souris sur le dernier commit de upstream, clic droit, et choisissez Rebase master onto upstream/master
 * Cliquez maintenant sur le bouton Push . Ceci pousse votre branche locale Local master vers le dépôt distant Remote origin master.



Branches
Les branches sont une fonctionnalité qui rend Git puissant par rapport aux autres systèmes de révision. Les branches ne sont pas des "Fork" complets, mais définissent plutôt des instantanés où une version du code commence à diverger de la branche principale. Chaque fois que vous souhaitez modifier le code de FreeCAD, créez d'abord une branche, puis effectuez des modifications, puis fusionnez vos commits dans la branche principale. Avec Git, il est simple de créer, fusionner et supprimer des branches lorsque vous n'en avez plus besoin. Veuillez lire Branchement et fusion pour en savoir plus sur ce processus dans GitKraken.


 * 1) Assurez-vous que la branche master est actuellement active (double-cliquez dessus, ). Dans GitKraken, la branche Local master doit être surlignée en vert.
 * 2) Cliquez sur le bouton Branch pour créer une nouvelle branche et saisissez son nouveau nom.

Effectuer des pull requests
Des Pull requests (PRs) sont nécessaires pour fusionner le code de votre branche du dépôt local avec le code du dépôt distant. Pour résumer le processus, une fois que vous avez modifié votre branche, vous devez la pousser vers votre fork GitHub, et à partir de là, faites un Pull Request sur le dépôt officiel. GitKraken vous fait gagner quelques clics pour créer facilement des pull requests au lieu d'utiliser l'interface de GitHub.

Étapes dans GitKraken:
 * Trouvez votre branche locale sur l'interface et assurez-vous qu'elle est active (double-cliquez dessus).
 * Faites un clic droit sur le nom de la branche et trouvez l'option Push <your-branch-name> et effectuez un pull request.
 * GitKraken ouvrira une boîte de dialogue vous demandant de confirmer le dépôt que votre branche utilisera pour extraire et pousser. Il poussera ensuite votre branche locale vers ce dépôt distant.


 * GitKraken vous demandera comment vous voulez appeler la branche distante. Le nom par défaut est le même que celui de la branche locale sur votre ordinateur.
 * GitKraken ouvre alors une autre boîte de dialogue demandant aux dépôts et aux branches de fusionner, et la direction (de et vers).
 * Vous souhaitez normalement fusionner à partir du dépôt distant origin <your-branch-name>  vers la branche distante upstream master . Assurez-vous de saisir un bon titre pour la demande d'extraction et rédigez un paragraphe plus descriptif si vos modifications sont importantes. Consultez la documentation officielle de GitKraken pour plus d'informations.



Résolution des conflits lors d'une fusion
GitKraken has a special merge conflict tool that is only accessible in the GitKraken Pro version. However, there are workarounds to use external tools for merging.
 * GitKraken compatible external merge tools: Beyond Compare, FileMerge, Kaleidoscope, KDiff, Araxis, P4Merge
 * If none of the above options work for you, it's possible to specify External merge and diff tools within the configuration file in your user's home directory.

Squashing commits
As a revision control system Git encourages making many commits to keep track of your changes; however, if you have too many small changes the commit history may look a bit messy. Squashing is condensing various commits into only one commit. From the GitKraken manual, squashing is available for commits that meet the following requirements:
 * You need to select at least two commits to squash.
 * The youngest commit, by commit date, is also the current HEAD commit.
 * Genealogically consecutive.
 * Chronologically consecutive.
 * The oldest commit in the list has a parent.

If all these conditions are met, the Squash option appears when you right click the commit node. See Squash.gif

Suivre les autres dépôts FreeCAD
Vous pouvez utiliser GitKraken pour suivre les "Fork" FreeCAD personnels des autres développeurs; de cette façon, vous pouvez voir comment ils écrivent du code et valident des modifications dans leurs propres branches avant de soumettre des pull requests vers le dépôt upstream.
 * 1) Dans le panneau latéral gauche à côté de la catégorie Remote, appuyez sur le signe +.
 * 2) Une boîte de dialogue apparaîtra pour saisir le nom du dépôt que vous souhaitez ajouter. Les dépôts distants recommandées proviennent des principaux développeurs de FreeCAD et des contributeurs connus: wmayer, yorikvanhavre, ickby, sliptonic, kkremitzki, etc.
 * 3) Appuyez sur Add Remote.

Désormais, chaque fois que de nouveaux commits sont effectués, ou que des branches sont rebasées, par les auteurs de ces dépôts, vous verrez leur historique de commit de manière graphique.

En relation

 * Gestion du code source
 * Développement de FreeCAD avec KDevelop