Skip to content
Snippets Groups Projects
Using SVN.txt 4.62 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    
    
    
    <h2>Why do I want a version control system?</h2>
    <p>Placing files you often work with under version control has several benefits:</p>
    <ul>
    	<li><dl>
    		<dt>Undo changes</dt>
    		<dd>Sometimes when you&#39;re editing that file, you&#39;ll wish you could go back to the version that actually worked. Now you can!</dd>
    	</dl></li>
    	<li><dl>
    	   <dt>Easily carry your work between computers</dt>
    	   <dd>If you ever find yourself wondering which computer you left the latest version of X on, version control can help.</dd>
    	</dl></li>
    	<li><dl>
    		<dt>Track the changes made to a file</dt>
    		<dd>With Subversion you can easily get an accurate picture of what you&#39;ve changed and when.</dd>
        </dl></li>
        <li><dl>
        	<dt>Allow a group of people to collaborate effectively</dt>
        	<dd>Version control becomes near <em>essential</em> for any project where several people share responsibility for the same group of files.</dd>
        </dl></li>
    </ul>
    
    <p><a href="http://subversion.tigris.org">Subversion</a> is a free, widely used version control system which is easy to use with your SUCS account.</p>               
    
    
    
    <h2>Creating a repository</h2>
    <pre class="console">$ ssh sucs.org # Connect to the main SUCS server<br />$ svnadmin create repos<br /></pre>
    <p>This creates a new empty Subversion repository named &quot;repos&quot;</p>
    <p>You may now import an existing directory tree into the repository:</p>
    <pre class="console">$ svn import {path of stuff to import} {path of repository}<br /></pre>
    <h2>Accessing your repository</h2>
    <p>Once you have set up a repository, you may access it remotely using a Subversion client. A simple but powerful command-line client exists, in addition to graphical front-ends for most platforms.</p>
        <h3>Installing a Subversion client</h3>
             <dl>
             <dt>Linux</dt>
             <dd>Subversion is included in all major linux distributions, such as Ubuntu, Fedora Core, SuSE and Mandriva. You may use your distribution&#39;s standard package management tools to install it.</dd>
             <dt>Windows</dt>
             <dd>The command-line client is available for Windows, but you will likely prefer to use a graphical client instead. <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> is a Windows shell extension, providing access to version control commands through your right-click context menu.</dd>
             <dt>Mac OS X</dt>
             <dd>The easiest way to get SVN for Mac OS X is via <a href="http://fink.sourceforge.net/">fink</a></dd>
             </dl>
          <p>You can visit the <a href="http://subversion.tigris.org/project_packages.html">Subversion packages page</a> for more information.</p>
      <h3>Check out a &quot;working copy&quot;</h3>
      <p>In order to view and make changes to files in a Subversion repository, you must first perform a &quot;checkout&quot; operation. This downloads a copy of the files you selected from the repository to your computer, ready to be edited.</p>
     <p>The following command will check out a working copy of everything in our repository:</p>
     <pre class="console">$ svn checkout svn+ssh://{username}@sucs.org/home/member/{username}/repos</pre>
    
    <h2>Basic Subversion usage</h2>
    <p>Below are the commands you are likely to use often, to keep your working copy(s) synchronised with your Subversion repository:</p> 
        <h3>After you make changes to a file</h3>
              <pre class="console">$ svn commit -m &quot;Changes made&quot;</pre>
        <h3>Fetching the latest revision</h3>
              <pre class="console">$ svn update</pre>
        <h3>Placing a new file under version control</h3>
              <pre class="console">$ svn add {file(s)}</pre>
     	<h3>Dealing with conflicts</h3>When you have more than one edit of one line you will have a conflict. When this happens, you have to manualy merge the two changes. You do this in your editor of choice. Once you&#39;ve patched up the file you need to tell Subversion<br /><pre class="console">$ svn resolved {file(s)}<br /></pre>
     
     <p>For more on resolving conflicts see the <a href="http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.resolve">Subversion Book</a><br /></p><h2>Further Reading</h2>
     <p>If you want to know more about using Subversion, you can take a look at the following links:</p>
     <dl>
     <dt><a href="http://www.onlamp.com/pub/a/onlamp/2002/10/31/subversion.html">Single-User Subversion</a></dt>
     <dd>A slightly more comprehensive tutorial on using Subversion in a single-user environment.</dd>
     <dt><a href="http://svnbook.red-bean.com/">Version Control with Subversion</a></dt>
     <dd>A free book about using Subversion, including a large reference section.</dd>
      </dl>