Subversion
From GarrettHoneycutt
Contents |
Workflow
Assumes you have a checked out copy of the code.
- create a branch
- make modifications in your branch
- diff your branch against trunk
- if it looks good, merge it in
Checkout
Checkout a copy of the repository
$ svn co http://svn/puppet
Ensuring the repo is without changes
Ensure the repo is without changes. If this command shows any output, take care of that first. Once you can run it without any changes, move on.
[~/puppet]$ svn st
Once that status shows no changes, see if there are any updates
[~/puppet]$ svn up
Creating a branch
Ensure the repo is without changes.
Create the branch
[~/puppet]$ svn copy trunk branches/<branch-name>
Check in the new branch before making any edits
[~/puppet]$ svn st [~/puppet]$ svn commit [~/puppet]$ svn st [~/puppet]$ svn update
Merging into trunk
Ensure the repo is without changes.
Do a dry run first and make sure it will work as expected
[~/puppet/trunk]$ svn merge --dry-run --reintegrate http://svn/puppet/branches/<branch-name>
If it looks good, actually do the merge
[~/puppet/trunk]$ svn merge --reintegrate http://svn/puppet/branches/<branch-name>
Check it in
[~/puppet]$ svn st [~/puppet]$ svn commit [~/puppet]$ svn st [~/puppet]$ svn update
Error 409 Conflict on commit
Check if there are any pre-commit hooks. Syntax checking in pre-commits are common and if you fail, you will get this error.
