Differences between revisions 21 and 33 (spanning 12 versions)
Revision 21 as of 2012-11-24 19:59:12
Size: 1725
Editor: 93-173-165-121
Comment: local branch renaming not implemented
Revision 33 as of 2019-08-22 10:56:57
Size: 1546
Editor: gidyn
Comment: moved to github
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
''Author: Gideon Sireling '''This extension is not distributed with Mercurial.'''
Line 7: Line 7:
Repository: http://code.accursoft.com/mutable-branches/ ''Author: Gideon Sireling''
Line 9: Line 9:
Issue tracker: http://code.accursoft.com/mutable-branches/issues'' Repository: https://github.com/accursoft/mutable-branches
Line 15: Line 15:
The mutable-branches extension allows [[NamedBranches|named branches]] to be renamed, without rewriting history. This is achieved by separating a branch's identity from its name. The mutable-branches extension allows [[NamedBranches|named branches]] to be renamed, without rewriting history. Renamings are tracked by a file in the working directory.

== Installation ==

Clone the repository to your local hard drive, or simply download [[https://raw.githubusercontent.com/accursoft/mutable-branches/master/mutable-branches.py|mutable-branches.py]]. Then add the following to your ''`mercurial.ini`'' or ''`.hgrc`'':

{{{
[extensions]
mutable-branches = path/to/mutable-branches.py
}}}
Line 23: Line 32:
== 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`.
Line 29: Line 34:
If the user creates a local branch which they do not intend pushing, it can be recorded in `.hg/localbranches`. ''This feature has not yet been implemented.'' If the user creates a local branch which they do not intend pushing, it can be recorded in `.hg/localbranches`. Local renamings override repository renamings.
Line 31: Line 36:
== Backwards Compatibility == == Future Development ==
Line 33: Line 38:
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.

== Forwards Compatibility ==

Future development could add other fields to `.hgbranches`, such as description or owner.
Other fields could be added to `.hgbranches`, such as the branch's description or owner.

Mutable Branches

This extension is not distributed with Mercurial.

Author: Gideon Sireling

Repository: https://github.com/accursoft/mutable-branches

1. Overview

The mutable-branches extension allows named branches to be renamed, without rewriting history. Renamings are tracked by a file in the working directory.

2. Installation

Clone the repository to your local hard drive, or simply download mutable-branches.py. Then add the following to your mercurial.ini or .hgrc:

[extensions]
mutable-branches = path/to/mutable-branches.py

3. 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.

4. Local Branches

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

5. Future Development

Other fields could be added to .hgbranches, such as the branch's description or owner.


CategoryExtensionsByOthers

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