Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lirec:version_control_guide [2009-02-04 18:25] – davegriffiths | lirec:version_control_guide [2009-02-09 11:01] (current) – 81.188.78.24 | ||
---|---|---|---|
Line 43: | Line 43: | ||
Firstly install svn using your favorite package manager, or get it from here: [[http:// | Firstly install svn using your favorite package manager, or get it from here: [[http:// | ||
- | I've set up the lirec svn repository with a dummy project called ' | + | This guide is written for the commandline version of svn, and heavily biased towards linux. If you prefer buttons to press, read through this document as the concepts are the same, and then have a look at [[http:// |
Firstly svn likes to know what editor you like to use so it can launch it to add comments for your code commits. Put this environment variable in your .bashrc (set to your editor of your choice, of course): | Firstly svn likes to know what editor you like to use so it can launch it to add comments for your code commits. Put this environment variable in your .bashrc (set to your editor of your choice, of course): | ||
Line 53: | Line 53: | ||
====Getting the code==== | ====Getting the code==== | ||
- | Firstly go to a directory where you want to keep your code and run: | + | Firstly go to the directory where you want to keep your code and run: |
+ | |||
+ | < | ||
+ | Replace " | ||
+ | |||
+ | This will populate a directory called lirec with all the code. This is called your working copy. | ||
- | < | ||
- | Replace " | ||
====Make some changes==== | ====Make some changes==== | ||
- | cd into 'sandbox' and edit the impressive application you'll find there. When you've saved run: | + | I've added an example project in svn for you to play with and break without fear. I've laid this out so that the project contains it's own directories called trunk, tags and branches. The code is contained in the trunk directory, the tags and branches are used later to store other versions of the code for this project. I'd recommend this structure for other projects. Look in lirec/ |
< | < | ||
This will pop up the editor you specified earlier. Add a nice informative message, save the file, and close the editor. If all is well, your change is now sent to the svn server. If, as sometimes happens to me, you realise at this point that you've forgotten something, close the editor without saving - svn will then ask you if you want to abort the commit. | This will pop up the editor you specified earlier. Add a nice informative message, save the file, and close the editor. If all is well, your change is now sent to the svn server. If, as sometimes happens to me, you realise at this point that you've forgotten something, close the editor without saving - svn will then ask you if you want to abort the commit. | ||
+ | |||
+ | If the editor popping up is annoying for you, then you can also specify the message like this on the command line: | ||
+ | < | ||
====Adding files==== | ====Adding files==== | ||
Line 83: | Line 89: | ||
< | < | ||
- | This will merge everyone' | + | This will merge everyone' |
+ | |||
+ | < | ||
+ | $ svn update | ||
+ | C GraphNode.cpp | ||
+ | Updated to revision 150. | ||
+ | $ | ||
+ | </ | ||
+ | |||
+ | If you have a look at this file, it will indicate the line affected | ||
+ | |||
+ | <code> | ||
+ | <<<<<<< | ||
+ | void GraphNode:: | ||
+ | ======= | ||
+ | void GraphNode:: | ||
+ | >>>>>>> | ||
+ | { | ||
+ | for(vector< | ||
+ | i!=m_ChildNodes.end(); | ||
+ | { | ||
+ | if (*i!=NULL) | ||
+ | { | ||
+ | (*i)->Process(bufsize); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | You can then choose which line to use, save and commit the change. | ||
====Diffing==== | ====Diffing==== | ||
Line 95: | Line 130: | ||
======More Information====== | ======More Information====== | ||
- | * Version Control with Subversion: A complete online book: [[http:// | + | * "Version Control with Subversion" |