[pypy-dev] Mercurial workflow

Leonardo Santagada santagada at gmail.com
Wed Dec 15 00:38:14 CET 2010


I would also advise against using mq for the same reason plus it is a
whole set of commands to learn.

What I would advise is to try to use rebase more instead of merging
most of the time. Here is a link to some docs about rebase
http://mercurial.selenic.com/wiki/RebaseProject

On Tue, Dec 14, 2010 at 8:53 PM, Joe <qbproger at gmail.com> wrote:
> 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.
>
> Joe
>
> 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
> _______________________________________________
> pypy-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/pypy-dev
>



-- 
Leonardo Santagada



More information about the Pypy-dev mailing list