Mercurial and Agile

Bret Naylor bretnaylor at gmail.com
Wed Jul 1 18:21:50 CDT 2009


Hi All,

I am a new user of mercurial.  I have searched all of the internet and have
not had much luck in finding an answer to my question.

Short Question:  Why is it so hard to cherry pick individual changesets and
only move those across repositories?

Longer Version:  We have a fairly large repository with a few thousand
source files.  We are trying to switch our development methodology to a more
Agile approach where we release a new version of our software each month.

We would like each item that developers work on to pass from development, to
testing, and then to release.  To do this we have setup repositories that
the development groups work in.  We then have a QA repository where all
items that are ready for QA can be pushed to and tested by our QA group.
Finally, we have a release repository for items that have been signed off by
the QA group.

In order for this to work, we need to be able to keep changesets that aren't
ready for QA out of the QA repository and we need to keep changesets that
are not ready for Release out of the release repository.

The problem is, we can't choose a changeset from one of the group
repositories and push it into QA by itself.  it always has to have all of
its parents.  Some of the parents may not be ready for QA and so this causes
a problem for us.

To get around this for now, we are creating a new branch for each new
enhancement or bug fix and only merging the branch back into the shared head
once an item is ready for QA.  However, the problem repeats itself for the
QA to Release scenario.  There may be changesets that are fully tested and
accepted and ready to be pushed to the Release repository but once again, we
can't just push that changeset over, we have to push all parent changesets
over which will invariable contain changesets that have not yet passed QA.

We are currently looking into sharing patches via MQ as a possible
alternative but this does not seem ideal.

Is there some better way to use Mercurial that I have overlooked that will
allow us to cherry pick changesets that we want in one repository while
leaving behind parent changesets that we don't want?  Doesn't anyone else
run into this issue?

Bret Naylor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://selenic.com/pipermail/mercurial/attachments/20090701/a2161ca4/attachment.htm 


More information about the Mercurial mailing list