Menu

Patch Queues

Adam Tauno Williams

[Development]

Patch Queues

Several repositories exist which are for use with the Mercurial MQ extension [which is supported in TortoiseHg with a new GUI]. MQ provides "patch queues" that are quasi-subordinate repositories; patch queues are a nice way of storing, sharing, and exchanging change sets (patches). Patches in a queue can be applied, unapplied, reordered, updated... without changes to the core repository - they are 'finished' to the core reposistory when they are finished. :) This avoids the core repository being used as "Save As" and makes a commit == some-work-is-finished! Which is what "commit" is supposed to mean.

Everyone is free to continue to use their own branch any way they like, of course. But patch queues should help us clean up how the commit log looks. It is also just much easier than having a whole bunch of 'personal' branches where one works on different stuff; as commit often tend to run across branches.

To use a patch queue

  1. Enable the MQ extension.
  2. Exit TortoiseHg, or whatever your version control tool is\
  3. Go in to the .hg [hidden] subfolder and clone the patch queue.

    cd .hg
    hg clone ssh://{YOURNAME}@hg.code.sf.net/p/coils/cmis patches-CMIS
    
  4. Edit patches.queues, adding the name of the queue, like:

    # cat patches.queues
    patches
    CMIS
    
  5. Start TortoiseHg, or whatever your version control tool is. Start coding!

NOTE: The "patches-" prefix is assumed on patch queue sub-folder -> patch queue mapping. The patches.queues is a list of the installed/available patch queues. You can have none, one, some, or all the patch queues. It is easiest, I think, to just do them all - but you only need to do the ones you want to do. Just always edit this with your version control interface shutdown.

OpenGroupware Coils Patch Queue Repositories

Patches

This patch queue is for patches that implement specific new features or triage specific bugs. Please one bug/feature per patch.

hg clone ssh://{YOURNAME}@hg.code.sf.net/p/coils/patches patches

CMIS

This queue is for implementation of the CMIS v1.0 protocol; this will allow full interoperation with document management features of LibreOffice and Microsoft Office. And it is just a really good protocol with lots of miscelaneous implementations - and it very much already matches how OpenGroupware manages documents. Each patch should be an implementation of some part of the protocol; in the queue the patches are meant to be applied as a stack. See the CMIS Wiki page.

hg clone ssh://{YOURNAME}@hg.code.sf.net/p/coils/cmis patches-CMIS

Async:

This queue is for porting of the gnarly HTTP service provider to the Tornado HTTP engine. I imagine it will be an entire stack of patches as this will make little touches to everything under coils/protocol and coils/net.

hg clone ssh://{YOURNAME}@hg.code.sf.net/p/coils/async patches-Async

OIE

This queue is for enhancement and bug fixes to OIE (the workflow engine). Please one enhancement / fix per patch.

hg clone ssh://{YOURNAME}@hg.code.sf.net/p/coils/oie patches-OIE

Related

Wiki: CMIS-REST
Wiki: Development

MongoDB Logo MongoDB