Développer FreeCAD avec GitKraken

From FreeCAD Documentation
Revision as of 06:55, 26 February 2021 by DeeJayOne (talk | contribs)
Other languages:

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.

  1. Télécharger GitKraken.
  2. Dans votre navigateur, allez à: https://github.com/FreeCAD/FreeCAD.
  3. Cliquez sur le bouton Fork. Ceci va cloner le dépôt FreeCAD/FreeCAD sur votre compte Git. En d'autres termes, l'URL pour accéder à votre fork sera:
    https://github.com/GITHUBUSERNAME/FreeCAD.git
    
  4. Ouvrez GitKraken, allez sur File → Clone Repo, et saisissez cette adresse.
  5. GitKraken va maintenant effectuer un git clone 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 origin, tandis que le référentiel du dépôt officiel FreeCAD est upstream. Par conséquent, vous devez maintenant configurer l'upstream.
  6. Allez sur File → Open Terminal ou effectuez la combinaison de touche Alt + T avec votre clavier. Saisissez ce qui suit pour configurer votre dépôt distant upstream.
    git remote add upstream https://github.com/FreeCAD/FreeCAD.git
    
  7. Vérifiez maintenant les branches distantes que vous avez définies:
    git remote -v
    
     Vous devriez voir quelque chose comme ça dans le terminal:
    
  8. 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)
    
  9. 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 master pour la sélectionner comme branche active. En ligne de commande, cela équivaut à
    git checkout master
    
  10. 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

L'interface de GitKraken

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

Local signifie qu'il s'agit de votre machine locale.
Local master Votre branche locale de la branche FreeCAD master, indiqué par la ligne bleue sur la capture d'écran.

L'élément est surligné en vert, signifiant que la branche est actuellement active (git checkout).

Local <branch-name> Toutes les autres branches sur votre machine locale. Sur la capture d'écran, vous pouvez voir les branches appelées editor_fixes et editor_fixes_typos
Remote signifie qu'il s'agit d'un dépôt distant, par exemple dans GitHub
Remote upstream Le dépôt officiel de FreeCAD https://github.com/FreeCAD/FreeCAD, indiqué par la ligne verte sur la capture d'écran.
Remote origin Votre dépôt personnel (Fork) de FreeCAD, https://github.com/YourGitHubUsername/FreeCAD, indiqué par la ligne rouge sur la capture d'écran.

Interface GitKraken montrant trois branches locales (dont le master), et deux dépôts distants origin et upstream. Chacun des 2 dépôts distants ayant un master et plusieurs branches dans un dossier "releases".

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 (git checkout master) pour la rendre active.
  • Positionnez la souris sur le dernier commit de upstream, clic droit, et choisissez Rebase master onto upstream/master (git pull upstream master)
  • Cliquez maintenant sur le bouton Push (git push origin master). Ceci pousse votre branche locale Local master vers le dépôt distant Remote origin master.

Le rebasage de la branche master locale l'a met à jour avec les dernières modifications effectuées sur le dépôt officiel upstream 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, git checkout master). 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 ( git checkout -b nouveau-nom-de-votre-branche).

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 upstream. Pour résumer le processus, une fois que vous avez modifié votre branche, vous devez la pousser vers votre fork GitHub ( origin, https: //github.com/GITHUB_USER_NAME/FreeCAD.git ), et à partir de là, faites un Pull Request sur le dépôt officiel upstream. GitKraken vous fait gagner quelques clics pour créer facilement des pull requests au lieu d'utiliser l'interface de GitHub.

Steps in GitKraken:

  • Find you local branch on the interface and make sure it's active (double click on it).
  • Right click the branch name and find the option to Push <your-branch-name> and start a pull request.
GitKraken will open a dialog that asks you to confirm the repository which your branch will use to pull and push. It will then push your local branch to that remote repository.

  • GitKraken will ask you what you want to call the remote branch. The default name is the same name that the branch has locally in your computer.

  • GitKraken then opens up another dialog asking the repositories and branches to merge, and the direction (from and to).
You normally want to merge from the remote origin <your-branch-name> (GITHUBUSERNAME/FreeCAD) to the remote upstream master branch (FreeCAD/FreeCAD). Be sure to enter a good title for the pull request, and write a more descriptive paragraph if your changes are significant. Consult the official documentation of GitKraken for more information.

Resolving merge conflicts

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.

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 au référentiel upstream FreeCAD / FreeCAD.

  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 référentiel 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 référentiels, vous verrez leur historique de commit de manière graphique.

En relation