Index: atlas/presentations/CMT06-04-2006-sit.tex
===================================================================
--- atlas/presentations/CMT06-04-2006-sit.tex	(revision 170)
+++ atlas/presentations/CMT06-04-2006-sit.tex	(revision 174)
@@ -60,6 +60,12 @@
 
 %------------------------------- SECTION -------------------------%
-
 \section[\cmt]{\cmt news, feedbacks and futur improvements}
+%---- Slide 1 -----%
+\frame{
+\setbeamertemplate{blocks}[default]
+\vfill \hfill
+\begin{block}{\begin{center} \large CMT news \end{center}}
+\end{block}
+}
 
 %\subsection{The new v1r18p20060301 release}
@@ -127,5 +133,9 @@
      \end{itemize}
 \end{block}
-          
+}
+
+\frame 
+{
+ \frametitle{\cmt Future}          
   \begin{block}{Future improvements planned for the next \cmt release :}          
           \begin{itemize} 
@@ -134,9 +144,250 @@
                            we should introduce a link between the macro and tag concepts
                 \item Improve the log message mechanism for message classification 
-                         within \cmt, e.g. Python's logging module~\cite{module_logging},
-                         apache logging module~\cite{log4cxx}
+                         within \cmt, e.g. "à la" Python's logging module~\cite{module_logging},
+                         Apache's logging module~\cite{log4cxx}
           \end{itemize}
 \end{block}
 }
+
+%------------------------------- SECTION -------------------------%
+\section{SVN}
+%---- Slide 1 -----%
+\frame{
+\setbeamertemplate{blocks}[default]
+\vfill \hfill
+\begin{block}{\begin{center} \large Exploring SVN for Atlas\end{center}}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame
+{
+\frametitle{Scenario for Atlas}
+
+\begin{block}{ Roadmap}
+\begin{enumerate}
+      \item Convert the Atlas CVS repository into a Subversion one
+      \begin{itemize}
+               \setbeamertemplate{itemize items}[circle]      
+                \item  A tool exists,  \texttt{"cvs2svn"} (\url{http://cvs2svn.tigris.org})
+       \end{itemize}
+      \item Provide tools to provide synchronization operations between \cvs and \svn repositories 
+       \begin{itemize}
+                 \setbeamertemplate{itemize items}[circle]      
+                  \item  For a certain period,  we will have both system running at the same time
+                   \item remark: iterative transition is less painful for the developers :) 
+       \end{itemize}
+       \item Incorporate \svn in the complex Atlas software management chain, it supposes impact to :
+       \begin{itemize}
+                  \setbeamertemplate{itemize items}[circle]      
+                   \item CMT
+                   \item Tag Collector
+                   \item Nicos 
+       \end{itemize}
+       \item If successful, we could do the permanent switch; if not ... :(
+\end{enumerate}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame
+{
+\frametitle{Converting CVS Repository to Subversion}
+ \begin{block}{}
+ \begin{itemize}
+\item We have selected the following organization for each project/package/tag:\\
+\texttt{\textcolor{blue}{
+<project>/.../<package>/trunk/...\\
+<project>/.../<package>/tags/<tag>/...}}
+\end{itemize}
+\end{block}
+
+ \begin{block}{}
+ \begin{itemize}
+ \item The complete Atlas cvs repository has been converted to a svn one. The svn url is :\\
+       {\small   \texttt{\url{file:///afs/cern.ch/atlas/software/svnrepository/repository}}}
+\item It takes a looong time to do that the first time
+ \begin{itemize}
+         \setbeamertemplate{itemize items}[circle] 
+          \item Try different \svn backends: Berkley DB,  \underline{\svn file system} 
+          \item It takes me ~one week  to complete the procedure, e.g. 8 hours for the AtlasCore project
+          \item but update will only concern recent tags
+\end{itemize}
+\end{itemize}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame
+{
+\frametitle{Conversion validation and management tools}
+
+\begin{block}{Conversion validation tools}
+\begin{itemize}
+\item We have implemented several tests to check the quality of the 
+conversion: 
+\begin{itemize}
+         \setbeamertemplate{itemize items}[circle] 
+         \item  Comparing the sources at each tag with diff tests
+          \item Comparing the list of tags for a package
+         \item Check global structure of the \svn repository
+         \item \url{/afs/cern.ch/atlas/scripts/testcvs2svn.py}
+\end{itemize}
+\end{itemize}
+\end{block}
+
+\begin{block}{Management tools}
+\begin{itemize}
+\item We have also implemented a script which re-organizes the SVN repository:\\
+\texttt{ \textcolor{blue}{
+<project>/.../<package>/trunk/...\\
+<project>/.../<package>/<tag>/...}}
+\end{itemize}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame
+{
+\frametitle{Performance and scalability}
+ \begin{block}{Test stress scenario}
+We define the following {\bf action} for an user: 
+\begin{itemize}
+           \item User selects randomly a package
+           \item  He extracts and modifies it, then registers it until the operation is successful
+           \item Then he sleeps $n$ seconds with $n$ sort randomly $ \in [1, T_{max}]$
+\end{itemize}
+\end{block}
+
+\begin{block}{Experiment parameters}
+\begin{itemize}
+\item We have done experiments with different:
+\begin{itemize}
+            \setbeamertemplate{itemize items}[circle] 
+             \item Total number of users (10, \textcolor{blue}{100}, 1000)
+             \item Total number of packages (10, \textcolor{blue}{1000}, 10.000)
+\end{itemize}
+\item Concurrent user actions were launched by a multi-threaded program 
+({\small\texttt{\url{/afs/cern.ch/user/v/vgaronne/svnTestStress}}})
+\end{itemize}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame{
+\frametitle{Performance and scalability - Results}
+\begin{block}{}
+\begin{itemize}
+\item Let ${\cal R}atio$ be the ratio  $\frac {Total~number~of~users} {{Total~number~of~packages}}$
+\end{itemize}
+\end{block}
+
+\begin{block}{}
+We obtained :
+\small
+\begin{center}
+\begin{tabular}{ccc} 
+\hline  ${\cal R}atio$ & $T_{max}$ & Average action time (s)  \\ \hline 
+0.01 & 3600.0& 1.34   \\ 
+0.01 & 100.0& 1.06     \\ 
+0.01 & 10.0     & 1.38   \\ 
+\textcolor{blue}{0.1} & \textcolor{blue}{ 3600.0}  & \textcolor{blue}{5.77}     \\
+\textcolor{blue}{0.1}&  \textcolor{blue}{100.0}& \textcolor{blue}{4.26}         \\ 
+\textcolor{blue}{0.1} & \textcolor{blue}{10.0} &  \textcolor{blue}{6.96}          \\ 
+1.0 & 3600.0  & 7.42   \\ 
+1.0 & 100.0& 7.06         \\ 
+1.0 & 10.0& 8.88\\
+\end{tabular}
+\end{center}
+{\footnotesize\textcolor{blue}{**In blue, the values relevant for Atlas}}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame{ 
+\frametitle{A brief summary by pictures}
+%\begin{center}
+      %\vfill
+      \includegraphics<1>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration00}
+      \includegraphics<2>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration01}
+      \includegraphics<3>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration02}
+      \includegraphics<4>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration03}
+      \includegraphics<5>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration04}
+      \includegraphics<6>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration05}
+%+\end{center}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame{
+\frametitle{Synchronization operations}
+\begin{block} {Mainly at the user level:}
+\begin{itemize}
+             \item We proposed a script \texttt{"asvn"} that mimics the CVS syntax for SVN, including the synchronization operations on tags:
+             \begin{itemize}
+                        \setbeamertemplate{itemize items}[circle] 
+                        \item Non exhaustive commands are: checkin,  checkout , tag, ...
+                        \item Provides also cmt specific commands working with SVN, e.g. 
+                        recursive checkout,  svntags, svnsubprojects, ...
+                        \item see \url{/afs/cern.ch/atlas/scripts/asvn}                         
+             \end{itemize}             
+             \item \textcolor{red} {We assume that when users switch completely to svn for a package, 
+             they will not work anymore with \cvs for this package, otherwise we will have integrity problems}             
+             \item The synchronization operation should be triggered at the user/developer level during tag operations\\
+                \texttt{> asvn --sync tag Package-00-00-01 Package}
+\end{itemize}
+\end{block}
+}
+
+%------------------------------- SLIDE -------------------------%
+\frame{
+\frametitle{Impact to the Atlas software management chain and tools}
+
+\begin{block} {Impact to the work model}
+\begin{itemize}
+\item  No real change is expected
+\end{itemize}
+\end{block}
+
+\begin{block} {Impact to the tools}
+\begin{itemize}
+                                \item CMT: The \texttt{"asvn"} script previously presented covers these aspects
+                                 \item Tag Collector: Needs an interface to SVN, but should be much simpler than the interface to CVS. If not  possible immediately, 
+                                     we could go on  temporally with the synchronized Atlas CVS repository
+                               \item  NICOS: Normaly only concerned with checkout operations ?
+\end{itemize}
+\end{block}
+}
+
+%------------------------------- SECTION -------------------------%
+\section{Conclusion}
+
+%------------------------------- SLIDE -------------------------%
+\frame{
+\frametitle{Conclusion}
+
+\begin{block} {}
+\begin{itemize}
+\item All the necessary tools are in place to start using SVN in Atlas
+\begin{itemize}
+         \item Doing more tests to validate the atlas svn repository
+\end{itemize}
+\item Testing by real users, will help to tune, customize and improve these tools
+\begin{itemize}
+        \item We need friendly users !
+\end{itemize}
+\item After, we could define milestones for the all conversion
+\item We should clarify the migration policy
+\begin{itemize}
+        \item Management of the "CVSROOT/commitavail" file for each package
+        to guaranty synchronization between CVS and SVN repository
+\end{itemize}
+
+\item  Implementing the interface to SVN in Tag Collector, depends 
+          on TC team availability
+\end{itemize}
+\end{block} 
+
+}
+
 
 %------------------------------- SECTION -------------------------%
