new mr patches on their way (not quite ready yet though)

Adam Spiers vcs-home at
Thu Dec 1 01:20:54 CET 2011

Hi again Joey,

On Sun, Nov 13, 2011 at 11:35 AM, Adam Spiers <vcs-home at> wrote:
> Hi Joey et al.,
> I've been doing a lot of work on my stow plug-in for mr, and in the
> process have not only resurrected GNU stow from the dead (last release
> was 2002) but also ended up doing quite a bit of work on mr itself
> too.  I've made a number of fixes to minor bugs, a few enhancements
> (including the new --repos switch, for which I posted a preliminary
> and somewhat broken patch to this list a week or 3 ago), and some
> cosmetic changes.  I'm not quite done yet, but I thought it would be
> prudent to give you guys a heads up anyway.  Hopefully most of the
> patches are relatively uncontroversial, but I expect a few will
> generate some discussion too.  Anyway, if you want a sneak preview
> then you can see the patch series here:
> WARNING!  This branch *will* get rebased regularly, so I strongly
> recommend that you do not attempt to merge from it at this point
> otherwise you will almost certainly run into issues.  When I'm happy
> that it's stabilised then I'll send another mail to the list.

I've made a lot of progress since this last mail, and I'm conscious
that my branch is now approximately 50 commits ahead of the official
master branch, so I think it's time to work on convergence if
possible.  Here's a summary of the main features of my branch:

  - A plug-in module for integration with the GNU Stow symlink
    manager, now well-tested and stable.  I have recently become
    co-maintainer of GNU Stow, and its current git master branch and
    next official release contain enhancements which make it
    compatible with mr out-of-the-box.  This makes tracking your $HOME
    dotfiles as easy as:

      checkout = git clone ...
      stowable = true

    and then if this repository contains (say) .bashrc, `mr checkout'
    will automatically create the symlink ~/.bashrc which points it.

  - A plug-in module which allows tar balls / zip files etc. to be
    downloaded, unpacked, and used as repositories with minimal
    effort, e.g.

      checkout = mr_download_checkout

  - Support for a --repos switch to filter repositories by name
    (and a corresponding optional special 'name' config parameter).

  - Refactored the STDOUT/STDERR output code in a way that supports
    multiple levels of verbosity from quiet (-q) to extremely verbose
    (-v6 - for developers only).

  - Added colored output, e.g. red for errors and yellow for warnings,
    skipped repositories etc.

  - Support for composite actions via the '_append' suffix, so that
    actions such as fixups can be constructed accumulatively from
    different files.

  - mr checkout only checks out lazy repositories if --repos is given.

  - A handy 'mrcd' zsh function and corresponding completion function.

  - A few minor bugfixes and other tweaks.

As I said before, hopefully most of the patches are relatively
uncontroversial, and virtually all of them should be self-explanatory
as I have regularly squashed in order to keep each commit as a logical
unit of a sensible size.  But they may not all be to everyone's taste.

Feedback very welcome!


More information about the vcs-home mailing list