6,609
edits
m (→Utilisation quotidienne: Grammar reversion.) |
m (→Git-svn: Grammar fixes and editing throughout.) |
||
| Line 200: | Line 200: | ||
=== Git-svn === | === Git-svn === | ||
L'outil git-svn est utile pour ceux qui connaissent déjà comment utiliser les outils et les dépôts de git, ou ceux qui souhaitent avoir leur propre zone de développement d'aéronef privé. Git-svn établi un lien entre le dépôt Subversion distant de FGAddon et un dépôt git local. Pour ceux qui connaissent pas git, le lien de git-svn ainsi que le dépôt | L'outil git-svn est utile pour ceux qui connaissent déjà comment utiliser les outils et les dépôts de git, ou ceux qui souhaitent avoir leur propre zone de développement d'aéronef privé. Git-svn établi un lien entre le dépôt Subversion distant de FGAddon et un dépôt git local. Pour ceux qui connaissent pas git, le lien de git-svn ainsi que le dépôt local est beaucoup plus compliqué à utiliser que les [[#Subversion|outils de Subversion indigènes]]. Pour plus d'informations sur l'utilisation de git, voyez [[Howto:Start using git]]. Les commandes suivantes présumeraient qu'un seul aéronef sera stocké dans le dépôt git local. | ||
==== Mettre en place ==== | ==== Mettre en place ==== | ||
Pour commencer, le système de gestion de versions git décentralisée doit être [https://git-scm.com/downloads installé]. | |||
==== Clonage d'un seul | ==== Clonage d'un seul aéronef ==== | ||
La première étape est de cloner l'un des aéronefs | La première étape est de cloner l'un des aéronefs du répertoire <code>trunk/</code> dans le dépôt Subversion distant: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn clone <url_aéronef> | git svn clone <url_aéronef> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Pour l'URL | Pour l'adresse URL pertinente, vous devriez choisir l'un des [[#Scénarios de développement|scénarios de développement]] et trouver l'URL dans la section correspondante. L'adresse URL dépend si vous avez un [[#Accès commit|accès commit FGAddon]]. La commande clone créera un dépôt git local contenant exclusivement l'aéronef d'intérêt et initialisera le lien git-svn. | ||
==== Information et historique ==== | ==== Information et historique ==== | ||
| Line 232: | Line 232: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Cela | Cela enregistrera le fichier ou le répertoire <code><chemin></code> avec le dépôt local pour permettre de faire un «commit» plus tard dans le dépôt git local. Pour déplacer ou renommer un fichier ou répertoire, utilisez: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git mv <chemin1> <chemin2> | git mv <chemin1> <chemin2> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Notez cependant que l'historique de git est moins | Notez cependant que l'historique de git est moins robuste que l'historique de svn. Consultez la [[#Déplacement ou renommage de fichiers|section de déficience de git-svn en déplacement ou renommage de fichiers]] pour savoir comment mieux effectuer cette opération. Pour supprimer un fichier du dépôt local, tapez: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git rm <chemin> | git rm <chemin> | ||
| Line 248: | Line 248: | ||
==== Valider la transaction ==== | ==== Valider la transaction ==== | ||
Comme Git est un système de gestion de versions | Comme Git est un système de gestion de versions décentralisé, les modifications sont validées dans le dépôt local avec: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git commit | git commit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Cette commande ouvrira un éditeur pour vous permettre d'écrire un message de commit informatif. Le commit est local et ne sera pas envoyé à FGAddon. | |||
==== Branche dédié FGAddon ==== | ==== Branche dédié FGAddon ==== | ||
Dans les exemples ci-dessus, une seule branche dans le dépôt local a été | Dans les exemples ci-dessus, une seule branche dans le dépôt local a été supposée. Si un interaction avec un dépôt git distant ou des branches dans le dépôt git local sont désiré, une stratégie différente est nécessaire. La raison étant que la branche qui se synchronise avec FGAddon doit [https://git-scm.com/book/fr/v1/Git-et-les-autres-syst%C3%A8mes-Git-et-Subversion#git-svn maintenir une historique linéaire]. Cela signifie qu'il faut seulement faire un «cherry-pick» pour chaque modification souhaité dans cette branche. | ||
Dans cet exemple, deux branches seront | Dans cet exemple, deux branches seront créées dans le dépôt git local: | ||
* <code>fgaddon</code>: Cette branche sera dédiée à la synchronisation FGAddon et permettra de préserver | * <code>fgaddon</code>: Cette branche sera dédiée à la synchronisation FGAddon et permettra de préserver une historique linéaire. | ||
* <code>master</code>: Une branche master pour le développement d'aéronef, | * <code>master</code>: Une branche master pour le développement d'aéronef, permettant des «merges» et autres opérations d'historique non-linéaires. | ||
En supposant un [[#Clonage d'un seul avion|dépôt nouvellement cloné]], créez | En supposant un [[#Clonage d'un seul avion|dépôt nouvellement cloné]], créez la branche <code>fgaddon</code> avec: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git branch fgaddon | git branch fgaddon | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Et allez à cette branche: | Et allez à cette branche en tapant: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git checkout fgaddon | git checkout fgaddon | ||
</syntaxhighlight> | </syntaxhighlight> | ||
La synchronisation avec FGAddon peut être effectuée sur cette branche. Pour tirer les développements de la branche <code>master</code>, utilisez | La synchronisation avec FGAddon peut être effectuée sur cette branche. Pour tirer les développements de la branche <code>master</code>, utilisez la commande «cherry-pick» pour tirer une liste de commits en ordre séquentiel: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git cherry-pick < | git cherry-pick <hash_de_commit_1> | ||
git cherry-pick < | git cherry-pick <hash_de_commit_2> | ||
git cherry-pick < | git cherry-pick <hash_de_commit_3> | ||
... | ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Pour voir la liste des commits prêt à être | Pour voir la liste des commits prêt à être envoyée à FGAddon, avant de «dcommitting», tapez: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git log git-svn..HEAD | git log git-svn..HEAD | ||
| Line 297: | Line 297: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Assurez-vous que le dépôt git-svn local est au courant avec | Assurez-vous que le dépôt git-svn local est au courant avec toutes les modification qui sont arrivées dans FGAddon: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn rebase | git svn rebase | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Enfin poussez les changements à FGAddon avec: | Enfin, poussez les changements à FGAddon avec: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn dcommit | git svn dcommit | ||