[pypy-dev] Mercurial workflow

Joe qbproger at gmail.com
Tue Dec 14 23:53:41 CET 2010

In reference to MqExtention, I've used Stacked Git (a git equivalent)
in the past, and would generally advise against this.  I like to
commit after I get a piece of something working, so I know I can go
back to that point if I try something and it doesn't work out.
Stacked Git makes this hard.  In my opinion, you're essentially
by-passing a benefit of a scm tool.

I wouldn't advise people to use MqExtension unless they understand
that if they make a mistake they must undo it manually.


On Tue, Dec 14, 2010 at 12:42 PM, Adrien Di Mascio <adimasci at gmail.com> wrote:
> Hi Jacob,
> On Tue, Dec 14, 2010 at 6:04 PM, Jacob Hallén <jacob at openend.se> wrote:
>> now that the switch to Mercurial has happened, people are discovering that
>> their Subversion workflow habits don't quite work. This is because Mercurial
>> has a distributed philosophy, inlike svn which has the concept of the holy
>> central server where all operations take place.
> It might be relevant for you to consider the mq extension :
> - http://mercurial.selenic.com/wiki/MqExtension
> - http://mercurial.selenic.com/wiki/MqTutorial
> - http://mercurial.selenic.com/wiki/MqExtension
> I find it very convenient on a daily-basis usage. When you want to
> implement or fix something, you just create a new patch :
> $ hg qnew my_new_idea
> You then start to modify code and update your patch whenever you feel
> the current version of your code is better than the previous one :
> $ hq qrefresh
> Then, when you're happy with it, all tests pass, etc., unapply your
> patch, pull the new changesets from the "central" repository, and then
> reapply your patch :
> $ hg qpop                           # pop your patch
> $ hg pull central_repo_url     # pull new changesets
> $ hg up
> $ hg qpush                         # reapply your patch
> $ <make sure tests still pass>
> $ hg qfinish -a                     # finalize and promote your patch
> to a changeset tracked in the repository
> $ hg push central_repo_url   # push your changeset
> You can work on several patches at the same time, you can even track
> your patches in a mercurial repository. In my experience, it helps
> keeping a revision tree clean and avoid quite a few unnecessary
> merges. Of course there is also the "rebase" command and some other
> extensions I haven't tried such as pbranch but the standard "mq"
> extension is itself very useful.
> Just my two cents.
> Regards,
> Adrien.
> _______________________________________________
> pypy-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/pypy-dev

More information about the Pypy-dev mailing list