Differences between revisions 4 and 9 (spanning 5 versions)
Revision 4 as of 2007-10-15 05:51:19
Size: 2216
Comment:
Revision 9 as of 2008-02-10 23:28:49
Size: 2661
Editor: abuehl
Comment: links
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Named branches allow assigning persistent symbolic names to branches of development inside a single repository. '''Named branches''' allow assigning persistent symbolic names to [:Branch:branches] of development inside a single [:Repository:repository].
Line 3: Line 3:
== create a branch ==
To begin a branch, mark your current working directory and then commit it:
== Create a Branch ==
Calling {{{hg branch}}} without a name shows the current branch name of the [:WorkingDirectory:working directory]. Calling {{{hg branch}}} after a {{{hg init}}} outputs "default", the (reserved) name of the default branch:
Line 7: Line 8:
default
}}}

To begin a branch, set the branch name of the working directory and then [:Commit:commit] it:

{{{
Line 8: Line 15:
marked working directory as branch newfeature
Line 20: Line 28:
== commit changes to a branch ==
From this moment on, all commits will get tagged with the supplied branch name. When merging with another branch, the local branch name takes precedence:
== Commit Changes to a Branch ==
From this moment on, all commited [:ChangeSet:changesets] will get [:Tag:tagged] with the supplied branch name. When [:Merge:merging] with another branch, the local branch name takes precedence:
Line 51: Line 59:
Branch names can be used anywhere that tag names can, including log, diff, push, and pull. When a branch has multiple heads, the tipmost revision of the branch will be found. Here are some examples: Branch names can be used anywhere that tag names can, including log, diff, [:Push:push], and [:Pull:pull]. When a branch has multiple [:Head:heads], the [:Tip:tipmost] revision of the branch will be found. Here are some examples:
Line 70: Line 78:
== switch between branches == == Switch between Branches ==
Line 76: Line 84:
== Links ==
 * [http://hgbook.red-bean.com/hgbookch8.html Managing releases and branchy development]
Line 77: Line 87:
== links ==
 * [http://hgbook.red-bean.com/hgbookch8.html Managing releases and branchy development]
See also: [:MultipleHeads]

Named branches allow assigning persistent symbolic names to [:Branch:branches] of development inside a single [:Repository:repository].

Create a Branch

Calling hg branch without a name shows the current branch name of the [:WorkingDirectory:working directory]. Calling hg branch after a hg init outputs "default", the (reserved) name of the default branch:

$ hg branch
default

To begin a branch, set the branch name of the working directory and then [:Commit:commit] it:

$ hg branch newfeature
marked working directory as branch newfeature
$ hg branch
newfeature
$ hg ci -m "start feature branch"
$ hg parents
changeset:   3899:c08bfc770d37
branch:      newfeature
tag:         tip
user:        Matt Mackall <mpm@selenic.com>
date:        Tue Dec 19 14:20:11 2006 -0600
summary:     start feature branch

Commit Changes to a Branch

From this moment on, all commited [:ChangeSet:changesets] will get [:Tag:tagged] with the supplied branch name. When [:Merge:merging] with another branch, the local branch name takes precedence:

$ hg branch
newfeature
$ hg in remote
searching for changes
changeset:   3900:3be94ff00829
branch:      main
tag:         tip
parent:      3898:93e5f07baf75
user:        Matt Mackall <mpm@selenic.com>
date:        Tue Dec 19 14:26:52 2006 -0600
summary:     bug fix

$ hg pull remote
pulling from remote
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg branch
newfeature

Branch names can be used anywhere that tag names can, including log, diff, [:Push:push], and [:Pull:pull]. When a branch has multiple [:Head:heads], the [:Tip:tipmost] revision of the branch will be found. Here are some examples:

$ hg branches
main                           3900:3be94ff00829
newfeature                     3899:c08bfc770d37
$ hg log -r main
changeset:   3900:3be94ff00829
branch:      main
tag:         tip
parent:      3898:93e5f07baf75
user:        Matt Mackall <mpm@selenic.com>
date:        Tue Dec 19 14:26:52 2006 -0600
summary:     bug fix
$ hg in -r main ../bd2
searching for changes
no changes found

Switch between Branches

$ hg update -C main
$ hg update -C newfeature

See also: [:MultipleHeads]

NamedBranches (last edited 2013-12-26 09:53:26 by Tovim)