diff --git a/assets/tig-diff.png b/assets/tig-diff.png new file mode 100644 index 0000000000000000000000000000000000000000..ab12c655dab91f69b5064829fd106e0337ce43f3 Binary files /dev/null and b/assets/tig-diff.png differ diff --git a/assets/tig-main.png b/assets/tig-main.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e3a4a382f2937f76719fd048e919bfb11aa0bd Binary files /dev/null and b/assets/tig-main.png differ diff --git a/assets/tig-tree.png b/assets/tig-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..79c4e44ef750e9c0fcb8cdc9490a3f3f07d94008 Binary files /dev/null and b/assets/tig-tree.png differ diff --git a/config.yaml b/config.yaml index f64b623a653ed5240e4f24a11c2af3afd440624f..14c498aeef69fa176f725b39a29b077d37fc29f3 100644 --- a/config.yaml +++ b/config.yaml @@ -1,6 +1,7 @@ input-files: - src/Intro.md - src/Install.md + - src/Git.md metadata: title: "SAÉ S2.03" author: "Ethan Robert" diff --git a/src/Git.md b/src/Git.md new file mode 100644 index 0000000000000000000000000000000000000000..8f76e3a9e532ed9a557be5d0a3d7c012117e9273 --- /dev/null +++ b/src/Git.md @@ -0,0 +1,69 @@ +# Étude des applications clientes + +Cette section traitera principalement de l'étude des applications installées sur la machine serveur, avant l'installation d'un serveur git. + +## Analyse préliminaire de `git` et des outils graphiques associés + +Bien qu'un environnement graphique ne soit pas installé, cela ne change pas réellement les choses. La seule différence est **l'impossibilité d'installer un client graphique `git`**. + +### Les interfaces graphiques pour git + +Ici, on ne pourra donc pas installer `gitk` ou `git-gui`. Cependant, voici un bref résumé de ces logiciels, et de leur utilité. + +`gitk` et `git-gui` sont deux clients *graphiques* pour `git`, écrits en python et utilisant la suite d'outils TCL/TK, qui permet la construction d'interfaces graphiques simples. + + + - `gitk` permet l'affichage des changements dans un répo Git, ou de quelques *commits* sélectionnés. Ceci inclut la visualisation du *graphique des commits*, ainsi que celle des fichiers dans l'arbre et les changements effectués sur ceux-ci. *([gitk, documentation git](https://git-scm.com/docs/gitk))* + - `git gui` permet principalement d'effectuer des changements dans les répos git en écrivant de nouveaux *commits*, en ajoutant de nouveaux changements à ceux-ci, en créant de nouvelles branches ou en les fusionnant localement, ou en récupérant ou publiant les changements depuis ou vers les sources distantes. + À l'inverse de `gitk`, `git gui` se concentre principalement sur la génération des *commits* ainsi que sur l'annotation des fichiers, et **ne montre pas l'historique du projet**. *([git-gui, documentation git](https://git-scm.com/docs/git-gui))* + +### Comparaison avec un autre logiciel + +Le challenge est ici un peu plus complexe, car il faudra choisir **obligatoirement** un visualiseur ne nécéssitant pas une interface graphique, donc nous sommes obligés de choisir un outil fonctionnant dans le terminal. + +#### Présentation de `tig` + +Ici, nous avons choisi `tig`. Il s'agit d'une interface en mode texte pour `git` basée sur le set d'outils `ncurses`, qui permet l'affichage d'interfaces complexes dans le terminal. + + + +`tig` permet principalement de se déplacer dans un répo Git, mais peut également servir à l'édition de *commits*, et fonctionne plus largement comme logiciel de mise en page pour la plupart des commandes `git`, telles que : + - `git branch`, qui affiche la liste des branches du répo + - `git status`, qui affiche la liste des changements + +Et ainsi de suite. + +Il s'utilise donc de cette manière : +```bash +git <commande> | tig +``` + +#### Installation de `tig` + +Pour l'installer, il suffit simplement de télécharger une archive source depuis [la page releases du GitHub de tig](https://github.com/jonas/tig/releases). + +Une fois extraite, on effectue simplement ces commandes )à l'intérieur du répertoire source : +```bash +# Compilation de l'outil +make prefix=/usr/local +# Installation +sudo make install prefix=/usr/local +``` + +On peut également installer la documentation de l'outil : +``` +make install-doc +``` + +#### Comparaison avec la commande simple `git` + +Cet outil permet avant tout d'avoir accès à une mise en page plus élégante de la sortie des commandes `git`, qui ne sont pas toujours très faciles à comprendre. + + + + + +Cela a l'avantage de permettre une compréhension plus claire des commandes git, ainsi qu'une navigation plus facile. On n'est ainsi plus obligé de manipuler la sortie de `git` avec des outils comme `less` ou `wc`, car tout est directement affiché. + +Cependant, `tig` demande de constamment taper sa commande à la fin de chaque commande `git`. On ne peut pas simplement lancer l'outil et le laisser agir seul comme c'est le cas avec `gitk` ou `git-gui`. C'est un de ses désavantages. +