GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SVK::COMMAND::BRANCH (3)

.ds Aq ’

NAME

SVK::Command::Branch - Manage a project with its branches

CONTENTS

SYNOPSIS



 branch --create BRANCH [DEPOTPATH]

 branch --list [--all]
 branch --create BRANCH [--tag] [--local] [--switch-to] [--from|--from-tag BRANCH|TAG] [DEPOTPATH]
 branch --move BRANCH1 BRANCH2
 branch --merge BRANCH1 BRANCH2 ... TARGET
 branch --checkout BRANCH [PATH] [DEPOTPATH]
 branch --delete BRANCH1 BRANCH2 ...
 branch --setup DEPOTPATH
 branch --push [BRANCH]
 branch --pull [BRANCH]
 branch --offline [BRANCH]
 branch --online [BRANCH]



OPTIONS



 -l [--list]        : list branches for this project
 --list-projects    : list avaliable projects
 --create           : create a new branch
 --tag              : create in the tags directory
 --local            : targets in local branch
 --delete [--rm|del]: delete BRANCH(s)
 --checkout [--co]  : checkout BRANCH in current directory
 --switch-to        : switch the current checkout to another branch
                          (can be paired with --create)
 --merge            : automatically merge all changes from BRANCH1, BRANCH2,
                          etc, to TARGET
 --project          : specify the target project name
 --push             : move changes to wherever this branch was copied from
 --pull             : sync changes from wherever this branch was copied from
 --setup            : setup a project for a specified DEPOTPATH
 --from BRANCH      : specify the source branch name
 --from-tag TAG     : specify the source tag name
 -C [--check-only]  : try a create, move or merge operation but make no    
                      changes
 -P [--patch] FILE  : Write the patch between the branch and where it was
                      copied from to FILE
 --export           : used with --checkout to create a detached copy
 --offline          : takes the current branch offline, making a copy
                      under //local
 --online           : takes the current branch online, pushing changes back
                      to the mirror path, and then switches to the mirror



DESCRIPTION

SVK provides tools to more easily manage your project’s branching and merging, so long as you use the standard trunk/, branches/, tags/ directory layout for your project or specifically tell SVK where your branches live.

Usage (without projects)

A very simple sample usage might be to checkout the trunk from a project you want to work on but don’t have upstream commit rights for. This allows you to maintain a local branch and to send in patches.

Assuming you have alread mirrored this repository to //mirror/Project



    svk co //mirror/Project/trunk
or
    svk branch --co trunk //mirror/Project/



and then



    svk branch --offline



You’re now working in a local branch, make local commits and changes as you need to. If you want to bring in changes from your remote repository, you can pull them down



    svk branch --pull



To see what changes you’ve made, you can create a patch between the local branch and the remote repository



    svk branch -P - --push



If you have commit rights to the remote repository, you can also



    svk branch --push



to send your changes.

You can use svk branch’s branching capability in this mode, but it will be much friendlier if you set up a project

Usage (projects)

To initialize a project in a repository, run the setup command



    svk branch --setup //mirror/Project



If you have the standard trunk branches tags directories svk will offer them as the starting point. In fact, if you have trunk branches and tags directories, svk will try to use them without neeting --setup, but you won’t be able to use the --project flag and will need to use depotpaths in commands.

The rest of this documentation assumes you’ve set up a project called Example in //mirror/Project

If you’re in a working copy of svk where it can work out the Project name, you can leave off the --project flag from the examples below, but you can branch/tag/merge without having working copies

    Branching

To check out the trunk, you can run



    svk branch --co trunk --project Example



To create a branch for release engineering



    svk branch --create Exmaple-1.0-releng --project Example



Since you have a checkout of trunk already, you can convert that



    cd trunk
    svk branch --switch-to Example-1.0-releng



Or you can get a clean checkout



    svk branch --co Example-1.0-releng --project Example



If changes are made on trunk and you wish to bring them down to the release engineering branch, you can do that with the branch merge command



    svk branch --merge trunk Example-1.0-releng



If you’re cautious, use the check flags first:



    svk branch -C --merge trunk Example-1.0-releng
    svk branch -P -  --merge trunk Example-1.0-releng



These will show you what svk wants to do.

Lets say you want to add a feature to trunk but work on a branch so you don’t inconvenience others who are working on trunk:



    svk branch --create Feature --project Example



work on your feature, svk ci some changes



    svk branch --merge Feature trunk --project Example



continue to bring down changes several ways



    svk branch --pull
    svk branch --merge trunk Feature
    svk branch --merge trunk .   (if youre in a working copy of the branch)



and then merge back more feature work as you need to

To get rid of a branch when you’re done with it



    svk branch --delete Feature --project Example



To see all of your branches, you can do:



    svk branch --list --project Example



    Tagging

If you’ve been working on your releng branch and are ready to cut a release, you can easily create a tag



    svk branch --tag --create 1.0rc1 --from Example-1.0-releng --project Example



If you would like to check out this tag, use



    svk branch --tag --co 1.0rc1 --project Example



Project Property Details

SVK branch also provides another project loading mechanism by setting properties on root path. Current usable properties for SVK branch are



  svk:project:<projectName>:path-trunk
  svk:project:<projectName>:path-branches
  svk:project:<projectName>:path-tags



These properties are useful when you are not using the standard trunk/, branches/, tags/ directory layout. For example, a mirrored depotpath ’//mirror/projA’ may have trunk in /trunk/projA/ directory, branches in /branches/projA, and have a standard /tags directory. Then by setting the following properties on root path of remote repository, it can use SVK branch to help manage the project:



  svk:project:projA:path-trunk => /trunk/projA
  svk:project:projA:path-branches => /branches/projA
  svk:project:projA:path-tags => /tags



Be sure to have all path-trunk, path-branches and path-tags set at the same time.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SVK::COMMAND::BRANCH (3) 2010-03-09

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.