<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\documentclass[onecolumn,letterpaper,11pt]{article}

%===================================================================
\input{common_latex/common_latex_packages}
\input{common_latex/common_latex_definitions}
\input{common_latex/common_latex_help_format}
%===================================================================

\begin{document}

\begin{labcover}
\labtitle{Help Topic: The SVN Move Command}
\vspace{0.1in}
\labdate{Spring 2021}
\vspace{0.1in}
\labauth{Michael Benjamin, mikerb@mit.edu}
\labauth{Department of Mechanical Engineering}
\labauth{MIT, Cambridge MA 02139}
\labline
\end{labcover}

\wikidoc{file=Help.SVNMove}
\wikidoc{auth=mikerb@mit.edu}

%====================================================================
\section*{The SVN \cmd{move} Command}
%====================================================================

The \cmd{svn mv} command allows you to change the name of a file or
directory in a locally checked out repository while retaining the
history of the file or directory.  More info on \cmd{svn mv} can
always be found by Googling "Subversion book" and reading the full PDF
online free, or just typing \cmd{svn help mv} anytime on the command
line.

%---------------------------------------------------------------------
\subsection*{Basic usage of the svn \cmd{mv} command}

The basic syntax for the svn \cmd{status} command is:

\vspace{0.05in}
\begin{consoleverb}
 $ svn mv alpha.cpp beta.cpp
 A      beta.cpp
 D      alpha.cpp
\end{consoleverb}
\vspace{0.15in}

\noindent
The \cmd{svn mv} command does {\em not} require a network connection
to the server and only declares an intention to make a set of changes
to the master copy on the svn server upon the next commit.

\pskip
\noindent
In looking at the above output, it may seem that invoking \cmd{svn mv}
is the same as:

\vspace{0.05in}
\begin{consoleverb}
 $ cp alpha.cpp bravo.cpp
 $ svn add bravo.cpp
 $ svn rm alpha.cpp
\end{consoleverb}
\vspace{0.15in}

\noindent
When done this way, the history of changes to \var{alpha.cpp} will be
lost.  If you were to invoke \cmd{svn log bravo.cpp}, you would only
see one entry, and perhaps lose valuable log information about who and
what changed in \var{alpha.cpp} over time. By using \cmd{svn mv} this
log history is retained and carried over to \var{bravo.cpp}.

\end{document}

</pre></body></html>