Savana

Preview:

Citation preview

SAVANATransactional Workspaces for SVN

Hutsul Yaroslav

What is SAVANA

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

How to start

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

User branch

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.

Release branch

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.

Synchronization with parent

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

Promote

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 wit promote.txt

Create promote.txt file in project root directory.

Run sav -F promote.txt promote. Result in svn logs:

Base development workflow

Base workflow with SAVANA

Possible issues

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.

Info source

http://savana.codehaus.org