Can I make 'one-shot' mr actions?

Evade Flow evadeflow at gmail.com
Fri Aug 21 15:26:16 CEST 2015


Greetings! I recently discovered mr, and—for me—it's the 'missing link' for
dealing with projects comprised of a dozen or more 'micro repos'. I really
appreciate how easy it is to create custom actions that target *all*
repositories. I'm at a point now where I'd like to implement some
convenience functions for various repo-juggling tasks that only target a
subset of repositories—or no repositories at all. I'm basically looking for
a way to include arbitrary shell functions in my .mrconfig and invoke them
the same as any other action, but with arguments specifying which repo(s)
they should target. What I'm trying to achieve is something like this:

$ mr hide rtt-gameclock bugfix-reboot
mr hide: /home/acme/projects/rtt/../.repos/rtt-gameclock
Rename /home/acme/projects/rtt/../.repos/rtt-gameclock to
rtt-gameclock.bugfix-reboot [y/N]? y
Renamed rtt-gameclock to rtt-gameclock.bugfix-reboot!

$ mr unhide
1. rtt-event-server.wip-replay
2. rtt-gameclock.bugfix-reboot
3. rtt-vds.wip-pcl-overlay

$ mr unhide 2
Rename /home/acme/projects/rtt/../.repos/rtt-gameclock.bugfix-reboot to
rtt-gameclock [y/N]? y
Renamed rtt-gameclock.bugfix-reboot to rtt-gameclock!


Basically, I am (among other things) trying to make it easy for my team to
'shelve' work by temporarily renaming a working copy and re-cloning it.
We're using Mercurial, and several team members prefer to use fresh clones
as 'topic branches' rather than trying to make sense of hg bookmarks. But
this is just one such task that I'd like to have mr wrap.

Obviously, I could just  create a separate Bash script for these functions,
and perhaps that's what I'll wind up doing; but I like the consistency of
having all repo management commands be spelled mr <something>, and it would
streamline the setup instructions for developers, too, if everything were
wrapped up in the .mrconfig file.

Is there some way I can coax mr into not running an action just once,
instead of once per repository?

Any insight much appreciated—thanks!


More information about the vcs-home mailing list