source: trunk/darcs/darcs.tex @ 75

Last change on this file since 75 was 75, checked in by nanardon, 18 years ago
  • faire la slide récupérer les patchs
  • Property svn:keywords set to Id
File size: 5.8 KB
Line 
1% $Id$
2\documentclass[blends,slideColor,colorBG,pdf,ps2pdf]{prosper}
3\usepackage[frenchb]{babel}
4\usepackage[T1]{fontenc}
5\usepackage{multicol}
6
7\title{Darcs}
8\subtitle{Des dépots et des patch}
9\author{Olivier Thauvin}
10\email{olivier.thauvin@aerov.jussieu.fr}
11\institution{
12  \includegraphics*[height=0.3\textheight]{darcs}
13}
14
15\NoFrenchBabelItemize
16
17\begin{document}
18    \maketitle
19
20    \part{Introduction}
21
22    \begin{slide}{Plan}
23    \begin{itemize}
24      \item Darcs
25    \end{itemize}
26    \end{slide}
27
28    \part{Présentation}
29
30    \begin{slide}{darcs}
31    \begin{itemize}
32    \item \url{http://darcs.net/}
33    \item code sous GPL
34    \item Ecrit en haskell (http://www.haskell.org)
35        \begin{itemize}
36            \item langage fonctionel pur
37            \item langage compilé
38        \end{itemize}
39    \item code sous darcs
40    \end{itemize}
41    \end{slide}
42
43    \begin{slide}{Concept}
44    \begin{itemize}
45        \item VCS complètement décentralisé
46        \begin{itemize}
47            \item copie de travail = dépôt
48            \item chaque dépôt est une branche
49            \item techniquement, pas de dépôt central
50        \end{itemize}
51        \item le contenu est la résultante d'une série de patchs
52        \begin{itemize}
53            \item pas d'ordre strict dans les patchs
54            \item dépendences entre patch
55            \item échange des patchs entre les dépôts
56        \end{itemize}
57        \item un patch est un groupe de modifications
58    \end{itemize}
59    \end{slide}
60
61    \begin{slide}{structure d'un dépôt}
62    Un seul répertoire \verb+_darcs+ à la racine
63
64    \begin{itemize}
65        \item \verb+current/+: l'arbre de référence (pristine tree)
66        %%\item \verb+inventories/+: FIXME
67        \item \verb+inventory+: la liste des patchs
68        \item \verb+patches/+: les patchs
69        \item \verb+prefs/+: les préférences utilisateur
70    \end{itemize}
71    \end{slide}
72
73    \begin{slide}{Les patchs}
74    un patch:
75    \begin{itemize}
76        \item un id unique généré par darcs
77        \item un nom, identifiant
78        \item une description (optionnelle)
79        \item le nom (mail) de l'auteur
80        \item une signature gpg (optionelle)
81        \item une date
82        \item une série de modifications (le patch lui même)
83    \end{itemize}
84    \end{slide}
85
86    \begin{slide}{cas: travail en solitaire}
87    On veut juste avoir un historique des fichiers:
88    \bigskip
89    \begin{figure}[htb]
90    \includegraphics*[width=0.8\textwidth]{depots_solo}
91    \end{figure}
92    \end{slide}
93
94    \begin{slide}{cas: dépôt de référence}
95    Le dépôt de référence:
96    \begin{itemize}
97        \item décidé comme tel
98        \item peut-être accessible en lecture en anonyme
99        \item personne ne s'en sert comme copie de travail
100    \end{itemize}
101    \bigskip
102    \begin{figure}[htb]
103    \includegraphics*[width=0.8\textwidth]{depots}
104    \end{figure}
105    \end{slide}
106   
107    \begin{slide}{cas: plusieurs copies}
108    \begin{itemize}
109        \item depuis plusieurs machines
110        \item on veut juste une synchronisation
111    \end{itemize}
112    \bigskip
113    \begin{figure}[htb]
114    \includegraphics*[width=0.8\textwidth]{depots_p2p}
115    \end{figure}
116    \end{slide}
117
118    \begin{slide}{cas: la vraie vie}
119    \begin{figure}[htb]
120    \includegraphics*[width=0.8\textwidth]{depots_multi}
121    \end{figure}
122    \end{slide}
123
124    \part{Avant de commencer}
125
126    \begin{slide}{Création d'un dépôt}
127    Nouveau dépôt:
128
129    \verb+darcs initialize+
130
131    \bigskip
132    Depuis un dépôt existant
133
134    \verb+darcs get+\\
135    \verb+darcs put+
136    \end{slide}
137   
138    \part{Utilisation locale}
139
140    \begin{slide}{Ajout/Suppression de fichier}
141    \begin{itemize}
142        \item \verb+darcs add+
143        \item \verb+darcs remove+
144    \end{itemize}
145    \bigskip
146    Ces opérations sont des patchs\\
147    \bigskip
148    Dans la pratique cela donne deux changements:
149    \begin{enumerate}
150        \item ajout/suppression du fichier
151        \item ajout/suppression du contenu
152    \end{enumerate}
153    \end{slide}
154
155    \begin{slide}{enregistrer}
156    \verb+darcs record+
157   
158    \bigskip
159    \begin{itemize}
160        \item chaque modification peut-être accéptée ou laissée
161        \item est purement local
162    \end{itemize}
163   
164    \bigskip
165    Choses à savoir:
166    \begin{itemize}
167        \item Les modifications ont une hiérarchie
168    \end{itemize}
169    \end{slide}
170
171    \begin{slide}{record: exemple}
172    \begin{tiny}
173    \begin{verbatim}
174$ darcs add prog.hs
175$ darcs record
176addfile ./prog.hs
177Shall I record this patch? (1/?) [ynWsfqadjkc], or ? for help: y
178hunk ./prog.hs 1
179+#!/usr/bin/runhaskell
180+
181[...]
182+    putStrLn "Hello World"
183+
184Shall I record this patch? (2/?) [ynWsfqadjkc], or ? for help: y
185What is the patch name? add prog.hs
186Do you want to add a long comment? [yn] n
187Finished recording patch 'add prog.hs'
188    \end{verbatim}
189    \end{tiny}
190    \end{slide}
191
192    \part{Propagation des patchs}
193
194    \begin{slide}{Communiquer son travail}
195   
196    \begin{itemize}
197        \item \verb+darcs push+
198        \begin{itemize}
199            \item envois les patchs du dépôt vers un autre dépots
200            \item nécessite un droit d'écriture sur la destination
201            (ssh, dépôt local)
202        \end{itemize}
203        \item \verb+darcs send+
204        \begin{itemize}
205            \item envois un plusieurs patch par mail
206            \item support de gnupg
207            \item le patch peut être extrait dans un fichier "\verb+-o+"
208        \end{itemize}
209    \end{itemize}
210    \end{slide}
211
212    \begin{slide}{Récupérer le travail des autres}
213   
214    \begin{itemize}
215        \item \verb+darcs pull+
216        \begin{itemize}
217            \item récupère les patchs d'un dépôt et les applique localement
218        \end{itemize}
219
220        \item \verb+darcs apply+
221        \begin{itemize}
222            \item applique un patch créer par \verb+darcs send+
223        \end{itemize}
224    \end{itemize}
225    \end{slide}
226
227
228   
229\end{document}
Note: See TracBrowser for help on using the repository browser.