source: trunk/subversion-short/subversion.tex @ 240

Last change on this file since 240 was 240, checked in by nanardon, 15 years ago
  • remove one slide
  • Property svn:keywords set to Id Author Revision
File size: 11.5 KB
Line 
1% $Id$
2\documentclass[notes]{beamer}
3%\documentclass[blends,frameColor,colorBG,pdf,ps2pdf]{prosper}
4\usepackage[frenchb]{babel}
5\usepackage[T1]{fontenc}
6\usepackage{multicol}
7\usepackage{moreverb}
8
9\mode<presentation>
10{
11  \definecolor{beamerstructure}{RGB}{143,79,112}
12  \definecolor{sidebackground}{RGB}{230,242,250}
13  \color{beamerstructure}
14  \usetheme[secheader]{Madrid}
15  \usepackage{times}
16  \userightsidebarcolortemplate{\color{sidebackground}}
17  \beamertemplateballitem
18}
19
20\AtBeginSection[]
21{
22\begin{frame}<beamer>
23    \frametitle{Plan}
24    \tableofcontents[currentsection,hideothersubsections]
25\end{frame}
26}
27
28\title{Subversion}
29\subtitle{parce que cvs sucks}
30\author{Olivier Thauvin}
31%%\email{olivier.thauvin@aerov.jussieu.fr}
32%%\institution{
33%%  \includegraphics*[height=0.3\textheight]{gnutux.eps}
34%%}
35
36\begin{document}
37   
38\begin{frame}
39    \maketitle
40\end{frame}
41
42\begin{frame}{Plan}
43    \tableofcontents
44\end{frame}
45
46\section*{Introduction}
47
48\begin{frame}{Généralités sur les VCS}
49\begin{block}{Pourquoi utiliser un gestionnaire de versionnement ?}
50    \begin{itemize}
51        \item Archiver pas à pas les modifications
52        \pause
53        \item Retrouver n'importe quelle ancienne version
54        \pause
55        \item Gérer le stockage concurrent
56        \pause
57            \begin{itemize}
58                \item travail à plusieurs
59                \item travail depuis plusieurs machines
60            \end{itemize}
61    \end{itemize}
62\end{block}
63
64\begin{block}{Plusieurs approches}
65    \pause
66    \begin{itemize}
67    \item centralisé vs décentralisé
68    \pause
69    \item révisions incrémentales vs patch
70    \end{itemize}
71\end{block}
72\end{frame}
73
74\section{CVS}
75
76\begin{frame}{CVS}
77    \begin{block}{Concurrent Versions System}
78    \begin{itemize}
79        \item Basé sur RCS
80        \item Vieux\\
81        {\small donc connu, courant et bien implanté}
82        \item Dépôt centralisé
83        \item Code monobloc
84    \end{itemize}
85    \end{block}
86\end{frame}
87   
88\section{Subversion}
89
90\subsection{Présentation}
91
92\begin{frame}
93    \frametitle{Présentation}
94    \begin{block}{CVS++}
95    un successeur à CVS
96    \end{block}
97    \vfill
98    \pause
99    \begin{block}{Historique:}
100    \begin{itemize}
101        \item Février 2000: Début du développement par CollabNet
102        \item 31 Août 2001: subversion est sous subversion
103        \item 23 Février 2004: version 1.0.0
104    \end{itemize}
105    \end{block}
106    \vfill
107    \pause
108    \begin{block}{Un projet libre}
109    "Redistribution and use in source and binary forms, with or without
110    modification, are permitted (\ldots)"
111    \end{block}
112\end{frame}
113
114\begin{frame}
115    \frametitle{CVS vs SVN}
116    \begin{block}{}
117    \begin{itemize}
118    \item versionnement des répertoires
119    \pause
120    \item numéros de révision unique au dépôt
121    \pause
122    \item vrai historique\\
123    {\small svn mv, svn cp}
124    \pause
125    \item commits atomiques\\
126    {\small tout ou rien}
127    \pause
128    \item metadonnées versionnées
129    \pause
130    \item différentes méthodes d'accès aux dépôts\\
131    {\small local, ssh, http, svnserver}
132    \pause
133    \item gestion des branches revue\\
134    {\small comprendre, plus de branches ! :)}
135    \pause
136    \item fonctionne avec des librairies
137    \end{itemize}
138    \end{block}
139\end{frame}
140
141\subsection{Administration}
142
143\begin{frame}[fragile]
144    \frametitle{Administration}
145    \begin{block}{}
146    \begin{itemize}
147        \item elle doit se faire sur la machine elle même
148        \item système de fichiers local
149    \end{itemize}
150    \end{block}
151    \pause
152    \vfill
153    \begin{block}{Création du dépôt}
154    \begin{verbatim}
155$ svnadmin create /tmp/repos
156    \end{verbatim}
157    \end{block}
158    \pause
159    \vfill
160    \begin{block}{Sauvegarde du dépôt}
161    \begin{verbatim}
162$ svnadmin dump /tmp/repos > dump
163    \end{verbatim}
164    \end{block}
165\end{frame}
166
167\subsection{Utilisation}
168
169\begin{frame}
170    \frametitle{svn, commandes de base}
171    \begin{block}{}
172    \textbf{svn} \textit{options} commande
173    \bigskip
174    \begin{small}
175    \begin{tabular}{lll}
176    checkout&co&créer une copie de travail\\
177    update&up&mettre à jour une copie de travail\\
178    commit&&envoyer les modifications dans le dépôt\\
179    add&&prendre en charge un nouveau fichier\\
180    rm&&"éfface" un fichier\\
181    help&&affiche l'aide\\
182    \end{tabular}
183    \end{small}
184    \end{block}
185\end{frame}
186
187\begin{frame}{svn, autres commandes}
188    \begin{block}{}
189    \textbf{svn} \textit{options} commande
190    \bigskip
191    \begin{small}
192    \begin{tabular}{lll}
193    diff&&obtenir un \textit{diff}\\
194    rm&&effacer un fichier\\
195    revert&&annuler les changements non commités\\
196    merge&&intégrer des changements à partir d'un diff\\
197    blame&&indiquer la révision des modifications (annotate)\\
198    \end{tabular}
199    \end{small}
200    \end{block}
201\end{frame}
202
203\begin{frame}[fragile]
204    \frametitle{Accès au dépôt}
205    \begin{block}{Tout est url:}
206    \begin{tabular}{ll}
207    local&\verb+file:///chemin+\\
208    http(s)&\verb+http://host/chemin+\\
209    ssh&\verb$svn+ssh://user@host/chemin$\\
210    svnserv&\verb+svn://user@host/chemin+
211    \end{tabular}
212    \end{block}
213    \vfill
214    \pause
215
216    \begin{block}{Accès au sein du dépôt}
217    \small\verb+file:///chemin/depot/sousrep/fichier+
218    \end{block}
219\end{frame}
220
221\begin{frame}
222    \frametitle{Fonctionnement}
223    \begin{columns}                                                                                                                     
224    \column{.4\textwidth} 
225    \begin{block}{La première fois:}
226    \includegraphics[height=0.4\textheight]{workco}\\
227    \end{block}
228    \column{.4\textwidth} 
229    \pause
230    \begin{block}{Au quotidien:}
231    \includegraphics[height=0.4\textheight]{workupdate}\\
232    \end{block}
233    \end{columns}
234\end{frame}
235
236\begin{frame}[fragile]
237    \frametitle{Créer une copie de travail}
238    \begin{exampleblock}{Utilisation de \textit{checkout}}
239\begin{scriptsize}
240\begin{verbatim}
241$ svn co http://virgo/svn/[...]/subversion/ subversion/
242A    subversion/workco.fig
243A    subversion/workupdate.fig
244A    subversion/Makefile
245A    subversion/subversion.tex
246Révision 18 extraite.
247$ cd subversion/
248\end{verbatim}
249\end{scriptsize}
250\end{exampleblock}
251    \vfill
252\begin{alertblock}{}
253    Subversion mémorise l'url du dépôt.
254\end{alertblock}
255\end{frame}
256
257\begin{frame}[fragile]
258    \frametitle{mettre à jour}
259    \begin{block}{svn update}
260    \begin{itemize}
261        \item est récursif (voir -N)
262        \item crée les nouveaux fichiers
263        \item efface les anciens fichiers
264        \item donne un statut aux fichiers
265    \end{itemize}
266    \end{block}
267\vfill
268\pause
269\begin{exampleblock}{}
270\begin{footnotesize}
271\begin{verbatim}
272$ svn update
273U    subversion.tex
274Actualisé à la révision 18.
275$ svn update -r 17 subversion.tex
276U    subversion.tex
277Actualisé à la révision 17.
278\end{verbatim}
279\end{footnotesize}
280\end{exampleblock}
281\end{frame}
282
283\begin{frame}[fragile]
284    \frametitle{soumettre les modifications}
285    \begin{block}{svn commit}
286    \begin{itemize}
287        \item est récursif (voir -N)
288        \item seuls les fichiers précédemment ajoutés sont commités
289        \item seuls les fichiers modifiés sont commités
290        \item log: utiliser -m ou placer \verb+$EDITOR+
291    \end{itemize}
292    \end{block}
293
294\vfill
295\pause
296\begin{exampleblock}{}
297\begin{footnotesize}
298\begin{verbatim}
299$ svn commit -m "- add commit frame"
300Envoi          subversion/subversion.tex
301Transmission des données .
302Révision 20 propagée.
303\end{verbatim}
304\end{footnotesize}
305\end{exampleblock}
306\end{frame}
307
308\begin{frame}{ajouter / enlever des fichiers}
309    \begin{block}{svn add}
310    \begin{itemize}
311        \item est récursif (voir -N)
312        \item est local (nécessite un commit)
313    \end{itemize}
314    \end{block}
315    \vfill
316    \pause
317    \begin{block}{svn remove}
318    \begin{itemize}
319        \item efface aussi le fichier local
320        \item est récursif (voir -N)
321    \end{itemize}
322    \end{block}
323
324% TODO ajouter exemple
325\end{frame}
326
327\begin{frame}[fragile]
328    \frametitle{Comparer}
329    \begin{block}{svn diff}
330    produit un \textit{diff} entre
331    \begin{itemize}
332        \item le fichier local et la révision courante
333        \item le fichier local et une révision arbitraire
334        \item deux révisions arbitraires
335        \item le chemin courant et un autre chemin
336    \end{itemize}
337    \end{block}
338    \vfill
339    \pause
340    \begin{block}{svn status}
341    donne l'état de tous les fichiers
342\begin{footnotesize}
343\begin{verbatim}
344$ svn status
345?      not_in_repos
346M      SPECS/postgresql.spec
347\end{verbatim}
348\end{footnotesize}
349\end{block}
350\end{frame}
351   
352\begin{frame}[fragile]
353\frametitle{svn diff: exemple}
354\begin{exampleblock}{svn diff}
355\begin{tiny}
356\begin{verbatim}
357Index: SPECS/postgresql.spec
358===================================================================
359--- SPECS/postgresql.spec       (révision 28)
360+++ SPECS/postgresql.spec       (copie de travail)
361@@ -17,7 +17,7 @@
362 %define current_major_version 8.1
363 %define current_minor_version 1
364
365-%define release %mkrel 3
366+%define release %mkrel 4
367
368 %define libname %mklibname pq %{major}
369 %define libecpg %mklibname ecpg %{major_ecpg}
370\end{verbatim}
371\end{tiny}
372\end{exampleblock}
373\end{frame}
374   
375\begin{frame}[fragile]
376\frametitle{voir l'historique}
377\begin{block}{svn log}
378affiche les... logs
379\end{block}
380\vfill
381\begin{exampleblock}{}
382\begin{tiny}
383\begin{verbatim}
384$ svn log SPECS/postgresql.spec
385------------------------------------------------------------------------
386r28 | nanardon | 2006-01-02 11:07:34 +0100 (lun, 02 jan 2006) | 1 line
387
388- remove jdbc
389------------------------------------------------------------------------
390r27 | nanardon | 2006-01-02 10:29:35 +0100 (lun, 02 jan 2006) | 1 line
391
392- postgresql-8.1.1-3mdk
393------------------------------------------------------------------------
394r2 | nanardon | 2005-12-26 03:28:50 +0100 (lun, 26 déc 2005) | 1 line
395
396Add postgresql
397------------------------------------------------------------------------
398\end{verbatim}
399\end{tiny}
400\end{exampleblock}
401\end{frame}
402
403\begin{frame}[fragile]
404\frametitle{rechercher d'où vient le code}
405\begin{block}{svn blame}
406affiche l'origine des lignes d'un fichier (révision, auteur et la ligne):
407\begin{tiny}
408\begin{verbatim}
409     7   nanardon \begin{document}
410     9   nanardon     \maketitle
411     7   nanardon
412     9   nanardon     \part{Introduction}
413     7   nanardon
414     9   nanardon     \begin{frame}{Plan}
415     7   nanardon     \begin{itemize}
416     9   nanardon       \item Généralités sur les VCS
417     9   nanardon       \item RCS et CVS
418     9   nanardon       \item Subversion
419     9   nanardon         \begin{itemize}
420    13   nanardon             \item Présentation
421\end{verbatim}
422\end{tiny}
423\end{block}
424\end{frame}
425
426\section{Autour de subversion}
427
428\begin{frame}{tortoisesvn}
429    \begin{block}{Client subversion pour Windows}
430
431    \begin{figure}[htb]
432    \includegraphics[height=60mm]{tortoisesvn}
433    \end{figure}
434    \end{block}
435   
436\end{frame}
437   
438\section{Conclusion}
439
440    \begin{frame}{Résumé}
441    \begin{block}{Points forts:}
442    \begin{itemize}
443        \item simple à comprendre et à mettre en \oe uvre
444        \item pas de gros changement par rapport à CVS
445        \item efficace
446    \end{itemize}
447    \end{block}
448   
449    \begin{alertblock}{Mais:}
450    \begin{itemize}
451        \item reste un VCS centralisé
452        \item reste sur une base purement incrémentale
453    \end{itemize}
454    \end{alertblock}
455    \end{frame}
456   
457    \begin{frame}{Fin}
458    \begin{block}{}
459    \begin{huge}
460    Questions ?
461    \end{huge}
462    \end{block}
463    \vfill
464   
465    \begin{block}{}
466    De toutes façons y'a plein de documentations
467    sur le net: \url{http://subversion.tigris.org/}.
468    \end{block}
469
470    \vfill
471    \vfill
472    \begin{block}{}
473    \footnotesize{Merci à misc :)}
474    \end{block}
475    \end{frame}
476\end{document}
Note: See TracBrowser for help on using the repository browser.