Thanks to Timothy (and probably also thanks to the bad weather) we’ve seen some development activity for monotone recently. It started out with the “key-by-hash” changes: keys are no longer identified by its name, but their unique ID which finally solves the “I have lost my monotone private key – help!” issues from the past. This already went into monotone 0.45 which was released about a month ago.
Now the upcoming monotone release includes another long-awaited feature which is in the trunk as of yesterday: being able to query database contents from remote monotone servers. This is particularily useful if you want to check what branches are available server-side before you fetch them all. I’ve teamed up with Timothy and made a “single-shot” version of his new `automate remote_stdio` command which can be used as follows:
# this picks your default netsync server stored in the database
$ mtn au remote branches
# ... alternatively, give it an optional hostname
$ mtn au remote --remote-stdio-host myserver.org branches
Since both `automate remote_stdio` and `automate remote` can execute any available remote automate command through this, a little lua guard was implemented which allows the server administrator to pick certain commands which he wants to make available. By default, no command can be executed:
function get_remote_automate_permitted(key_identity, command, options)
where `key_identity` identifies the calling user, command points to a table which contains the command’s name and arguments, and options points to another table which contains the options for the given command.
Now what has all this to do with guitone?
Especially the changes in 0.45 forced me already to pick my old pet project up again, because key-related commands changed their output in an incompatible manner and therefor my code needed to adapt to that as well. I’m also planning to finalize other features in the upcoming weeks, amongst that netsync support (whose automate versions incidentally have to be implemented in monotone at first as well), an improved changeset browser and probably other minor things and bugs which have been on hold since February.
The next guitone version won’t be out before monotone 0.46 hits the streets though, simply because I have to wait (and implement) a couple of things in monotone first and because I want to publish a release which does not explode the first time you’ll look at it. But hey, since I’m the release manager for monotone as well, its in my hands when it will be out 🙂
Its also likely that I’ll introduce a beta release cycle for the next guitone release and make a couple of binaries so people get their hands on it easier and earlier.
So, stay tuned for more updates on both projects!