2. Simple tools for SVN created by Bazaarvoice Inc.
Help manage and work with user branches, release
candidates
Transactional Workspaces - branches that are aware of the
branch (or trunk) from which they were created
Contains metadata info about repository in .savana file
GNU Lesser General Public License
What is SAVANA
3. Install Savana
Checkout your project
Run ―sav bootstrap <PROJECT_NAME> TRUNK‖ command
(in case common repository structure)
Result – created .savana file with metadata about your
project.
Commit .savana into the repository
How to start
4. Create user branch with command ―cub‖
Performed steps:
- new branch was created in ―branches/user‖ folder in
repository
- current local directory was switched to new branch
- info about branch and its parent added to .savanna
file
If locally modified items are in the working copy then
creating a user branch will fail. ―—force‖ parameter can be
used to create the branch anyway.
User branch
5. Create release branch from trunk with command ―crb‖
Performed steps:
- new branch was created in ―branches‖ folder in
repository
- current local directory was switched to new branch
- info about branch and its parent added to .savanna
file
Promotes can not be performed from release branches.
Command ―sav sync‖ cannot be used for release branches.
Release branch
6. Run ―sav sync‖ to pull down changes from a source
branch to a user branch.
Performed steps:
- pulled down changes in the source branch that
have been made since the user branch was created or
last synchronized
- merged changes into the working copy
- updated the Savana metadata that tracks
merge history
This command will not commit merged changes
Synchronization with parent
7. Run ―sav promote‖
Performed steps:
- switched to parent
- merged changes from branch into parent
- committed changes
- deleted branch after successful promote
There should be no modified files in local branch before run
―promote‖ command
Promote
8. Create promote.txt file in project root directory.
Run sav -F promote.txt promote. Result in svn logs:
Promote wit promote.txt
11. Rename of class can produce conflicts during
processing of ―sav sync‖ command
Promote will remove branch, so if you need
merge changes not just into parent – need to
do merge with other branches/trunk first.
Possible issues