Size: 2274
Comment: wording
|
Size: 2559
Comment: expand and update
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
To begin a branch, mark your current ["WorkingDirectory"] and then ["Commit"] it: | 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: |
Line 7: | Line 8: |
default }}} To begin a branch, set the branch name of the working directory and then ["Commit"] it: {{{ |
|
Line 8: | Line 15: |
marked working directory as branch newfeature |
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]