[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] merging branch to allow 'automate stdio' over the n
From: |
Thomas Keller |
Subject: |
Re: [Monotone-devel] merging branch to allow 'automate stdio' over the network |
Date: |
Mon, 28 Sep 2009 13:29:11 +0200 |
User-agent: |
Thunderbird 2.0.0.22 (X11/20090605) |
Timothy Brownawell wrote:
> I think branch net.venge.monotone.tbrownaw.serve_automate.single_port
> is ready for merging. Instead of putting raw 'automate stdio' on the
> network, this encapsulates it as netcmds and keeps the same initial
> negotiation/authentication sequence (and the same 'bye' sequence) as
> netsync.
I quickly skimmed over the huge diff (around 10k lines...) and while I
haven't yet been able to test / play with it yet, some questions /
observations:
> This splits netsync.cc into multiple files, and splits the negotiation
> and teardown out of the 'session' class. Then it adds 'automate_cmd'
> as an alternative to 'anonymous_cmd'/'auth_cmd' so that network
> clients can request either an automate connection or a netsync
> connection.
The split is definitely welcome, what I miss (and to be honest already
missed before) is some chatter about the roles of the different classes
and their inner workings. I know that monotone's source code is mostly
documented, erm, "as is", so either I read and understand it or it is my
problem, but still I see your refactoring as chance to improve the
documentation of this crucial part of monotone.
> This also adds an "automate remote_stdio <address>" command to make
> use of these changes, and on the server side a
> get_remote_automate_permitted(identity, command, options)
> hook which is checked for each automate command received and defaults
> to "deny everything".
Is the execution of the "l5:stdioe" and "l12:remote_stdioe" commands
over stdio / remote_stdio forbidden (this should be the case)? How are
network errors handled, i.e. are these encoded properly in stdio or do
these come as out-of-band messages? (I'm trying to revive the
out-of-band error handling from the last summit in my spare time because
I really want netsync-over-stdio working now... maybe this rather small
code part could go into your branch as well? monotone.texi states that
"automate remote_stdio" has a --quiet option to supress some of the
netsync output - maybe this could be fixed by that.) How are network
timeouts handled, i.e. do we automatically reconnect an idled but broken
remote_stdio connection? Are there more differences in general between
commands executed in stdio and remote_stdio other than
"interface_version returns the remote mtn interface_version" and "for
actions which require a key the server's key is used" (ie. individual
remote commits are not possible)?
I guess I have more questions later on when I looked at it more in detail.
Thanks in advance,
Thomas.
--
GPG-Key 0x160D1092 | address@hidden | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en
signature.asc
Description: OpenPGP digital signature
Re: [Monotone-devel] merging branch to allow 'automate stdio' over the network, Stephen Leake, 2009/09/29