| 1 | \documentclass [compress, t]{beamer}
|
|---|
| 2 | \usepackage{styles/beamerthemeMarseille}
|
|---|
| 3 | \usepackage[latin1]{inputenc}
|
|---|
| 4 | \usepackage{epsfig}
|
|---|
| 5 | \usepackage{graphicx}
|
|---|
| 6 | \usepackage{graphics}
|
|---|
| 7 | \usepackage{subfigure}
|
|---|
| 8 | \usepackage{color}
|
|---|
| 9 | \usepackage{algorithmic}
|
|---|
| 10 | \usepackage{algorithm}
|
|---|
| 11 | \usepackage{pgfarrows, pgfnodes}
|
|---|
| 12 | \usepackage{url}
|
|---|
| 13 | \usepackage{textcomp}
|
|---|
| 14 | \usepackage{url}\urlstyle{sf}
|
|---|
| 15 | \usepackage{xspace}
|
|---|
| 16 | \usepackage{listings}
|
|---|
| 17 |
|
|---|
| 18 | % Beamer Options
|
|---|
| 19 | \setbeamercovered{dynamic}
|
|---|
| 20 | \setbeamertemplate{blocks}[rounded][shadow=true]
|
|---|
| 21 | %\setbeamertemplate{background canvas}[vertical shading][bottom=white,top=structure.fg!20]
|
|---|
| 22 |
|
|---|
| 23 | %%%% macros %%%%
|
|---|
| 24 |
|
|---|
| 25 | % Macros
|
|---|
| 26 | \newcommand{\cmt} {{\em CMT}\@\xspace}%
|
|---|
| 27 | \newcommand{\svn} {{\em SVN}\@\xspace}%
|
|---|
| 28 | \newcommand{\cvs} {{\em CVS}\@\xspace}%
|
|---|
| 29 |
|
|---|
| 30 | \setbeamercovered{dynamic}
|
|---|
| 31 |
|
|---|
| 32 | \definecolor{rltgreen}{rgb}{0,0.5,0}
|
|---|
| 33 | \pgfdeclareimage[height=0.5cm]{LogoLAL}{logos/logo}
|
|---|
| 34 | \logo{ \pgfuseimage{LogoLAL} }
|
|---|
| 35 |
|
|---|
| 36 | \title{SVN evaluation and proposal for Atlas, \\ Atlas software week}
|
|---|
| 37 | \author{Christian Arnault, Vincent Garonne\\
|
|---|
| 38 | \{arnault,garonne\}@lal.in2p3.fr}
|
|---|
| 39 | \institute{Laboratoire de l'Accélérateur Linéaire}
|
|---|
| 40 | \date {April 7, 2006} % \today
|
|---|
| 41 |
|
|---|
| 42 | \begin{document}
|
|---|
| 43 |
|
|---|
| 44 | % Transparent: Première page
|
|---|
| 45 | \begin{frame}
|
|---|
| 46 | \maketitle
|
|---|
| 47 | %\textcolor{gray}{\it \scriptsize }
|
|---|
| 48 | \end{frame}
|
|---|
| 49 |
|
|---|
| 50 | %------------------------------- SECTION -------------------------%
|
|---|
| 51 | \section*{Outline}
|
|---|
| 52 |
|
|---|
| 53 | %------------------------------- SLIDE -------------------------%
|
|---|
| 54 | \frame
|
|---|
| 55 | {
|
|---|
| 56 | % \frametitle{Outline}
|
|---|
| 57 | \vfill
|
|---|
| 58 | \begin{block}{Outline}
|
|---|
| 59 | \tableofcontents[hideallsubsections]
|
|---|
| 60 | \end{block}
|
|---|
| 61 | }
|
|---|
| 62 |
|
|---|
| 63 | %------------------------------- SECTION -------------------------%
|
|---|
| 64 | \section[svn introduction]{\svn in a nutshell}
|
|---|
| 65 |
|
|---|
| 66 | %------------------------------- SLIDE -------------------------%
|
|---|
| 67 | \frame
|
|---|
| 68 | {
|
|---|
| 69 | \frametitle{\svn in a nutshell}
|
|---|
| 70 | \begin{block}{What is Subversion (or SVN) ?}
|
|---|
| 71 | \begin{itemize}
|
|---|
| 72 | \item Source code management system
|
|---|
| 73 | \item Open Source project (\url{http://subversion.tigris.org/})
|
|---|
| 74 | \item \svn has new features that cover many limitations of \cvs
|
|---|
| 75 | \item Subversion commands are very similar to \cvs, most of
|
|---|
| 76 | the time it's a matter of replacing \texttt{"cvs"} with \texttt{"svn"}~\cite{cvscrossover}
|
|---|
| 77 | \end{itemize}
|
|---|
| 78 | \end{block}
|
|---|
| 79 |
|
|---|
| 80 | \begin{block}{Questions for Atlas}
|
|---|
| 81 | As we have observed limitations/weird behaviors of \cvs:
|
|---|
| 82 | \begin{itemize}
|
|---|
| 83 | \item Is it appropriate to do a swap ?
|
|---|
| 84 | \item Are the Atlas developers enough
|
|---|
| 85 | perturbed :) by the multi-projects structure without adding that ?
|
|---|
| 86 | \end{itemize}
|
|---|
| 87 | \end{block}
|
|---|
| 88 | }
|
|---|
| 89 |
|
|---|
| 90 | %------------------------------- SECTION -------------------------%
|
|---|
| 91 | \section[CVS/SVN comparison]{\svn versus \cvs}
|
|---|
| 92 |
|
|---|
| 93 | %------------------------------- SLIDE -------------------------%
|
|---|
| 94 | \frame
|
|---|
| 95 | {
|
|---|
| 96 | \frametitle{\cvs versus \svn}
|
|---|
| 97 | \begin{itemize}
|
|---|
| 98 | \item \svn really works faster than \cvs :
|
|---|
| 99 | \begin{itemize}
|
|---|
| 100 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 101 | \item Transmits less information through the network
|
|---|
| 102 | \item Supports more operations for offline mode, e.g
|
|---|
| 103 | client sends deltas to server when committing
|
|---|
| 104 | \end{itemize}
|
|---|
| 105 | % \item More details :
|
|---|
| 106 | \end{itemize}
|
|---|
| 107 | \scriptsize
|
|---|
| 108 | \begin{table}[htb]
|
|---|
| 109 | \begin{center}
|
|---|
| 110 | \begin{tabular}{|l|c|c|}
|
|---|
| 111 | \hline
|
|---|
| 112 | \texttt { \large \bf \textcolor{blue}{Source code management system}} & {\bf \large \textcolor{blue}{\cvs} } & {\bf \large \textcolor{blue}{\svn}} \\
|
|---|
| 113 | \hline
|
|---|
| 114 | \hline
|
|---|
| 115 | \texttt {\bf Atomic Commits } & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 116 | \texttt {\bf Efficient (constant-time) tagging } & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 117 | \texttt {\bf File renames handles cleanly (renaming, moving)} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 118 | \texttt {\bf Advanced Merging Features} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 119 | \texttt {\bf Manipulation of all the file types} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 120 | \texttt {\bf Easy Development on Branches} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 121 | \texttt {\bf Easy Server Administration} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 122 | \texttt {\bf Remote Repository Replication} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 123 | \texttt {\bf Scalable Performance and Admin} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 124 | \texttt {\bf Advanced repository permissions Features} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 125 | \texttt {\bf Web Browser Interfaces} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 126 | \texttt {\bf HTTP proxy to connect the server} & \textcolor{red}{No} & \textcolor{green}{\em Yes} \\ \hline
|
|---|
| 127 | \end{tabular}
|
|---|
| 128 | \end{center}
|
|---|
| 129 | \end{table}
|
|---|
| 130 | ** For more infos, look~\cite{svnvscvs}
|
|---|
| 131 | }
|
|---|
| 132 |
|
|---|
| 133 | %------------------------------- SECTION -------------------------%
|
|---|
| 134 | \section[Proposal]{Proposal for Atlas}
|
|---|
| 135 |
|
|---|
| 136 | %------------------------------- SLIDE -------------------------%
|
|---|
| 137 | \frame
|
|---|
| 138 | {
|
|---|
| 139 | \frametitle{Scenario for Atlas}
|
|---|
| 140 |
|
|---|
| 141 | \begin{block}{ Roadmap}
|
|---|
| 142 | \begin{enumerate}
|
|---|
| 143 | \item Convert the Atlas CVS repository into a Subversion one
|
|---|
| 144 | \item Provide tools to provide synchronization operations between \cvs and \svn repositories
|
|---|
| 145 | \begin{itemize}
|
|---|
| 146 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 147 | \item For a certain period, we will have both system running at the same time
|
|---|
| 148 | \item remark: iterative transition is less painful for the developers :)
|
|---|
| 149 | \end{itemize}
|
|---|
| 150 | \item Incorporate \svn in the complex Atlas software management chain, it supposes impact to :
|
|---|
| 151 | \begin{itemize}
|
|---|
| 152 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 153 | \item CMT
|
|---|
| 154 | \item Tag Collector
|
|---|
| 155 | \item Nicos
|
|---|
| 156 | \end{itemize}
|
|---|
| 157 | \item If successful, we could do the permanent switch; if not ... :(
|
|---|
| 158 | \end{enumerate}
|
|---|
| 159 | \end{block}
|
|---|
| 160 | }
|
|---|
| 161 |
|
|---|
| 162 | %------------------------------- SLIDE -------------------------%
|
|---|
| 163 | \frame
|
|---|
| 164 | {
|
|---|
| 165 | \frametitle{CVS repository conversion}
|
|---|
| 166 | \begin{block}{Conversion script}
|
|---|
| 167 | For better understanding, we have developed our own
|
|---|
| 168 | \texttt{cvs2svn} python script {\small (\texttt{\url{/afs/cern.ch/atlas/scripts/cvs2svn.py}})}:
|
|---|
| 169 | \begin{itemize}
|
|---|
| 170 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 171 | \item Keeps the history of all tags up to HEAD
|
|---|
| 172 | \item Skips the intermediate commits between 2 tags
|
|---|
| 173 | \item Can be applied iteratively
|
|---|
| 174 | \end{itemize}
|
|---|
| 175 | \end{block}
|
|---|
| 176 | \begin{block}{Definition of a repository organization}
|
|---|
| 177 | \begin{itemize}
|
|---|
| 178 | \item SVN gives full freedom in terms of internal structure
|
|---|
| 179 | \item Tags, branches are views to the source history
|
|---|
| 180 | \begin{itemize}
|
|---|
| 181 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 182 | \item in CVS, they are meta-data applied to individual files
|
|---|
| 183 | and appear like directory structures
|
|---|
| 184 | \end{itemize}
|
|---|
| 185 | \item Views can be freely modified and have revision number
|
|---|
| 186 | \end{itemize}
|
|---|
| 187 | \end{block}
|
|---|
| 188 | }
|
|---|
| 189 |
|
|---|
| 190 | %------------------------------- SLIDE -------------------------%
|
|---|
| 191 | \frame
|
|---|
| 192 | {
|
|---|
| 193 | \frametitle{Converting CVS Repository to Subversion}
|
|---|
| 194 | \begin{block}{}
|
|---|
| 195 | \begin{itemize}
|
|---|
| 196 | \item We have selected the following organization for each project/package/tag:\\
|
|---|
| 197 | \texttt{\textcolor{blue}{
|
|---|
| 198 | <project>/.../<package>/trunk/...\\
|
|---|
| 199 | <project>/.../<package>/tags/<tag>/...}}
|
|---|
| 200 | \end{itemize}
|
|---|
| 201 | \end{block}
|
|---|
| 202 |
|
|---|
| 203 | \begin{block}{}
|
|---|
| 204 | \begin{itemize}
|
|---|
| 205 | \item The complete Atlas cvs repository has been converted to a svn one. The svn url is :\\
|
|---|
| 206 | {\small \texttt{\url{file:///afs/cern.ch/atlas/software/svnrepository/repository}}}
|
|---|
| 207 | \item It takes a looong time to do that the first time
|
|---|
| 208 | \begin{itemize}
|
|---|
| 209 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 210 | \item Try different \svn backends: Berkley DB, \underline{\svn file system}
|
|---|
| 211 | \item It takes one week to complete the procedure, e.g. 8 hours for the AtlasCore project
|
|---|
| 212 | \item But update will only concern recent tags
|
|---|
| 213 | \end{itemize}
|
|---|
| 214 | \end{itemize}
|
|---|
| 215 | \end{block}
|
|---|
| 216 | }
|
|---|
| 217 |
|
|---|
| 218 | %------------------------------- SLIDE -------------------------%
|
|---|
| 219 | \frame
|
|---|
| 220 | {
|
|---|
| 221 | \frametitle{Conversion validation and management tools}
|
|---|
| 222 |
|
|---|
| 223 | \begin{block}{Conversion validation tools}
|
|---|
| 224 | \begin{itemize}
|
|---|
| 225 | \item We have implemented several tests to check the quality of the
|
|---|
| 226 | conversion:
|
|---|
| 227 | \begin{itemize}
|
|---|
| 228 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 229 | \item Comparing the sources at each tag with diff tests
|
|---|
| 230 | \item Comparing the list of tags for a package
|
|---|
| 231 | \item Check global structure of the \svn repository
|
|---|
| 232 | \item \url{/afs/cern.ch/atlas/scripts/testcvs2svn.py}
|
|---|
| 233 | \end{itemize}
|
|---|
| 234 | \end{itemize}
|
|---|
| 235 | \end{block}
|
|---|
| 236 |
|
|---|
| 237 | \begin{block}{Management tools}
|
|---|
| 238 | \begin{itemize}
|
|---|
| 239 | \item We have also implemented a script which re-organizes the SVN repository:\\
|
|---|
| 240 | \texttt{\textcolor{blue}{<project>/.../<package>/trunk/...\\
|
|---|
| 241 | <project>/.../<package>/<tag>/...}}
|
|---|
| 242 | \end{itemize}
|
|---|
| 243 | \end{block}
|
|---|
| 244 | }
|
|---|
| 245 |
|
|---|
| 246 |
|
|---|
| 247 | % \item A "CVS complient" script is available at cern
|
|---|
| 248 | % \texttt{/afs/cern.ch/atlas/scripts/asvn}
|
|---|
| 249 | % \item \url{http://uimon.cern.ch/twiki/bin/view/Atlas/StudiesForUsingSVNInAtlas}
|
|---|
| 250 |
|
|---|
| 251 | %------------------------------- SLIDE -------------------------%
|
|---|
| 252 | \frame
|
|---|
| 253 | {
|
|---|
| 254 | \frametitle{Performance and scalability}
|
|---|
| 255 | \begin{block}{Test stress scenario}
|
|---|
| 256 | We define the following {\bf action} for an user:
|
|---|
| 257 | \begin{itemize}
|
|---|
| 258 | \item User selects randomly a package
|
|---|
| 259 | \item He extracts and modifies it, then registers it until the operation is successful
|
|---|
| 260 | \item Then he sleeps $n$ seconds with $n$ sort randomly $ \in [1, T_{max}]$
|
|---|
| 261 | \end{itemize}
|
|---|
| 262 | \end{block}
|
|---|
| 263 |
|
|---|
| 264 | \begin{block}{Experiment parameters}
|
|---|
| 265 | \begin{itemize}
|
|---|
| 266 | \item We have done experiments with different:
|
|---|
| 267 | \begin{itemize}
|
|---|
| 268 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 269 | \item Total number of users (10, \textcolor{blue}{100}, 1000)
|
|---|
| 270 | \item Total number of packages (10, \textcolor{blue}{1000}, 10.000)
|
|---|
| 271 | \end{itemize}
|
|---|
| 272 | \item Concurrent user actions were launched by a multi-threaded program
|
|---|
| 273 | ({\small\texttt{\url{/afs/cern.ch/user/v/vgaronne/svnTestStress}}})
|
|---|
| 274 | \end{itemize}
|
|---|
| 275 | \end{block}
|
|---|
| 276 | }
|
|---|
| 277 |
|
|---|
| 278 | %------------------------------- SLIDE -------------------------%
|
|---|
| 279 | \frame{
|
|---|
| 280 | \frametitle{Performance and scalability - Results}
|
|---|
| 281 | \begin{block}{}
|
|---|
| 282 | \begin{itemize}
|
|---|
| 283 | \item Let ${\cal R}atio$ be the ratio $\frac {Total~number~of~users} {{Total~number~of~packages}}$
|
|---|
| 284 | \end{itemize}
|
|---|
| 285 | \end{block}
|
|---|
| 286 |
|
|---|
| 287 | \begin{block}{}
|
|---|
| 288 | We obtained :
|
|---|
| 289 | \small
|
|---|
| 290 | \begin{center}
|
|---|
| 291 | \begin{tabular}{ccc}
|
|---|
| 292 | \hline ${\cal R}atio$ & $T_{max}(s)$ & Average action time (s) \\ \hline
|
|---|
| 293 | 0.01 & 3600.0& 1.34 \\
|
|---|
| 294 | 0.01 & 100.0& 1.06 \\
|
|---|
| 295 | 0.01 & 10.0 & 1.38 \\
|
|---|
| 296 | \textcolor{blue}{0.1} & \textcolor{blue}{ 3600.0} & \textcolor{blue}{5.77} \\
|
|---|
| 297 | \textcolor{blue}{0.1}& \textcolor{blue}{100.0}& \textcolor{blue}{4.26} \\
|
|---|
| 298 | \textcolor{blue}{0.1} & \textcolor{blue}{10.0} & \textcolor{blue}{6.96} \\
|
|---|
| 299 | 1.0 & 3600.0 & 7.42 \\
|
|---|
| 300 | 1.0 & 100.0& 7.06 \\
|
|---|
| 301 | 1.0 & 10.0& 8.88\\
|
|---|
| 302 | \end{tabular}
|
|---|
| 303 | \end{center}
|
|---|
| 304 | {\footnotesize\textcolor{blue}{**In blue, the values relevant for Atlas}}
|
|---|
| 305 | \end{block}
|
|---|
| 306 | }
|
|---|
| 307 |
|
|---|
| 308 | %------------------------------- SLIDE -------------------------%
|
|---|
| 309 | \frame{
|
|---|
| 310 | \frametitle{Synchronization operations}
|
|---|
| 311 | \begin{block} {Mainly at the user level:}
|
|---|
| 312 | \begin{itemize}
|
|---|
| 313 | \item We proposed a script \texttt{"asvn"} that mimics the CVS syntax for SVN, including the synchronization operations on tags:
|
|---|
| 314 | \begin{itemize}
|
|---|
| 315 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 316 | \item Non exhaustive commands are: checkin, checkout , tag, ...
|
|---|
| 317 | \item Provides also cmt specific commands working with SVN, e.g.
|
|---|
| 318 | recursive checkout, svntags, svnsubprojects, ...
|
|---|
| 319 | \item see \url{/afs/cern.ch/atlas/scripts/asvn}
|
|---|
| 320 | \end{itemize}
|
|---|
| 321 | \item \textcolor{red} {We assume that when users switch completely to svn for a package,
|
|---|
| 322 | they will not work anymore with \cvs for this package, otherwise we will have integrity problems}
|
|---|
| 323 | \item The synchronization operation should be triggered at the user/developer level during tag operations\\
|
|---|
| 324 | \texttt{> asvn --sync tag Package-00-00-01 Package}
|
|---|
| 325 | \end{itemize}
|
|---|
| 326 | \end{block}
|
|---|
| 327 | }
|
|---|
| 328 |
|
|---|
| 329 | %------------------------------- SLIDE -------------------------%
|
|---|
| 330 | \frame{
|
|---|
| 331 | \frametitle{Impact to the Atlas software management chain and tools}
|
|---|
| 332 |
|
|---|
| 333 | \begin{block} {Impact to the work model}
|
|---|
| 334 | \begin{itemize}
|
|---|
| 335 | \item No real change is expected
|
|---|
| 336 | \end{itemize}
|
|---|
| 337 | \end{block}
|
|---|
| 338 |
|
|---|
| 339 | \begin{block} {Impact to the tools}
|
|---|
| 340 | \begin{itemize}
|
|---|
| 341 | \item CMT: The \texttt{"asvn"} script previously presented covers these aspects
|
|---|
| 342 | \item Tag Collector: Needs an interface to SVN, but should be much simpler than the interface to CVS. If not possible immediately,
|
|---|
| 343 | we could go on temporally with the synchronized Atlas CVS repository
|
|---|
| 344 | \item NICOS: Normaly only concerned with checkout operations ?
|
|---|
| 345 | \end{itemize}
|
|---|
| 346 | \end{block}
|
|---|
| 347 | }
|
|---|
| 348 |
|
|---|
| 349 |
|
|---|
| 350 | %------------------------------- SLIDE -------------------------%
|
|---|
| 351 | \frame{
|
|---|
| 352 | \frametitle{A brief summary by pictures...}
|
|---|
| 353 | %\begin{center}
|
|---|
| 354 | %\vfill
|
|---|
| 355 | \includegraphics<1>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow00}
|
|---|
| 356 | \includegraphics<2>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow01}
|
|---|
| 357 | \includegraphics<3>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow02}
|
|---|
| 358 | \includegraphics<4>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow03}
|
|---|
| 359 | \includegraphics<5>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow04}
|
|---|
| 360 | \includegraphics<6>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SoftwareFlow05}
|
|---|
| 361 | %+\end{center}
|
|---|
| 362 | }
|
|---|
| 363 |
|
|---|
| 364 | %------------------------------- SECTION -------------------------%
|
|---|
| 365 | \section{Conclusion}
|
|---|
| 366 |
|
|---|
| 367 | %------------------------------- SLIDE -------------------------%
|
|---|
| 368 | \frame{
|
|---|
| 369 | \frametitle{Conclusion}
|
|---|
| 370 |
|
|---|
| 371 | \begin{block} {}
|
|---|
| 372 | \begin{itemize}
|
|---|
| 373 | \item All the necessary tools are in place to start using SVN in Atlas
|
|---|
| 374 | \item Testing by real users, will help to tune and improve these tools
|
|---|
| 375 | \item Doing more tests to validate the atlas svn repository
|
|---|
| 376 | \item We should clarify the migration policy
|
|---|
| 377 | %\begin{itemize}
|
|---|
| 378 | % \item Management of the "CVSROOT/commitavail" file for each package
|
|---|
| 379 | % to guaranty synchronization between CVS and SVN repository
|
|---|
| 380 | %\end{itemize}
|
|---|
| 381 | \item Implementing the interface to SVN in Tag Collector%, depends on TC team availability
|
|---|
| 382 | \end{itemize}
|
|---|
| 383 | \end{block}
|
|---|
| 384 | \begin{block} {Future}
|
|---|
| 385 | \begin{itemize}
|
|---|
| 386 | \item SVN brings lots of new interesting features, that we could use incrementally :
|
|---|
| 387 | \begin{itemize}
|
|---|
| 388 | \setbeamertemplate{itemize items}[circle]
|
|---|
| 389 | \item Metadata features
|
|---|
| 390 | \item Real Multi-repository
|
|---|
| 391 | \item Directory management
|
|---|
| 392 | \item Transparent branch management
|
|---|
| 393 | \end{itemize}
|
|---|
| 394 | \end{itemize}
|
|---|
| 395 | \end{block}
|
|---|
| 396 | }
|
|---|
| 397 | %------------------------------- SECTION -------------------------%
|
|---|
| 398 | \section*{References}
|
|---|
| 399 |
|
|---|
| 400 | %------------------------------- SLIDE -------------------------%
|
|---|
| 401 | \frame[allowframebreaks]
|
|---|
| 402 | {
|
|---|
| 403 | \frametitle{References}
|
|---|
| 404 | \nocite{subversion}
|
|---|
| 405 | \nocite{cvs2svn}
|
|---|
| 406 | \bibliographystyle{unsrt}
|
|---|
| 407 | \bibliography{CMT06-04-2006-sit}
|
|---|
| 408 | }
|
|---|
| 409 |
|
|---|
| 410 | \end{document}
|
|---|
| 411 | %------------------------------- End Of File -------------------------% |
|---|