Differences between revisions 15 and 18 (spanning 3 versions)
Revision 15 as of 2012-11-19 14:29:25
Size: 1707
Editor: 195
Comment: link to extension implementation
Revision 18 as of 2012-11-19 15:33:27
Size: 1814
Editor: 195
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
'''This extension is not distributed with Mercurial.''' '''This extension is not distributed with Mercurial.

This extension is currently under development, and not yet ready for use.
'''
Line 19: Line 21:
== Visioning Branch Names == == Renaming Branches ==
Line 21: Line 23:
To start renaming branches, create a file called .hgbranches in the root of the working directory. Each line in .hgbranches consists of a space-delimited pair such as oldBranch newBranch. If the branch name contains spaces, it should be quoted. To start renaming branches, create a file called `.hgbranches` in the root of the working directory, and check it in. Each line in `.hgbranches` consists of a space-delimited pair such as `oldBranch newBranch`. If the branch name contains spaces, it should be quoted.
Line 27: Line 29:
If conflicting changes have been made to .hgbranches on different branches, or if it contains conflicting entries, this will be resolved by the same rules that apply to .hgtags. If conflicting changes have been made to `.hgbranches` on different branches, or if it contains conflicting entries, this will be resolved by the same rules that apply to `.hgtags`.
Line 31: Line 33:
If the user creates a local branch which they do not intend pushing, it can be recorded in .hg/localbranches. If the user creates a local branch which they do not intend pushing, it can be recorded in `.hg/localbranches`.
Line 35: Line 37:
If a branch ID is not recorded in .hgbranches or .hg/localbranches, the ID will be used as the branch name. Thus, existing branches can be used (and renamed) without any modifications. If the branch is renamed, older clients will continue to use the old name. If a branch ID is not recorded in `.hgbranches` or `.hg/localbranches`, the ID will be used as the branch name. Thus, existing branches can be used (and renamed) without any modifications. If the branch is renamed, older clients will continue to use the old name.
Line 39: Line 41:
Future development could add other fields to .hgbranches, such as description or owner. Future development could add other fields to `.hgbranches`, such as description or owner.

Mutable Branches

This extension is not distributed with Mercurial.

This extension is currently under development, and not yet ready for use.

Author: Gideon Sireling

Repository: http://code.accursoft.com/mutable-branches/

Issue tracker: http://code.accursoft.com/mutable-branches/issues

1. Overview

The mutable-branches extension allows named branches to be renamed, without rewriting history. This is achieved by separating a branch's identity from its name.

2. Renaming Branches

To start renaming branches, create a file called .hgbranches in the root of the working directory, and check it in. Each line in .hgbranches consists of a space-delimited pair such as oldBranch newBranch. If the branch name contains spaces, it should be quoted.

There are no changes to Mercurial's UI, other than not scolding the user when they create a new branch.

3. Conflicts

If conflicting changes have been made to .hgbranches on different branches, or if it contains conflicting entries, this will be resolved by the same rules that apply to .hgtags.

4. Local Branches

If the user creates a local branch which they do not intend pushing, it can be recorded in .hg/localbranches.

5. Backwards Compatibility

If a branch ID is not recorded in .hgbranches or .hg/localbranches, the ID will be used as the branch name. Thus, existing branches can be used (and renamed) without any modifications. If the branch is renamed, older clients will continue to use the old name.

6. Forwards Compatibility

Future development could add other fields to .hgbranches, such as description or owner.


CategoryExtensionsByOthers

MutableBranches (last edited 2019-08-22 10:56:57 by gidyn)