[brailleblaster] Re: Setting up branches in the repository

  • From: Michael Whapples <mwhapples@xxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Fri, 04 May 2012 10:51:36 +0100

For either way you may find the mercurial book useful http://hgbook.red-bean.com/read/ and in particular chapter 8 http://hgbook.red-bean.com/read/managing-releases-and-branchy-development.html


As I mentioned before my preferred way of branching tends to be creating clones working in that and then merging the changes back. I know with this there was the issue of how to make the branch public, well you could set up temporary repositories on bitbucket.org and push the branch to that (a free account on bitbucket should be sufficient for this use).

With the cloning system, merging is done how you merged the changes when I had made commits and pushed to the central repository.

A work flow might look like:
* Set up an account and empty repository on bitbucket.org (you possibly could import from the BrailleBlaster one on google code, however I will discuss for an empty one). * Create your local clone for the branch on your system (either pulling from a local repository or the public one), eg:
hg clone https://code.google.com/p/brailleblaster
* Make changes and commit (do not push yet, just the commit command, see next instruction for pushing)
* Now push it to your bitbucket repository:
hg push <your-bitbucket-repository push address>
The <your-bitbucket-push-address> will be the address of the repository and should be https * keep on committing and pushing to bitbucket while working on the branch, also pull from it if others make changes to it. * Now when you are ready, pull again from the google code repository so you can merge any changes from there into your branch (you may want to do this more than just at the end, if you do it as you go along the merges will probably be simpler):
hg pull https://code.google.com/p/brailleblaster
* Now do the merging, probably hg update and hg merge will help here.
* Once all is merged, you now should be able to push to the google code repository:
hg push https://code.google.com/p/brailleblaster
* All done, if the branch is no longer needed you probably can go ahead and delete the repository from bitbucket.

The other alternative is to use the branch facility of mercurial.

* Create a branch with the branch command:
hg branch mybranch
* You can see what branches there are:
hg branches
* You can see which branch you are on with the branch command:
hg branch
* To swap between branches use the update command with the branch name:
hg update mybranch
* You can merge another branch by using the merge command and the branch you want to merge from:
hg merge otherbranch

Remember though, by using this second branch system everyone who wants to deal with a testing branch will also need to work with mercurial's branching commands, where as the first option people just deal with different repositories.

Michael Whapples
On 03/05/2012 16:50, John J. Boyer wrote:
We will be testing a multi-document interface and other new features. It
would be nice to put this in a separate branch in the repository. How is
this done? When testing is complete, how is the branch merged back into
the default branch?

The new features are mostly the work of Hanxiao Fu, who volunteered
while he was a student at the University of Wisconsin-Madison, and who
is now working from China.

Thanks,



Other related posts: