Differences between revisions 7 and 54 (spanning 47 versions)
Revision 7 as of 2008-01-06 14:21:37
Size: 2559
Editor: abuehl
Comment: expand and update
Revision 54 as of 2013-09-02 06:06:36
Size: 386
Editor: DZKNellie
Comment:
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"].

== Create a Branch ==
Calling {{{hg branch}}} without a name shows the current branch name of the ["WorkingDirectory"]. 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"] 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"]s will get tagged with the supplied branch name. When ["Merge"]ing 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"], and ["Pull"]. When a branch has multiple ["Head"]s, the ["Tip"]most 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
}}}


== Links ==
 * [http://hgbook.red-bean.com/hgbookch8.html Managing releases and branchy development]
Lionel is what's compiled on his start out certificate and my husband loves it. Playing football is each of the things god loves most. Administering databases is what he does for one living. His house is now in Delaware and he really likes every day living there. You can always uncover his website here: http://www.etmwiki.org/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:EfrainZ55cly

Lionel is what's compiled on his start out certificate and my husband loves it. Playing football is each of the things god loves most. Administering databases is what he does for one living. His house is now in Delaware and he really likes every day living there. You can always uncover his website here: http://www.etmwiki.org/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:EfrainZ55cly

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