\documentclass[landscape]{foils}
\usepackage{graphicx}
\usepackage[pdftex]{color}
\usepackage{pause}
\usepackage{background}
\usepackage{thumbpdf}

\MyLogo{Using CVS with Autominder}
%\leftheader{Using CVS in Autominder}
%\rightheader{Using CVS in Autominder\quad\textsf{\tiny[\thepage]}}
%\rightheader{\quad\textsf{\tiny[\thepage]}}
%\rightfooter{\quad\textsf{\thepage}}

% Set the default page color and style.
%\pagecolor{white}
\vpagecolor[lightblue]{green}
\vpagecolor{bgblue}

% \hpagecolor[cyan]{white}

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\begin{document}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

\begin{center}
\textcolor{black}{\Large Using CVS with Autominder}
\vskip 11ex

\textcolor{black}{\large Kevin O'Malley} \\
\textcolor{black}{\small (omalley@umich.edu)}
\end{center}


%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{Overview}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

\begin{itemize}
\item Background to CVS
\begin{itemize}
\item What is Version Control
\item Version Concepts and Terms
\item Version Control Systems
\begin{itemize}
\item SCCS
\item RCS
\item CVS
\end{itemize}
\item RCS vs. CVS
\item Branches
\end{itemize}
 
\item Using CVS for Autominder
\begin{itemize}
\item See release policy document
\end{itemize}
\end{itemize}
 

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{What is Version Control}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
% Set the page color per slides
%\pagecolor{red} 
%\includegraphics{cover.jpg}

\begin{itemize}

\item Version control is a process, supported by software, that helps you
record changes to your project's source files, manage releases, and
control access to shared files
\item Version control is a topic within a discipline of software
engineering called Software Configuration Management (SCM)
\item SCM is a mechanism, instituted through defined processes,
whose goal is to ensure the classification, control, and traceability of a software system
throughout its life cycle
\item Configuration management is rooted in the defense industry of
the early 1960s, and was an early attempt by management to control the
increasing complexity of designs and the design process
\end{itemize}

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{Version Concepts and Terms}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\begin{itemize}
\item See release policy document
\end{itemize}

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{Version Control Systems}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\begin{itemize}
\item Source Code Control System (SCCS)
\begin{itemize}
\item Written by Marc Rochkind at Bell Telephone Laboratories in 1972 
\item One of the first version control systems available for UNIX
\end{itemize}
\end{itemize}

\begin{itemize}
\item Revision Control System (RCS)
\begin{itemize}
\item Written by Walter F. Tichy in the early 1980s at Purdue
  University
\item RSC \textbf{locks} a file on check out and releases lock on
  check in
\item Simplifies version control and sidesteps many problems:
\begin{itemize}
\item Multiple developers editing the same file can lead to
one developer breaking the other's code - will not happen with lock-based system
\item Single checkout forces developers to talk and resolve
any conflicts before changing code
\end{itemize}
\end{itemize}
\end{itemize}

\begin{itemize}
\item Concurrent Versions System (CVS)
\begin{itemize}
\item Built on top of RCS and uses many RCS programs to perform its actions
\item CVS \textbf{merges} changes into each developer's code base (concurrent development) 
\item Conflicts can arise, but they are rare
\item Enables many developers to work in parallel; CVS will fold in each
  developer's changes as requested 
\end{itemize}
\end{itemize}

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{RCS vs. CVS}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\begin{itemize}
\item RCS
\begin{itemize}
\item Good choice for small projects that do not require developers
to simultaneously share and edit files
\item Ideal for one-person development projects
\item Easy to set up, the command set is straightforward to learn, and
  it consumes few system resources
\end{itemize}
\end{itemize}
\begin{itemize}
\item CVS
\begin{itemize}
\item Excellent choice for multi-developer projects where
simultaneous file sharing and editing is a requirement
\item Ideal for projects with geographically distributed developed
  teams, such as open source projects (works over network)
\item Lots of support tools available; active user base 
\end{itemize}
\end{itemize}

%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\foilhead[-.7in]{Branches}
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\begin{itemize}
\item Branches enable you to create different versions of your software
(release version, debugged version, optimized version, etc.)  without
disturbing the main development trunk
\item Each branch has a root (the initial state of the branch) and a
tip (the current state of the branch)
\item If you create a branch, modify files, and commit the changes,
the root and the tip will contain different versions of your files
\end{itemize} 

\includegraphics{branch.jpg}

\end{document}


\textcolor{blue}{This text appears blue}
