%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Version Control Systems % % Author: FOSSEE % Copyright (c) 2009, FOSSEE, IIT Bombay %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[12pt,compress]{beamer} \mode { \usetheme{Warsaw} \useoutertheme{infolines} \setbeamercovered{transparent} } \usepackage[english]{babel} \usepackage[latin1]{inputenc} %\usepackage{times} \usepackage[T1]{fontenc} % Taken from Fernando's slides. \usepackage{ae,aecompl} \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} \definecolor{darkgreen}{rgb}{0,0.5,0} \usepackage{listings} \lstset{language=bash, basicstyle=\ttfamily\bfseries, commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, showstringspaces=false, keywordstyle=\color{blue}\bfseries} \newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}} \newcommand{\typ}[1]{\lstinline{#1}} \newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} } \setbeamercolor{emphbar}{bg=blue!20, fg=black} \newcommand{\emphbar}[1] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DOCUMENT STARTS \begin{document} \begin{frame} \begin{center} \vspace{12pt} \textcolor{blue}{\huge Version Control with hg} \end{center} \vspace{18pt} \begin{center} \vspace{10pt} \includegraphics[scale=0.95]{../images/fossee-logo.png}\\ \vspace{5pt} \scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ \scriptsize Funded by National Mission on Education through ICT\\ \scriptsize MHRD,Govt. of India\\ \includegraphics[scale=0.30]{../images/iitb-logo.jpg}\\ \end{center} \end{frame} \begin{frame} \frametitle{Objectives} \label{sec-2} At the end of this session, you will be able to: \begin{itemize} \item Undo changes to your repository, \item View the differences between any two states of a repository, \item Understand how revisions are numbered and use it as arguments to commands, \end{itemize} \end{frame} \begin{frame} \frametitle{Pre-requisite} \textbf{Version Control Using Hg} \begin{itemize} \item Part 1 \item Part 2 \end{itemize} \end{frame} \begin{frame} \frametitle{Operational overhead?} \begin{itemize} \item But why do we \typ{commit}? \item Isn't all this just adding to operational costs? \item Isn't all this a waste of time? \end{itemize} \begin{center} \emphbar{No! You shall see the benefits, soon!} \end{center} \end{frame} \begin{frame} \frametitle{Revert Changes} \begin{itemize} \item Undo all changes; the editor can only do so much. \item \typ{hg revert --all} \item \typ{hg revert filename} \item Present file, with changes --- \typ{filename.orig} \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Viewing Changes} \begin{itemize} \item \typ{hg diff} --- all changes since last commit \end{itemize} \begin{block}{} \begin{lstlisting} - this line was deleted + this line was added \end{lstlisting} \end{block} \end{frame} \begin{frame}[fragile] \frametitle{Revision numbering} \begin{itemize} \item \typ{changeset: n:cbf6e2a375b4} \item \typ{n} is the revision number \item The revision number is local to a repository \item \typ{cbf6e2a375b4} is the unique identifier \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Using revision numbers} \begin{itemize} \item \typ{-r n} can be passed as arguments to commands to specify the revision number \item For instance, \typ{hg diff -r1 -r2} \item \typ{m:n} specifies a range of revision numbers \item For instance, \typ{hg log -r0:2} \end{itemize} \end{frame} \begin{frame} \frametitle{Summary} In this tutorial, we have learnt to, \begin{itemize} \item Undo changes to the repository using hg revert, \item View changes done to the repository using hg diff \item Use revision numbers as arguments to different hg commands \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Evaluation} \begin{enumerate} \item How to accomplish not saving backup files using hg revert command? \item Get the history of revisions 2 to 4 without having to list each revision? \item Print the description and content of a change. Hint: Use --patch option \end{enumerate} \end{frame} \begin{frame} \frametitle{Solutions} \begin{enumerate} \item hg revert -C --no-backup \item hg log -r 2:4 \item hg log -v -p -r 2 \end{enumerate} \end{frame} \begin{frame} \begin{block}{} \begin{center} \textcolor{blue}{\Large THANK YOU!} \end{center} \end{block} \begin{block}{} \begin{center} For more Information, visit our website\\ \url{http://fossee.in/} \end{center} \end{block} \end{frame} \end{document}