Differences between revisions 28 and 33 (spanning 5 versions)
Revision 28 as of 2013-08-26 15:32:55
Size: 4276
Editor: alex hunsley
Comment: Vandalism
Revision 33 as of 2013-08-30 01:42:30
Size: 525
Editor: NelleThie
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<Include(A:style)>>

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

<<TableOfContents>>

== Find What Branch You're On ==
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 init
$ hg branch
default
}}}

== Create a Branch ==
To begin a new 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
}}}

From this point on, all committed [[ChangeSet|changesets]] will be associated with the supplied branch name.
Unless overridden with the {{{hg branch}}} command, the working directory inherits the branch name associated
with a changeset. This way, a sequence of changesets will typically all have the same branch name.

When Mercurial lists a changeset, it will only show the branch name associated with the changeset
if the branch name differs from the reserved branch name "default".

=== Create a Branch From an Older Revision ===

This can be done by updating your working copy to the revision in question and then creating the new branch.

{{{
$ hg update -r 500
hg 613 files updated, 0 files merged, 16 files removed, 0 files unresolved
$ hg branch newbranch
$ hg commit -m 'made a new branch from revision 500'
}}}

== Switch Among Branches ==

Switch among branches using the {{{hg update}}} command:

{{{
$ hg update -C main
$ hg update -C newfeature
}}}

By providing a branch name, {{{hg update}}} will update your working copy to the tip on this branch.
'''Note:''' the {{{-C}}} option discards local changes, so be careful before using this option.

== Merge Branches ==
When [[Merge|merging]] with another branch, the local branch name takes precedence:

{{{
$ hg branch
newfeature
$ hg incoming http://example.net/repos/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 http://example.net/repos/remote
pulling from http://example.net/repos/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
}}}

== Delete Branches ==
PruningDeadBranches

== Undoing a Bad Merge ==

Mercurial does not yet offer a foolproof way to back out an erroneous merge. The latest information I've been able to find on this matter is at http://stackoverflow.com/questions/265944/backing-out-a-backwards-merge-on-mercurial and is currently marked unresolved.



== See also ==
 * [[http://hgbook.red-bean.com/read/managing-releases-and-branchy-development.html|Managing releases and branchy development]]
 * [[MultipleHeads]]
 * [[Branch]]
 * [[Bookmarks]]
 * [[MutableBranches]]

----
CategoryHowTo
Wen is what people call me but my husband doesn't necessarily like it at all. What I really enjoy doing is simply horse riding and as a result I've been doing it for quite a short time. http://thumbs.dreamstime.com/thumbimg_499/1272602826cCDMii.jpg I used to be unemployed but now i'm a cashier. Minnesota is where I've always been living but now I'm considering other variations. My husband and Partner maintain a webpage. You might want to check it obtainable here: http://www.spacciohogan2013.it/hogan-olympia-uomo-c-2/

Wen is what people call me but my husband doesn't necessarily like it at all. What I really enjoy doing is simply horse riding and as a result I've been doing it for quite a short time. http://thumbs.dreamstime.com/thumbimg_499/1272602826cCDMii.jpg I used to be unemployed but now i'm a cashier. Minnesota is where I've always been living but now I'm considering other variations. My husband and Partner maintain a webpage. You might want to check it obtainable here: http://www.spacciohogan2013.it/hogan-olympia-uomo-c-2/

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