Commit 0a6f9452 authored by Grégory Mounié's avatar Grégory Mounié
Browse files

fin de passage à minted du tp1

explicitation des prompts avec le mode console de minted

Quelques fusions pour diminuer le nombre de blocs maintenant
que les prompts sont bien visibles.
parent 3279a19a
\documentclass[a4paper,10pt]{scrartcl}
\documentclass[a4paper]{scrartcl}
\usepackage{header}
......@@ -104,13 +104,13 @@ devrait faire l'affaire, ou bien rendez-vous sur \url{http://git-scm.com/}).
On commence par configurer l'outil Git. Sur la machine sur laquelle on
souhaite travailler (donc sur vos portables dans notre exemple)~:
\begin{lstlisting}
git config --edit --global
\end{lstlisting}
\begin{minted}{console}
both@laptops$ git config --edit --global
\end{minted}
Ou bien~:
\begin{lstlisting}
emacs ~/.gitconfig # ou son éditeur préféré à la place d'Emacs !
\end{lstlisting}
\begin{minted}{console}
both@laptops$ emacs ~/.gitconfig # ou son éditeur préféré à la place d'Emacs !
\end{minted}
Le contenu du fichier \texttt{ .gitconfig} (à créer s'il n'existe pas)
doit ressembler à ceci~:
......@@ -143,9 +143,9 @@ demandent des options particulières pour être compatible avec git.
Sans ces options, vous seriez confronté à l'erreur suivante lors d'un
\texttt{commit} git si l'éditeur était déjà lancé~:
\begin{verbatim}
\begin{minted}{console}
Aborting commit due to empty commit message.
\end{verbatim}
\end{minted}
La ligne \texttt{editor} n'est pas obligatoire ; si elle n'est pas présente, la
variable d'environnement \texttt{VISUAL} sera utilisée ; si cette
......@@ -341,12 +341,12 @@ en haut du fichier, et enregistre le résultat.
\subsection{Création de nouvelles révision}
\begin{minted}{bash}
git status # comparaison du répertoire de
\begin{minted}{console}
both@laptops$ git status # comparaison du répertoire de
# travail et du dépôt.
\end{minted}
On voit apparaître~:
\begin{verbatim}
\begin{minted}{console}
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
......@@ -354,7 +354,7 @@ Changes not staged for commit:
modified: hello.c
\end{verbatim}
\end{minted}
Ce qui nous intéresse ici est la ligne « modified: hello.c » qui signifie que
vous avez modifié \texttt{hello.c}, et que ces modifications n'ont
pas été enregistrées dans le dépôt local.
......@@ -367,7 +367,7 @@ git diff HEAD
\end{minted}
Comme {\em Alice} et {\em Bob} ont fait des modifications différentes, le diff
affiché sera différent, mais ressemblera dans les deux cas à~:
\begin{verbatim}
\begin{minted}{diff}
diff --git a/sandbox/hello.c b/sandbox/hello.c
index a47665a..7f67d33 100644
--- a/sandbox/hello.c
......@@ -378,8 +378,7 @@ index a47665a..7f67d33 100644
+/* Auteurs : Alice et ... */
#include <stdio.h>
\end{verbatim}
\end{minted}
Les lignes commençant par '-' correspondent à ce qui a été enlevé, et
les lignes commençant par '+' à ce qui a été ajouté par rapport au
précédent commit. Si vous avez suivi les consignes ci-dessus à propos
......@@ -387,9 +386,8 @@ du fichier \texttt{.gitconfig}, vous devriez avoir les lignes supprimées
en rouge et les ajoutées en vert.
Maintenant, {\em Alice} et {\em Bob} font~:
\begin{minted}{bash}
git commit -a # Enregistrement de l'état courant de
# l'arbre de travail dans le dépôt local.
\begin{minted}{console}
both@laptops$ git commit -a # Enregistrement de l'état courant de l'arbre de travail dans le dépôt local.
\end{minted}
L'éditeur est lancé et demande d'entrer un message de 'log'. Ajouter
des lignes et d'autres renseignements sur les modifications apportées à
......@@ -409,13 +407,12 @@ Ce commit est identifié par une chaîne hexadécimale (« 2483c22 » dans
notre cas).
On peut visualiser ce qui s'est passé avec les commandes
\begin{minted}{bash}
gitk # Visualiser l'historique graphiquement
\begin{minted}{console}
both@laptops$ gitk # Visualiser l'historique graphiquement
\end{minted}
et
\begin{minted}{bash}
git gui blame hello.c # voir l'historique de chaque
# ligne du fichier hello.c
\begin{minted}{console}
both@laptops$ git gui blame hello.c # voir l'historique de chaque ligne du fichier hello.c
\end{minted}
On va maintenant mettre ce « commit » à disposition des
......@@ -425,8 +422,7 @@ autres utilisateurs.
SEULEMENT {\em Bob} fait~:
\begin{minted}{console}
bob@laptop2$ git push # Envoyer les commits locaux dans
# le dépôt partagé
bob@laptop2$ git push # Envoyer les commits locaux dans le dépôt partagé
\end{minted}
Pour voir où on en est, les deux équipes peuvent lancer la commande~:
\begin{minted}{bash}
......@@ -436,12 +432,9 @@ ou bien
\begin{minted}{bash}
git log # afficher l'historique sous forme textuelle.
\end{minted}
À PRESENT, {\em Alice} peut tenter d'envoyer ses modifications~:
À PRESENT, {\em Alice} peut tenter d'envoyer ses modifications et on voit apparaître~:
\begin{minted}{console}
alice@laptop1$ git push
\end{minted}
On voit apparaître~:
\begin{verbatim}
To ssh://git@gitlab.ensimag.fr/alice_bob/projet1.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to
......@@ -449,7 +442,7 @@ error: failed to push some refs to
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
\end{verbatim}
\end{minted}
L'expression « non-fast-forward » (qu'on pourrait traduire par « absence
d'avance rapide ») veut dire qu'il y a des modifications dans le dépôt
......@@ -502,16 +495,13 @@ Il faut alors « choisir » dans \texttt{ hello.c} la version qui convient
(ou même la modifier). Ici, on va fusionner à la main (\textit{i.e.} avec un
éditeur de texte) et remplacer l'ensemble par ceci~:
\begin{verbatim}
\begin{minted}{c}
/* Auteurs : Alice et Bob */
\end{verbatim}
\end{minted}
Si {\em Alice} fait à nouveau
Si {\em Alice} fait à nouveau \mintinline{bash}{git status}, on voit apparaître~:
\begin{minted}{console}
alice@laptop1$ git status
\end{minted}
On voit apparaître~:
\begin{verbatim}
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commit(s) each, respectively.
......@@ -522,15 +512,14 @@ Unmerged paths:
both modified: hello.c
no changes added to commit (use "git add" and/or "git commit -a")
\end{verbatim}
\end{minted}
Si on n'est pas sûr de soi après la résolution des conflits, on peut
lancer la commande~:
\begin{minted}{bash}
git diff # git diff sans argument, alors qu'on avait
# l'habitude d'appeler 'git diff HEAD'
\begin{minted}{console}
alice@laptop1$ git diff # git diff sans argument, alors qu'on avait l'habitude d'appeler 'git diff HEAD'
\end{minted}
Après un conflit, Git affichera quelque chose comme~:
\begin{verbatim}
\begin{minted}{diff}
diff --cc hello.c
index 5513e89,614e4b9..0000000
--- a/hello.c
......@@ -543,7 +532,7 @@ index 5513e89,614e4b9..0000000
#include <stdio.h>
\end{verbatim}
\end{minted}
(les '+' et les '-' sont répartis sur deux colonnes, ce qui correspond
aux changements par rapport aux deux « commits » qu'on est en train de
fusionner. Si vous ne comprenez pas ceci, ce n'est pas très grave !)
......@@ -562,7 +551,6 @@ and have 1 and 1 different commit(s) each, respectively.
Changes to be committed:
modified: hello.c
\end{minted}
On note que \texttt{hello.c} n'est plus considéré « both modified »
......@@ -571,8 +559,8 @@ comme « modified ».
Quand il n'y a plus de fichier en conflit, il faut faire un commit
(comme « git pull » nous l'avait demandé)~:
\begin{minted}{bash}
git commit
\begin{minted}{console}
alice@laptop1$ git commit
\end{minted}
(Dans ce cas, il est conseillé, même pour un débutant, de ne pas
utiliser l'option \verb|-a|, mais c'est un détail)
......@@ -587,8 +575,8 @@ commit, faire la fusion automatique, et créer si besoin un nouveau
commit correspondant à la fusion.
On peut maintenant regarder plus en détails ce qu'il s'est passé~:
\begin{minted}{bash}
gitk
\begin{minted}{console}
alice@laptop1$ gitk
\end{minted}
Pour \textit{Alice}, on voit apparaître les deux « commit » fait par {\em Bob} et
{\em Alice} en parallèle, puis le « merge commit » que nous venons de créer
......@@ -607,14 +595,14 @@ bob@laptop2$ git pull
commande)
Les deux utilisateurs peuvent comparer ce qu'ils ont avec~:
\begin{minted}{bash}
gitk
\begin{minted}{console}
both@laptops$ gitk
\end{minted}
Ils ont complètement synchronisé leurs répertoires. On peut également
faire~:
\begin{minted}{bash}
git pull
git push
\begin{minted}{console}
both@laptops$ git pull
both@laptops$ git push
\end{minted}
Mais ces commandes se contenteront de répondre \texttt{Already up-to-date.}
et \texttt{Everything up-to-date}.
......@@ -675,23 +663,20 @@ alice@laptop1$ git push
bob@laptop2$ git pull
\end{minted}
Après quelques messages informatifs, on voit apparaître~:
\begin{verbatim}
\begin{minted}{console}
Fast forward
toto.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
create mode 100644 toto.c
\end{verbatim}
\end{minted}
Le fichier \texttt{toto.c} est maintenant présent chez {\em Bob}.
\subsection{Fichiers ignorés par Git}
{\em Bob} crée à présent un nouveau fichier \texttt{ temp-file.txt}, puis
fait~:
fait un \mintinline{console}{git status}. On voit maintenant apparaître~:
\begin{minted}{console}
bob@laptop2$ git status
\end{minted}
On voit maintenant apparaître~:
\begin{verbatim}
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
......@@ -699,7 +684,7 @@ Untracked files:
temp-file.txt
nothing added to commit but untracked files present (use "git add" to track)
\end{verbatim}
\end{minted}
Si {\em Bob} souhaite que le fichier \texttt{temp-file.txt} ne soit pas enregistré
dans le dépôt (soit « ignoré » par Git), il doit placer son nom dans un
fichier \texttt{.gitignore} dans le répertoire contenant \texttt{temp-file.txt}.
......@@ -724,19 +709,16 @@ bénéficient du même fichier \texttt{.gitignore}, {\em Bob} fait~:
\begin{minted}{console}
bob@laptop2$ git add .gitignore
\end{minted}
{\em Bob} fait à nouveau~:
{\em Bob} fait à nouveau un \mintinline{console}{git status}, et on voit apparaître~:
\begin{minted}{console}
bob@laptop2$ git status
\end{minted}
On voit apparaître~:
\begin{verbatim}
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: .gitignore
\end{verbatim}
\end{minted}
Quelques remarques~:
\begin{itemize}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment