Differences between revisions 1 and 2
Revision 1 as of 2006-11-28 23:05:54
Size: 593
Editor: corecode
Comment:
Revision 2 as of 2006-12-19 21:16:43
Size: 1961
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Named branches allow assigning a symbolic name to not only one certain revision, like tags allow, but they provide a mechanism to assign a name to a complete branch. Named branches allow assigning persistent symbolic names to branches of development inside a single repository.
Line 3: Line 3:
To start working on a branch which is rooted at the current working dir revision, invoke hg with: To begin a branch, mark your current working directory and then commit it:
Line 5: Line 5:
  hg branch branchname $ hg branch
$ hg 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
Line 8: Line 19:
From this moment on, all commits will get tagged with the supplied branch name. 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:
Line 10: Line 21:
To get a list of all available branches, use:
Line 12: Line 22:
  hg branches $ 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
Line 15: Line 49:
When merging two named branches, the merge changeset will reside on the branch of the working dir. The other branches head stays. 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:

{{{
$ 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
}}}

Named branches allow assigning persistent symbolic names to branches of development inside a single repository.

To begin a branch, mark your current working directory and then commit it:

$ hg branch
$ hg 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 moment on, all commits will get tagged with the supplied branch name. When 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, and pull. When a branch has multiple heads, the 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

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