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 15:08] – davegriffiths | lirec:version_control_guide [2009-02-04 15:46] – davegriffiths | ||
---|---|---|---|
Line 13: | Line 13: | ||
The smaller the changes, and the more frequently you commit code, the less hassle you will cause for yourself and other people in the long run. This is an example day's work: | The smaller the changes, and the more frequently you commit code, the less hassle you will cause for yourself and other people in the long run. This is an example day's work: | ||
- | * First thing, | + | * First thing, |
- | * Fixed a bug | + | * Build the new code, check it works |
- | * Commit with a message explaining what you fixed | + | * Start working on a new feature |
- | * Start working on a new feature | + | |
- | * While doing that, found and fixed another bug | + | |
- | * Commit the files you changed to fix the bug (not the ones involved with the new feature) | + | |
* Finish working on the new feature | * Finish working on the new feature | ||
- | * Commit with a message explaining what the new feature is | + | |
- | * Update the code again | + | |
* Start working on the next feature | * Start working on the next feature | ||
- | And so on. The messages are important - they only need to be short one liners, but they need to explain why you changed what you did - but there is no need to explain what the changes were (you can tell this from the code, so it would be redundant information). | + | And so on. You only have to be strict about updating when there are other people actively working. The messages are important - they only need to be short one liners, but they need to explain why you changed what you did - but there is no need to explain what the changes were (you can tell this from the code, so it would be redundant information). |
=====SVN Basics===== | =====SVN Basics===== | ||
- | I've set up the lirec svn repository with a dummy project called ' | + | I've set up the lirec svn repository with a dummy project called ' |
Firstly svn likes to know what editor you like to use so it can launch it to ask you to input comments for your code commits. Put this in your .bashrc: | Firstly svn likes to know what editor you like to use so it can launch it to ask you to input comments for your code commits. Put this in your .bashrc: | ||
Line 50: | Line 47: | ||
< | < | ||
- | This will pop up the editor you specified earlier. Add a nice informative message | + | 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. |
====Adding files==== | ====Adding files==== | ||
< | < | ||
- | Will add individual files, or recursively add files in a directory. | + | Will add individual files to the repository, or recursively add files in a directory. |
- | ====Directories, | + | ====Adding directories and moving |
< | < | ||
Line 68: | Line 65: | ||
< | < | ||
+ | |||
+ | This will merge everyone' | ||
+ | |||
+ | ====Diffing==== | ||
+ | |||
+ | It's often really useful to check where your copy of the code is different in comparison to the one on the server. This allows you to see what you've changed since you last committed code, and is really helpful when you need reassuring that you've changed what you think you've changed. | ||
+ | |||
+ | < | ||
+ | |||
+ | This will diff the entire sourcecode, and print out a list of changes it found. You can also specify individual files to diff too. There are utilities which read the output of this command and display it graphically if it's helpful, but you don't generally need them for small changes. | ||