Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manage multiple versions of a product with Mercurial?

Tags:

mercurial

My company's product is module-based, meaning we ship with five base modules and users can purchase additional ones. We're using Mercurial, to which we are relatively new, for our source control, and since we've released 1.0 of our product, managing the separate module development has been a nightmare.

We want to be able to release minor bugfix updates without having to wait for particular module development to be complete, so one repo for everything doesn't work very well. I read about branching but the Definitive Guide seems to suggest that branching is temporary, and that merging with it is difficult.

Ideally, we'd have a base repo that is the product and then different repos (or branches) with the extra modules, so that QA could build the main product and the main+addons separately, while the developers working on ModuleA don't impact the developers working on BugfixB. I tried this with multiple subrepos but it ended up corrupting my repositories.

Should I be looking at using named branches? Or bookmarks?

I'm looking for suggestions on best practices on how we can take advantage of Mercurial's features to make this process easier.

Thanks!

like image 349
Robert S. Avatar asked Dec 23 '22 00:12

Robert S.


1 Answers

There is a good tutorial about branching at http://nvie.com/git-model. The main point is to have

  • a release branch which contains only merges from completed release/bugfix branches
  • development branches for bug fixes or features
    • own branches for long-term features

Also there is a reference about the technical differences in mercurial branches at http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

like image 99
Rudi Avatar answered Jan 13 '23 13:01

Rudi