<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: Setting up Your Own SVN Repository}
\vspace{0.1in}
\labdate{Spring 2020}
\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.SVNOwnRepo}
\wikidoc{auth=mikerb@mit.edu}

%====================================================================
\section*{Setting Up Your Own SVN Repository}
%====================================================================

At some point soon you'll need your own repository. This is most obvious
when you begin to collaborate with labmates on projects. But it's also
very useful to have even if it's just for yourself. Having your own
repo lets you:

\vspace{0.1in}
\begin{packed_itemize}[0]
\item back up your code in case your computer is damaged or stolen,
\item revert to previous versions if need be,
\item work on a project over multiple computers,
\item checkout your bench developed code onto a robot.
\end{packed_itemize}
\vspace{0.1in}

\noindent
So far the repositories in our examples have resided on the MIT oceanai 
server. For example, the moos-ivp and moos-ivp-extend trees. While you
have read access to these, you do not have write access and do not have
access for making your own repo. That's the focus here.

%---------------------------------------------------------------------
\subsection*{Online Subversion Hosting Services}

Online Subversion hosting services allow you to: set up a user account, 
upload an initial repository, and begin using their servers to access
and develop your repository with other developers. MIT has some services
in this regard connected to Athena and in CSAIL. But as far as I can tell,
this seem to have grown underutilized and less supported. Perhaps because
there are several online services that do the same thing, often for free.

\pskip

A quick Google search on "subversion hosting services" turns up several options, 
and by adding the word "comparison", you can find several pages that compare
features and costs across providers. Two I found were:

\vspace{0.1in}
\urlxx{http://svnhosting.com}

\vspace{0.05in}
\urlxx{http://www.svnhostingcomparison.com}

\vspace{0.1in}
\noindent
After weighing some options, the \var{CloudForge} service looked good
based on cost (free) and features. So we'll describe next how to set
up your very own repo, using that service as an example. But really
you should weigh the options applying your own criteria.

%---------------------------------------------------------------------
\subsection*{Setting up an account on the CloudForge service}

The CloudForge service can be found here:

\vspace{0.1in}
\urlx{www.cloudforge.com}
\vspace{0.1in}

\noindent
To get started, click on the orange "Pricing, Plans, Signup" button.

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.84\textwidth]{figs_help/cloudforge.png}
  \caption{The initial homepage screen of CloudForge.com.}
\label{fig_help_cloudforge}
\end{figure}

\noindent
Choose one of the two more reasonable starter options (I chose the \$0 option):

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.65\textwidth]{figs_help/cloudforge_options.png}
  \caption{CloudForge service plan options}
\label{fig_help_cloudforge_options}
\end{figure}

\noindent
Fill in your contact information to setup and create your account. After you 
click the Create button, wait a minute or so and you should see something similar to:

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.65\textwidth]{figs_help/cloudforge_setupdone.png}
  \caption{What your CloudForge window looks like after setup is completed. (Screen shot is from ~2018. It may be a bit different in 2020)}
\label{fig_help_cloudforge_options}
\end{figure}
\vspace{0.1in}

\noindent
Answer the few little questions, if you like, hit the Get Started button.

%---------------------------------------------------------------------
\subsection*{Create a project using CloudForge}

Once you have set up your account you should see a set of options for creating
a new project:

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.95\textwidth]{figs_help/cloudforge_newproj.png}
  \caption{Options for creating a new project on CloudForge. (Screen shot is from ~2018. It may be a bit different in 2020)}
\label{fig_help_cloudforge_newproj}
\end{figure}
\vspace{0.1in}

\noindent
There are three things to do here:

\begin{packed_enumerate}[0]
\item Choose a project name in the field Project Name. I interpret this as 
  choosing a repository name. I expect to have several of them under
  my account. If you're a team of say two lab partners who expect to
  work on several labs, you may want to create a separate project for
  each lab if the code is distinct.

\item If you'd like your project to have an image/icon, click on the project 
  image blue folder in the top left and it will let you upload an
  image from your computer.

\item Add repository. Here you will click SVN (you of course can go the git 
  route if you know and like git). Once you do this it will ask you
  whether you want a "Blank Repository" or "Best Practice"
  repository. If you're starting from scratch, choose "Best
  Practice". If you have an existing tree structure already with a
  best practice layout, and you'll just be moving that into the new
  repository, then choose "Blank Repository".

\end{packed_enumerate}

\noindent
Then click the blue "Create Project" button to the right. After a
moment you'll come to a project screen. On the right you'll see a pane
entitled "Quick URLs":

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.45\textwidth]{figs_help/cloudforge_url.png}
  \caption{Where to find the URL of your newly created repository. (Screen shot is from ~2018. It may be a bit different in 2020)}
\label{fig_help_cloudforge_url}
\end{figure}
\vspace{0.1in}

\noindent
Copy the URL on to the command line and check out a local copy of your 
new repository:

\vspace{0.1in}
\begin{consoleverb}
 $ svn co &lt;your-new-url&gt;
\end{consoleverb}
\vspace{0.1in}

\noindent
If you created your CloudForge account with a different username than
the one on your local machine, then pass your username on the command
line like this:

\vspace{0.1in}
\begin{consoleverb}
 $ svn --username me_on_cloudforge  co  &lt;your-new-url&gt;
\end{consoleverb}
\vspace{0.1in}

\noindent
After this you should be free to add to, commit to and otherwise develop
your repository as you see fit with all the svn tools in your toolbox.

\end{document}

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