blob: 9a43f03208584245098e937a45a8964680cc0afa [file] [log] [blame]
% SVN quick reference card, (C) 2002 Ben Collins-Sussman <sussman@red-bean.com>
%
% Based on a CVS quickref card by Jim Blandy <jimb@red-bean.com>
\documentclass{report}
\topmargin -0.8in
\pagestyle{empty}
\textheight=10in
\oddsidemargin=0in
\newcommand{\s}{\tt /}
\begin{document}
\hspace{-0.7in}
\begin{tabular}{ll}
\vspace{0.1in} \hspace{-0.1in}{\bf\LARGE SVN Quick Reference}
& \\ \\
%-------------------------------------------------------------------------
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Getting Help}
& \\
{\tt svn help} &
get list of subcommands \\
{\tt svn help} {\sl subcommand} &
get help on {\sl subcommand} \\
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Working Copies} &
(If {\sl [targets\dots]} are omitted, SVN assumes `{\tt .}') \\
{\tt svn checkout} {\sl [flags]} {\sl URL}\dots &
create a new working directory \\
\hspace{0.5in}{\tt -r} {\sl N} &
check out revision {\sl N} of {\sl URL} \\
\hspace{0.5in}{\tt -d} {\sl dest} &
place working copy in new directory {\sl dest} \\
\\
{\tt svn update} {\sl [flags]} {\sl [targets\dots]} &
merge repository changes into working {\sl targets} \\
\hspace{0.5in}{\tt -r} {\sl N} &
update to revision {\sl N} \\
\\
{\tt svn commit} {\sl [flags]} {\sl [targets\dots]} &
check local changes into the repository \\
\hspace{0.5in}{\tt -m} {\sl message} &
Use {\sl message} as change's log entry \\
\hspace{0.5in}{\tt -F} {\sl logfile} &
Use contents of {\sl logfile} as change's log entry \\
\\
{\tt svn add} {\sl [flags]} {\sl targets\dots} &
schedule {\sl targets} for addition \\
\hspace{0.5in}{\tt --recursive} &
add a target directory recursively \\
\\
{\tt svn rm} {\sl [flags]} {\sl paths} \verb!|! {\sl URLs\dots} &
schedule working-copy {\sl paths} for removal,
or immediately delete {\sl URLs} \\
\\
{\tt svn import} {\sl URL} {\sl path} {\sl new-entry} &
recursively commit {\sl path} to {\sl new-entry} within {\sl URL} \\
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Working Copy Maintenance} \\
{\tt svn status} {\sl [flags]} {\sl [targets\dots]} &
recursively show local changes in {\sl targets} \\
\hspace{0.5in}{\tt -v} &
show verbose information \\
\hspace{0.5in}{\tt -u} &
show out-of-dateness information from repository \\
\\
{\tt svn info} {\sl [targets\dots]} &
show tracked information on {\sl targets} \\
\\
{\tt svn revert} {\sl [targets\dots]} &
revert {\sl targets} to ``pristine'' state \\
\\
{\tt svn resolve} {\sl [targets\dots]} &
removes conflict files associated with conflicted {\sl targets} \\
\\
{\tt svn cleanup} {\sl [targets\dots]} &
unlock and resume unfinished operations on {\sl targets} \\
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Metadata} \\
{\tt svn proplist} {\sl [flags]} {\sl targets\dots} &
view property names attached to {\sl targets} \\
\hspace{0.5in}{\tt -v} &
show property values as well \\
\\
{\tt svn propget} {\sl propname} {\sl targets\dots} &
print value of {\sl propname} attached to {\sl targets} \\
\\
{\tt svn propset} {\sl propname} {\sl propval} {\sl targets\dots} &
set {\sl propname} to {\sl propval} on {\sl targets} \\
\hspace{0.5in}{\tt -F} {\sl file} &
take property value from {\sl file} \\
\\
{\tt svn propdel} {\sl propname} {\sl targets\dots} &
remove {\sl propname} from {\sl targets} \\
\\
{\tt svn propedit} {\sl propname} {\sl targets\dots} &
edit value of {\sl propname} attached to {\sl targets} \\
%-------------------------------------------------------------------------
% someday we shouldn't manually make a pagebreak with new table;
% instead, we should use one of latex's new ``longtable'' objects,
% which actually knows how to create new pages automatically.
\end{tabular}
\newpage
\hspace{-0.7in}
\begin{tabular}{ll}
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Examining History} & \\
{\tt svn diff} {\sl [flags]} {\sl [target\dots]} &
show local changes made in {\sl target} \\
\hspace{0.5in}{\tt -r} {\sl N} &
compare with revision {\sl N} of {\sl target} \\
\hspace{0.5in}{\tt -r} {\sl N:M} &
compare revisions {\sl N} and {\sl M} of {\sl target} \\
\\
{\tt svn diff} {\sl URL1@N} {\sl URL2@M} &
compare two server paths at revisions {\sl N} and {\sl M} \\
\\
{\tt svn log} {\sl [flags]} {\sl targets} &
show log entries for {\sl targets} \\
\hspace{0.5in}{\tt -r} {\sl N[:M]} &
show log entry for revision {\sl N} or range {\sl N:M} \\
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large Branches and Tags} & \\
{\tt svn cp} {\sl SRC} {\sl DST} &
copy a working-copy path (or URL) to another working-copy path (or URL) \\
\hspace{0.5in}{\tt WC => WC} &
copy and schedule for addition (with history) \\
\hspace{0.5in}{\tt WC => URL} &
immediately commit a copy of WC to URL \\
\hspace{0.5in}{\tt URL => WC} &
check out URL into WC, schedule for addition \\
\hspace{0.5in}{\tt URL => URL} &
complete server-side copy; used to branch and tag \\
\\
{\tt svn mv} {\sl SRC} {\sl DST} &
move a path within a working-copy or repository. \\
\hspace{0.5in}{\tt WC => WC} &
move and schedule for addition (with history) \\
\hspace{0.5in}{\tt URL => URL} &
complete server-side rename. \\
\\
{\tt svn switch} {\sl target} {\sl URL} &
transform working copy {\sl target} into {\sl URL}; used to 'move' to
a tag or branch location \\
\\
{\tt svn merge} {\sl path1@N} {\sl path2@M} {\sl wcpath} &
compare wcpaths (or URLs) {\sl path1} and {\sl path2}, and merge differences
into {\sl wcpath} \\
\\
{\tt svn mkdir} {\sl target} &
immediately create working-copy or URL directory {\sl target} \\
\\
%-------------------------------------------------------------------------
\\
\\
\vspace{0.1in} \hspace{-0.1in}{\bf\Large File Status Flags} &
(as printed by {\tt svn update/switch/merge}) \\
{\tt U} {\sl filename} &
item (U)pdated to repository version \\
{\tt G} {\sl filename} &
item's local changes were mer(G)ed with repository changes \\
{\tt C} {\sl filename} &
item's local changes (C)onflicted with repository changes \\
{\tt D} {\sl filename} &
item (D)eleted from working copy \\
{\tt A} {\sl filename} &
item (A)dded to working copy \\
\end{tabular}
\end{document}