% $Id$ \documentclass[blends,slideColor,colorBG,pdf,ps2pdf]{prosper} \usepackage[frenchb]{babel} \usepackage[T1]{fontenc} \usepackage{multicol} \title{Darcs} \subtitle{Des dépots et des patch} \author{Olivier Thauvin} \email{olivier.thauvin@aerov.jussieu.fr} \institution{ \includegraphics*[height=0.3\textheight]{darcs} } \NoFrenchBabelItemize \begin{document} \maketitle \part{Introduction} \begin{slide}{Plan} \begin{itemize} \item Darcs \end{itemize} \end{slide} \part{Présentation} \begin{slide}{darcs} \begin{itemize} \item http://darcs.net/ \item code sous GPL \item Ecrit en haskell (http://www.haskell.org) \begin{itemize} \item langage fonctionel pur \item langage compilé \end{itemize} \item code sous darcs \end{itemize} \end{slide} \begin{slide}{Concept} \begin{itemize} \item VCS complètement décentralisé \begin{itemize} \item copie de travail = dépôt \item chaque dépôt est une branche \item techniquement, pas de dépôt central \end{itemize} \item le contenu est la résultante d'une série de patchs \begin{itemize} \item pas d'ordre strict dans les patchs \item dépendences entre patch \item échange des patchs en les dépôts \end{itemize} \item un patch est un groupe de modification \end{itemize} \end{slide} \begin{slide}{structure d'un dépôt} Un seul répertoire \verb+_darcs+ à la racine \begin{itemize} \item \verb+current/+: l'arbre de référence (pristine tree) %%\item \verb+inventories/+: FIXME \item \verb+inventory+: la liste des patchs \item \verb+patches/+: les patches \item \verb+prefs/+: les préférences utilisateur \end{itemize} \end{slide} \begin{slide}{cas: travail en solitaire} On veut juste avoir un historique des fichiers: \bigskip \begin{figure}[htb] \includegraphics*[width=0.8\textwidth]{depots_solo} \end{figure} \end{slide} \begin{slide}{cas: dépôt de référence} Le dépôt de référence: \begin{itemize} \item décidé comme tel \item peut-être accessible en lecture en anonyme \item personne ne s'en sert comme copie de travail \end{itemize} \bigskip \begin{figure}[htb] \includegraphics*[width=0.8\textwidth]{depots} \end{figure} \end{slide} \begin{slide}{cas: plusieurs copies} \begin{itemize} \item depuis plusieurs machines \item on veut juste une synchronisation \end{itemize} \bigskip \begin{figure}[htb] \includegraphics*[width=0.8\textwidth]{depots_p2p} \end{figure} \end{slide} \begin{slide}{cas: la vraie vie} \begin{figure}[htb] \includegraphics*[width=0.8\textwidth]{depots_multi} \end{figure} \end{slide} \part{Utilisation} \begin{slide}{Création d'un dépôt} Nouveau dépôt: \verb+darcs initialize+ \bigskip Depuis un dépôt existant \verb+darcs get+ \end{slide} \begin{slide}{Ajout/Suppression de fichier} \begin{itemize} \item \verb+darcs add+ \item \verb+darcs remove+ \end{itemize} \bigskip Ces opérations sont des patchs\\ \bigskip Dans la pratique cela donne deux changements: \begin{enumerate} \item ajout/suppression du fichier \item ajout/suppression du contenu \end{enumerate} \end{slide} \end{document}