diff options
Diffstat (limited to 'Version_Control/vcs3/vcslide2.tex')
-rw-r--r-- | Version_Control/vcs3/vcslide2.tex | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/Version_Control/vcs3/vcslide2.tex b/Version_Control/vcs3/vcslide2.tex deleted file mode 100644 index 82e6b21..0000000 --- a/Version_Control/vcs3/vcslide2.tex +++ /dev/null @@ -1,322 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Version Control Systems -% -% Author: FOSSEE -% Copyright (c) 2009, FOSSEE, IIT Bombay -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\documentclass[12pt,compress]{beamer} - -\mode<presentation> -{ - \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 Learn how to view and revert changes made to files in a repository. - \item Learn how to share repositories and deal with simultaneous conflicting changes. - \end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Pre-requisite} -\label{sec-3} - - -Spoken tutorial on - -\begin{itemize} -\item -\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} - -\section{Collaborating with Mercurial} -\begin{frame}[fragile] - \frametitle{Cloning Repositories} - \begin{itemize} - \item \typ{hg clone SOURCE [DEST]} - \item All \typ{hg} repositories are self-contained - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Sharing Repositories} - \begin{itemize} - \item \typ{hg serve} - \item Can be cloned with \typ{hg clone http://my-ip-address:8000} - \item We share a central repository; work on our local copies. - \item Set write permissions in \typ{.hg/hgrc} - \end{itemize} - \begin{lstlisting} - [web] - push_ssl=False - allow_push=* - \end{lstlisting} -\end{frame} - -\begin{frame} - \frametitle{Sharing Changes} - \begin{itemize} - \item Use \typ{hg push} to push your \typ{commits} - (\typ{changesets}) to the central repository - \end{itemize} -\end{frame} - - -\begin{frame} - \frametitle{Pulling Changes} - \begin{itemize} - \item \typ{hg incoming} shows new \typ{changesets} in the server - \item To get these \typ{changesets}, we use \typ{hg pull} - \item These changes do not affect our working directory - \item \typ{hg parent} shows the parents of the working directory - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Pulling Changes \ldots} - \begin{itemize} - \item \typ{hg update} will update the working directory - \begin{itemize} - \item Updates to the \typ{tip} if no revision is specified - \item \typ{tip} is the most recently added changeset - \item Can specify revision number to update to - \end{itemize} - \item \typ{hg tip} shows the \typ{tip} of the repository - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Simultaneous Changes} - \begin{itemize} - \item The logs of both repositories will be different - \item The repositories have diverged - \item \typ{hg push} fails, in such a scenario - \item \alert{Never, Never, Never, Ever} use \typ{hg push -f} - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Merging} - \begin{itemize} - \item Pull and merge, when \typ{abort: push creates new remote - heads!} - \item \typ{hg merge} will merge the two diverged heads - \item \typ{commit} after you have \typ{merged}! - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Simultaneous Changes \ldots} - \begin{itemize} - \item \typ{outgoing} shows the \typ{changesets} that will be pushed - \item \typ{hg push} works! - \item Look at the `Change graph'! - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Simultaneous Conflicting Changes} - \begin{itemize} - \item What if the changes conflict? -- overlapping edits - \item \typ{hg push} fails; \typ{hg pull}; \typ{hg merge} - \item You now get a diff view with 3 panes - \begin{itemize} - \item First --- current file - \item Second --- \typ{changesets} that you pulled - \item Third --- file before you made your changes - \end{itemize} - \item Resolve conflict and save - \item \typ{hg commit}; \typ{hg push} - \item Look at the `Change graph'! - \end{itemize} -\end{frame} - -\section{Conclusion} - -\begin{frame} - \frametitle{\alert{Advice}: Work-flow} - General work-flow - \begin{itemize} - \item \typ{pull}; \typ{update} - \item Make changes - \item \typ{commit} - \item If changes on repo, \typ{pull} and \typ{merge} - \item \typ{push} - \end{itemize} - \emphbar{Commit Early, Commit Often} -\end{frame} - -\begin{frame} -\frametitle{Summary} -\label{sec-18} - -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 -\item Clone repositories, using hg clone, -\item Serve our repositories via http using hg serve, -\item push changes to a repository using hg push, -\item check the changesets in a repository after last pull, using hg incoming, -\item pull changes from a repository using hg pull , -\item update the working directory, using hg update, -\item merge two heads, using hg merge, -\item and resolve conflicts using hg resolve. -\end{itemize} -\end{frame} -\begin{frame}[fragile] -\frametitle{Evaluation} -\label{sec-19} - - -\begin{enumerate} -\item -\item -\item -\end{enumerate} -\end{frame} -\begin{frame} -\frametitle{Solutions} -\label{sec-20} - - -\begin{enumerate} -\item -\vspace{15pt} -\item -\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} - |