12
SAVANA Transactional Workspaces for SVN Hutsul Yaroslav

Savana

Embed Size (px)

Citation preview

Page 1: Savana

SAVANATransactional Workspaces for SVN

Hutsul Yaroslav

Page 2: Savana

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

Page 3: Savana

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

Page 4: Savana

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.

Page 5: Savana

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.

Page 6: Savana

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

Page 7: Savana

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

Page 8: Savana

Promote wit promote.txt

Create promote.txt file in project root directory.

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

Page 9: Savana

Base development workflow

Page 10: Savana

Base workflow with SAVANA

Page 11: 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.

Page 12: Savana

Info source

http://savana.codehaus.org