Differences between revisions 3 and 8 (spanning 5 versions)
Revision 3 as of 2005-09-20 17:10:19
Size: 1642
Comment:
Revision 8 as of 2006-02-08 23:14:13
Size: 1325
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Email: [[MailTo(byteshack<-A-T->gmail<-D-O-T->com)]] This page will need to be moved to a more permanent place once this tutorial is completed. Please help me with a good name for the page!
Line 7: Line 7:
=== The mq extension ===
I'm very interested on what the mq extension does. I guess for me it is still a solution looking for a problem, and until I can't fully understand what the problem is, I wont enjoy and fully utilize the solution it provides. Hopefully I can put some stuff that I figure out here.
Line 10: Line 8:
=== Random hg use scenarios ===
Mercurial has a bit of a feature bloat. It is not bad, but it is just hard to know what everything does. There is a LOT of functionality all over the place. This is a place holder of pointer to stuff I seem to forget easily.
= Mq Tutorial =
Outline:
 * Why the heck would I want to use mq?
 * How is mq a "stack"? (are there really 2 stacks?)
 * Tutorial on using mq:
   * Installing mq
   * Getting a repo to do work on (use hg for a sample!)
   * Initializing mq on that repo (make it versioned)
   * Creating and editing a patch
     * qnew seems to push the patch to the repo stack.
     * qrefresh refreshes the patch, not only in the patches folder, but also in the repo.
     * use qnew -m "message" to control the message that will be used when commiting this patch to the repo.
   * Creating another patch
   * Version my patches so far (qcommit)
   * Spliting the previous patch (edit patch to leave out 2nd patch and do something like: patch -p1 -R < p1b ; hg qrefresh; hg qnew -M "foo" p1b ; patch -p1 < p1b)
   * Propagating my patches (push all patches we wish to "publish", hg mail that)
   * Pointers to other docos: MqExtension, see the {{{hgext/mq-howto}}} file.
Line 13: Line 26:
 * Good repo layout?
   Seems to be a good idea to keep a couple of repos around: upstream, localchanges, outbound. upstream should be kept sync'd with the source, and not modified at all.

 * To see changes comming from upstream into one of your local repos do:
{{{
$ cd localrepo
$ hg incoming
}}}

 * {{{hg clone}}} can be VERY slow under windows if one is running python.org. A way around this was given in the IRC channel (by bos_) by going to this location [http://sourceforge.net/projects/pywin32/] and downloading that project. It is a set of python modules (I believe) to, amongst other things, give python the hability to create hardlinks. A nice tool to check for hardlinks in windows is {{{hlscan}}} [http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/hlscan-o.asp].

 * Might want to use kdiff3! I didn't know it was available for windows too! [http://kdiff3.sourceforge.net/]
 * Questions:
   * Why does qrefresh take out the {{{[mq]:}}} substring from the changeset message in the repo?

Daniel Santa Cruz (byteshack)

This page will need to be moved to a more permanent place once this tutorial is completed. Please help me with a good name for the page!

Mq Tutorial

Outline:

  • Why the heck would I want to use mq?
  • How is mq a "stack"? (are there really 2 stacks?)
  • Tutorial on using mq:
    • Installing mq
    • Getting a repo to do work on (use hg for a sample!)
    • Initializing mq on that repo (make it versioned)
    • Creating and editing a patch
      • qnew seems to push the patch to the repo stack.
      • qrefresh refreshes the patch, not only in the patches folder, but also in the repo.
      • use qnew -m "message" to control the message that will be used when commiting this patch to the repo.
    • Creating another patch
    • Version my patches so far (qcommit)
    • Spliting the previous patch (edit patch to leave out 2nd patch and do something like: patch -p1 -R < p1b ; hg qrefresh; hg qnew -M "foo" p1b ; patch -p1 < p1b)

    • Propagating my patches (push all patches we wish to "publish", hg mail that)
    • Pointers to other docos: MqExtension, see the hgext/mq-howto file.

  • Questions:
    • Why does qrefresh take out the [mq]: substring from the changeset message in the repo?


CategoryHomepage

DanielSantaCruz (last edited 2009-05-19 19:31:00 by localhost)