Hi again Joey,
On Sun, Nov 13, 2011 at 11:35 AM, Adam Spiers
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:
>
> https://github.com/aspiers/kitenet-mr/commits/master
>
> 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:
[shell-config]
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.
[foo]
checkout = mr_download_checkout http://example.com/foo.tar.bz2
- 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!
Thanks,
Adam