Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
lirec:version_control_guide [2009-02-04 18:18] – davegriffiths | lirec:version_control_guide [2009-02-09 09:58] – davegriffiths | ||
---|---|---|---|
Line 11: | Line 11: | ||
This usage pattern is common to all revision control systems, languages and types of project. You avoid causing other people problems and get the most out of version control if you make it part of your daily programming routine in this way. | This usage pattern is common to all revision control systems, languages and types of project. You avoid causing other people problems and get the most out of version control if you make it part of your daily programming routine in this way. | ||
- | The general idea is that code lives on a remote server, and you keep a local copy of the source on your hard drive. You edit files and compile as normal then ' | + | The general idea is that code lives on a remote server, and you keep a local copy of the source on your hard drive. You edit files and compile as normal then ' |
The smaller the changes, and the more frequently you commit code, the better. This is an example day's work: | The smaller the changes, and the more frequently you commit code, the better. This is an example day's work: | ||
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 55: | Line 55: | ||
Firstly go to a directory where you want to keep your code and run: | Firstly go to a directory where you want to keep your code and run: | ||
- | < | + | < |
- | Replace " | + | 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. Look in lirec/ |
< | < | ||
Line 83: | Line 83: | ||
< | < | ||
- | 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==== |