Skip to content
Snippets Groups Projects
Commit 7aecfe90 authored by Ethan Robert's avatar Ethan Robert
Browse files

Added part on git

parent 08cb31ab
Branches
No related tags found
No related merge requests found
assets/tig-diff.png

17.9 KiB

assets/tig-main.png

26.8 KiB

assets/tig-tree.png

87.7 KiB

input-files:
- src/Intro.md
- src/Install.md
- src/Git.md
metadata:
title: "SAÉ S2.03"
author: "Ethan Robert"
......
# É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.
![Liste des commits en utilisant `tig` (Jonas Fonseca, 2009)](assets/tig-main.png)
`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.
![Vue de `git diff` avec `tig` (Jonas Fonseca, 2009)](assets/tig-diff.png)
![Sortie de `git tree` en utilisant `tig` (Jonas Fonseca, 2009)](assets/tig-tree.png)
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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment