Commit 352aadb6 authored by Laros's avatar Laros
Browse files

Added svn lecture.

parent 466c6d46
../../submodules/presentation/Makefile
\ No newline at end of file
../../submodules/presentation/beamerthemelumc.sty
\ No newline at end of file
../../submodules/presentation/gen2phen_logo.eps
\ No newline at end of file
../../submodules/presentation/lgtc_logo.eps
\ No newline at end of file
../../submodules/presentation/lumc_logo.eps
\ No newline at end of file
../../submodules/presentation/lumc_logo_small.eps
\ No newline at end of file
../../submodules/presentation/nbic_logo.eps
\ No newline at end of file
../../submodules/presentation/ngi_logo.eps
\ No newline at end of file
../../submodules/presentation/nwo_logo_en.eps
\ No newline at end of file
../../submodules/presentation/nwo_logo_nl.eps
\ No newline at end of file
% LUMC presentation template by J. F. J. Laros.
% Last alteration on 15-10-2009.
%
% The packages texlive-latex-recommended, texlive-latex-base and
% texlive-latex-extra should be installed.
%
% Alter these four lines for a new presentation.
\providecommand{\me}{Jeroen F. J. Laros}
\providecommand{\myTitle}{Version Control}
\providecommand{\myConference}{Bioinformatics Work discussion}
\providecommand{\myDate}{Tuesday, 17 January 2011}
% Now go to %%% BEGIN PRESENTATION %%%
\documentclass[a4, portrait]{seminar}
\usepackage{semcolor} % For coloured text.
\usepackage{slidesec} % For section headings.
\usepackage{newcent} % This is a better font for presentations.
\input{seminar.bug}
\usepackage{graphicx} % For pictures.
\usepackage{fancybox} % For the background picture.
\definecolor{Blue}{rgb}{0.,0.11372,0.37647} % Custom LUMC color
\renewcommand{\labelitemi}{\textcolor{white}{$\bullet$}} % Make the bullets for
\renewcommand{\labelitemii}{\textcolor{white}{--}} % itemising white.
\renewcommand{\labelitemiii}{\textcolor{white}{$\ast$}}
\renewcommand{\labelitemiv}{\textcolor{white}{$\circ$}}
\renewcommand{\labelenumi}{\textcolor{white}{\arabic{enumi}.}}
\newslideframe{TITLE}{ % Template for the title.
\boxput{
\rput(0, 0){\includegraphics[angle=90, scale=.485]{bg}}
}{#1}
}
\newslideframe{PRES}{ % Template for the body.
\boxput{
\rput(0, 0){\includegraphics[angle=90, scale=.485]{bg2}}
}{
\textcolor{Blue}{
\rput[l]{90}(8.57, -1.5){\scriptsize{\myConference}}
\rput[c]{90}(8.57, 5.35){\scriptsize{\theslide/\pageref{LastPage}}}
\rput[r]{90}(8.57, 12.2){\scriptsize{\myDate}}
}
\white #1
}
}
\renewcommand{\makeslideheading}[1]{ % Put the slide headings on top.
\rput[l](0.2, .40){
\textbf{
\textcolor{Blue}{#1}
}
}
\newline
}
\pagestyle{empty}
\begin{document}
\slideframe{TITLE} % Use the title template.
\begin{slide}
\setcounter{slide}{0}
\vspace*{1.5cm}
\begin{center}
{\bf\Large{\myTitle}}\\
\vfill
\textcolor{Blue}{
{\bf
\small{\me}\\
\small{Leiden Genome Technology Center}\\
\small{Department of Human Genetics}\\
\small{Center for Human and Clinical Genetics}
}
}
\vspace{1.1cm}
\end{center}
\end{slide}
\slideframe{PRES} % Use the body template.
%%% BEGIN PRESENTATION %%%
\begin{slide}
\slideheading{Life without version control}
Usually, a project evolves almost organically.
\bigskip
\begin{itemize}
\item Start with one program with some sample input data.
\item When the first prototype works, we make a copy.
\begin{itemize}
\item \texttt{mkdir old; cp * old}
\end{itemize}
\item We continue developing the program and if something breaks, we compare
with old versions.
\begin{itemize}
\item \texttt{diff myprogram.c old/old/old/old/myprogram.c}
\end{itemize}
\end{itemize}
\bigskip
So, what's wrong with that?
\vfill
\end{slide}
\begin{slide}
\slideheading{Life without version control: disadvantages}
A selection of disadvantages.
\bigskip
\begin{itemize}
\item No history (except that \texttt{old/old} is older than \texttt{old}).
\begin{itemize}
\item Modification dates have no history.
\item Modification dates are lost when we copy a project.
\item Files in a project have different modification dates.
\end{itemize}
\item Virtually impossible to maintain when more than one person works on
the project.
\item Hard to share.
\begin{itemize}
\item Separate source from data before sharing.
\item Separate source from test programs.
\end{itemize}
\end{itemize}
\vfill
\end{slide}
\begin{slide}
\slideheading{Basic work cycle}
If you use it just for yourself, it's very easy:
\bigskip
\begin{enumerate}
\item Check out:
\begin{itemize}
\item \texttt{svn checkout https://myServer/svn/myProject}
\end{itemize}
\item Work on your project. \label{nextCycle}
\item Commit your changes:
\begin{itemize}
\item \texttt{svn commit}
\end{itemize}
\item Go to \ref{nextCycle}.
\end{enumerate}
\bigskip
Notice that we only need to give the location of the project once, we only
need one command to synchronise.
\vfill
\end{slide}
\begin{slide}
\slideheading{History}
Some nice advantages are present, even if you work alone.
\bigskip
\begin{itemize}
\item On a commit, we give a brief description of the changes.
\begin{itemize}
\item Get a complete change log of each file or the whole project.
\begin{itemize}
\item \texttt{svn log}
\end{itemize}
\item Compare files in different revisions, or whole releases.
\begin{itemize}
\item \texttt{svn diff}
\end{itemize}
\end{itemize}
\item We can work from two locations.
\begin{itemize}
\item \texttt{svn update}
\end{itemize}
\end{itemize}
\vfill
\end{slide}
\begin{slide}
\slideheading{Maintenance}
If we work with more persons on a project, we can expect problems. Version
control systems are designed to deal with this.
\bigskip
\begin{itemize}
\item Someone has committed a new version while you were working.
\begin{itemize}
\item \texttt{svn update}
\item Non-conflicting changes will be merged with your project.
\item Conflicting changes and resolving options.
\begin{itemize}
\item Keep mine.
\item Use the one from the repository.
\item Resolve by hand.
\end{itemize}
\end{itemize}
\end{itemize}
\vfill
\end{slide}
\begin{slide}
\slideheading{Maintenance}
If these problems are structural, there are solutions to work in parallel:
\bigskip
\begin{itemize}
\item Create branches to work independently.
\begin{itemize}
\item Branches can be merged.
\end{itemize}
\item Since every revision has an owner, all changes can be traced back to
a person (to blame).
\item Tags (also branches) can be created for a release version.
\begin{itemize}
\item Usually you only do bug fixes in these branches.
\end{itemize}
\end{itemize}
\vfill
\end{slide}
\begin{slide}
\slideheading{Sharing}
Since our repository is on a server, sharing itself is trivial.
\bigskip
\begin{itemize}
\item Separation of code and other stuff is inherent to the setup.
\begin{itemize}
\item Files are added manually (\texttt{svn add}). Everything else is not
synchronised.
\item Files (executables, generated files, \ldots) can be ignored
explicitly.
\end{itemize}
\item Each repository has read / write permissions.
\begin{itemize}
\item Username / password to have read access.
\item Username / password to write (public read access).
\end{itemize}
\end{itemize}
\vfill
\end{slide}
\begin{slide}
\slideheading{Integration with other frameworks.}
Since we use a standard method of storing code, we can use lots of other
tools to integrate with.
\bigskip
\begin{itemize}
\item Wikis.
\item Forums.
\item Bug tracking systems.
\item Code reviewing.
\item \ldots
\end{itemize}
\bigskip
\begin{center}
[demo]
\end{center}
\vfill
\end{slide}
\begin{slide}
\rput(5.4,0.7){\includegraphics[scale=0.07]{lgtc_logo}}
\rput(10.6,0.6){\includegraphics[scale=0.1]{nbic_logo}}
\slideheading{Questions?}
\label{LastPage}
\vfill
\end{slide}
\end{document}
../../submodules/presentation/ul_logo.eps
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment