Changeset 43
- Timestamp:
- 01/12/06 00:33:48 (18 years ago)
- Location:
- trunk/darcs
- Files:
-
- 2 added
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/darcs/Makefile
r42 r43 4 4 5 5 SOURCES= \ 6 subversion.tex6 darcs.tex 7 7 8 FIGURES= \ 9 workco.fig \ 10 workupdate.fig \ 11 conflict.fig \ 12 merge.fig \ 13 branches.fig 8 FIGURES= 14 9 15 10 IMAGES= \ 16 viewcvs.png \ 17 trac.png 11 darcss.png \ 18 12 19 13 DVI=$(SOURCES:.tex=.dvi) -
trunk/darcs/darcs.tex
r42 r43 5 5 \usepackage{multicol} 6 6 7 \title{ Subversion}8 \subtitle{ parce que cvs sucks}7 \title{Darcs} 8 \subtitle{Des dépots et des patch} 9 9 \author{Olivier Thauvin} 10 10 \email{olivier.thauvin@aerov.jussieu.fr} 11 %%\institution{12 %% \includegraphics*[height=0.3\textheight]{gnutux.eps}13 %%}11 \institution{ 12 \includegraphics*[height=0.3\textheight]{darcs} 13 } 14 14 15 15 \NoFrenchBabelItemize … … 22 22 \begin{slide}{Plan} 23 23 \begin{itemize} 24 \item Généralités sur les VCS 25 \item RCS et CVS 26 \item Subversion 27 \begin{itemize} 28 \item Présentation 29 \item Administration 30 \item Utilisation 31 \item Allez plus loin 32 \end{itemize} 24 \item Darcs 33 25 \end{itemize} 34 26 \end{slide} 35 27 36 \begin{slide}{Généralités sur les VCS}37 Pourquoi utiliser un Version Control System ?38 \begin{itemize}39 \item Archiver les différentes versions40 \item Fournir n'importe quelle ancienne version41 \item Gerer le stockage concurrent42 \begin{itemize}43 \item travail à plusieurs44 \item travail depuis plusieurs machine45 \end{itemize}46 \end{itemize}47 \end{slide}48 49 \part{RCS et CVS}50 \begin{slide}{RCS}51 Revision Control System (1991)52 \begin{itemize}53 \item Projet GNU sous GPL54 \item Dépôt décentralisé55 \item Ne gère que des fichiers56 \item Se présente comme un suite de programmes\\57 {\small rcs ci co rcsdiff rlog rcsmerge rcsclean rcsfreeze}58 \end{itemize}59 \end{slide}60 61 \begin{slide}{CVS}62 Concurrent Versions System63 \begin{itemize}64 \item Basé sur RCS65 \item Vieu\\66 {\small donc connu, courant et bien implanté}67 \item Dépôt centralisé68 \item Code monobloc69 \end{itemize}70 Les points faibles:71 \begin{itemize}72 \item Utilisation de \verb+$CVSROOT+ peu clair73 \item update ne créer pas les nouveaux répertoires\\74 {\small utilisation de -d}75 \item Etends toujours les mots clefs76 \item Pas de diff sur les nouveaux fichiers77 \item Gestion des branches acrobatique78 \end{itemize}79 \end{slide}80 81 \part{Subversion}82 83 \begin{slide}{Présentation}84 \begin{itemize}85 \item CVS++, se veut un remplaçant de CVS86 \item Historique:87 \begin{itemize}88 \item Février 2000: Début du dévelloppement par CollabNet89 \item 31 Août 2001: subversion est sous subversion90 \item 23 Février 2004: version 1.0.091 \end{itemize}92 \item est libre\\93 Redistribution and use in source and binary forms, with or without94 modification, are permitted (\ldots)95 \end{itemize}96 \end{slide}97 98 \begin{slide}{CVS vs SVN}99 \begin{itemize}100 \item versionnement des répertoires101 \item numéros de révision unique au dépôt102 \item vrai historique\\103 {\small svn mv, svn cp}104 \item commit atomiques\\105 {\small tout ou rien}106 \item metadonnées versionnées107 \item différentes méthode d'accès aux dépots\\108 {\small local, ssh, http, svnserver}109 \item gestion des branches revue\\110 {\small comprendre, plus de branches ! :)}111 \item fonctionne avec des librairies112 \end{itemize}113 \end{slide}114 115 \begin{slide}{fonctionnement}116 \begin{tabular}{lc}117 La première fois:&118 \includegraphics*[height=0.5\textheight]{workco}\\119 \hline120 Après:&121 \includegraphics*[height=0.5\textheight]{workupdate}122 \end{tabular}123 \end{slide}124 125 \begin{slide}{Administration}126 \begin{itemize}127 \item elle doit se faire sur la machine elle même128 \item système de fichier local129 \end{itemize}130 \bigskip131 Création du dépôt132 \begin{verbatim}133 $ svnadmin create /tmp/repos134 \end{verbatim}135 Sauvegarde du dépot:136 \begin{verbatim}137 $ svnadmin dump /tmp/repos > dump138 \end{verbatim}139 \end{slide}140 141 \begin{slide}{Accès au depôt}142 Tout est url:143 \begin{tabular}{ll}144 local&\verb+file:///chemin/+\\145 http(s)&\verb+http://host/chemin+\\146 ssh&\verb$svn+ssh://user@host/chemin$\\147 svnserv&\verb+svn://user@host/chemin+148 \end{tabular}149 \bigskip150 Pas de différence entre base du dépot et chemin dans le depôt:151 152 \small\verb+file:///chemin/depot/sousrep/fichier+153 \end{slide}154 155 \begin{slide}{svn, commandes de base}156 \textbf{svn} \textit{options} commande157 \bigskip158 \begin{small}159 \begin{tabular}{lll}160 checkout&co&créer une copie de travail\\161 update&up&mettre à jours une copie de travail\\162 commit&&envoit les modifications dans le dépôt\\163 add&&prendre en charge un nouveau fichier\\164 \end{tabular}165 \end{small}166 \end{slide}167 168 \begin{slide}{svn, autres commandes}169 \textbf{svn} \textit{options} commande170 \bigskip171 \begin{small}172 \begin{tabular}{lll}173 diff&&obtenir un \textit{diff}\\174 rm&&effacer un fichier\\175 revert&&annuler les changements non commités\\176 merge&&intégrer des changement à partir d'un diff\\177 blame&&indiquer la révision des modifications\\178 \end{tabular}179 \end{small}180 \end{slide}181 182 \begin{slide}{Créer une copie de travail}183 Utilisation de \textit{checkout}184 \begin{scriptsize}185 \begin{verbatim}186 $ svn co http://virgo/svn/[...]/subversion/ subversion/187 A subversion/workco.fig188 A subversion/workupdate.fig189 A subversion/Makefile190 A subversion/subversion.tex191 Révision 18 extraite.192 $ cd subversion/193 \end{verbatim}194 \end{scriptsize}195 \bigskip196 Subversion mémorise l'url du dépots.197 \end{slide}198 199 \begin{slide}{mettre à jours}200 \textit{svn update}201 \begin{itemize}202 \item est récursif (voir -N)203 \item créer les nouveaux fichiers204 \item éfface les anciens fichiers205 \item donne un status aux fichiers206 \end{itemize}207 208 \begin{footnotesize}209 \begin{verbatim}210 $ svn update211 U subversion.tex212 Actualisé à la révision 18.213 $ svn update -r 17 subversion.tex214 U subversion.tex215 Actualisé à la révision 17.216 \end{verbatim}217 \end{footnotesize}218 \end{slide}219 220 \begin{slide}{soumettre les modifications}221 \textit{svn commit}222 \begin{itemize}223 \item est récursif (voir -N)224 \item seuls les fichiers précédement ajouté sont commités225 \item seuls les fichiers modifiés sont commités226 \item log: utiliser -m ou placer \verb+$EDITOR+227 \end{itemize}228 229 \begin{footnotesize}230 \begin{verbatim}231 $ svn commit -m "- add commit slide"232 Envoi subversion/subversion.tex233 Transmission des données .234 Révision 20 propagée.235 \end{verbatim}236 \end{footnotesize}237 238 \end{slide}239 240 \begin{slide}{ajouter / enlever des fichiers}241 \textit{svn add}242 \begin{itemize}243 \item est récursif (voir -N)244 \item est locale (nécéssite un commit)245 \end{itemize}246 \bigskip247 \textit{svn remove}248 \begin{itemize}249 \item efface aussi le fichier local250 \item est récursif (voir -N)251 \end{itemize}252 253 % TODO ajouter exemple254 \end{slide}255 256 \begin{slide}{Comparer}257 \textit{svn diff}258 produit un \textit{diff} entre259 \begin{itemize}260 \item le fichier local et la révision courante261 \item le fichier local et une révision arbitraire262 \item deux révisions arbitraire263 \item un autre chemin264 \end{itemize}265 \bigskip266 \textit{svn status}267 donne l'état de tout les fichiers268 \begin{footnotesize}269 \begin{verbatim}270 $ svn status271 ? not_in_repos272 M SPECS/postgresql.spec273 \end{verbatim}274 \end{footnotesize}275 \end{slide}276 277 \begin{slide}{svn diff: exemple}278 \begin{tiny}279 \begin{verbatim}280 Index: SPECS/postgresql.spec281 ===================================================================282 --- SPECS/postgresql.spec (révision 28)283 +++ SPECS/postgresql.spec (copie de travail)284 @@ -17,7 +17,7 @@285 %define current_major_version 8.1286 %define current_minor_version 1287 288 -%define release %mkrel 3289 +%define release %mkrel 4290 291 %define libname %mklibname pq %{major}292 %define libecpg %mklibname ecpg %{major_ecpg}293 \end{verbatim}294 \end{tiny}295 296 \end{slide}297 298 \begin{slide}{rechercher d'où vient le code}299 \textit{svn blame}300 affiche l'origine des lignes d'un fichier (révision, auteur et la ligne):301 \begin{tiny}302 \begin{verbatim}303 7 nanardon \begin{document}304 9 nanardon \maketitle305 7 nanardon306 9 nanardon \part{Introduction}307 7 nanardon308 9 nanardon \begin{slide}{Plan}309 7 nanardon \begin{itemize}310 9 nanardon \item Généralités sur les VCS311 9 nanardon \item RCS et CVS312 9 nanardon \item Subversion313 9 nanardon \begin{itemize}314 13 nanardon \item Présentation315 \end{verbatim}316 \end{tiny}317 \end{slide}318 319 \begin{slide}{voir l'historique}320 \textit{svn log}321 affiche les... logs322 \begin{tiny}323 \begin{verbatim}324 $ svn log SPECS/postgresql.spec325 ------------------------------------------------------------------------326 r28 | nanardon | 2006-01-02 11:07:34 +0100 (lun, 02 jan 2006) | 1 line327 328 - remove jdbc329 ------------------------------------------------------------------------330 r27 | nanardon | 2006-01-02 10:29:35 +0100 (lun, 02 jan 2006) | 1 line331 332 - postgresql-8.1.1-3mdk333 ------------------------------------------------------------------------334 r2 | nanardon | 2005-12-26 03:28:50 +0100 (lun, 26 déc 2005) | 1 line335 336 Add postgresql337 ------------------------------------------------------------------------338 \end{verbatim}339 \end{tiny}340 \end{slide}341 342 \begin{slide}{Gérer les conflits}343 \begin{figure}[htb]344 \includegraphics*[height=0.3\textheight]{conflict}345 \end{figure}346 Si 2 commits sur le même fichier347 348 \begin{itemize}349 \item fusion automatique350 \item conflit:351 \begin{itemize}352 \item \textit{svn resolved}353 \item corriger le code354 \item commiter355 \end{itemize}356 \end{itemize}357 \end{slide}358 359 \begin{slide}{Annuler un changement}360 \textit{svn merge} intègre les changements \verb+de:à+ dans361 la copie de travail.362 \bigskip363 \begin{itemize}364 \item les changements peuvent venir d'un autre chemin (branches)365 \item n'agit que sur la copie locale (il faut commiter)366 \end{itemize}367 368 \bigskip369 \begin{figure}[htb]370 \includegraphics*[width=0.9\textwidth]{merge}371 \end{figure}372 \end{slide}373 374 \begin{slide}{Les tags, les branches}375 Les branches et les tags sont copies de fichiers:376 \begin{itemize}377 \item avec \textit{svn copy}378 \item les données ne sont pas dupliquées dans le dépot379 \item l'historique est conservé380 \end{itemize}381 \bigskip382 \begin{figure}[htb]383 \includegraphics*[width=0.9\textwidth]{branches}384 \end{figure}385 \end{slide}386 387 \part{Autour de subversion}388 389 \begin{slide}{viewcvs}390 \begin{figure}[htb]391 \includegraphics[width=90mm]{viewcvs}392 \end{figure}393 \end{slide}394 395 \begin{slide}{trac}396 \begin{figure}[htb]397 \includegraphics[width=90mm]{trac}398 \end{figure}399 \end{slide}400 401 28 \end{document}
Note: See TracChangeset
for help on using the changeset viewer.