[darcs-users] Re: playing nice with others

David Roundy droundy at abridgegame.org
Mon May 24 10:04:10 UTC 2004

On Fri, May 21, 2004 at 09:51:20AM -0400, Andrew Pimlott wrote:
> On Fri, May 21, 2004 at 09:34:36AM -0400, Andrew Pimlott wrote:
> > One thing darcs probably can't do now (but rsync can) is using ssh and
> > public keys (one per developer) that can only update a darcs repository.
> > The trick here is that darcs can only run a single, pre-determined
> > command line on the remote machine.  Currenly, darcs uses multiple ssh
> > connections and scp for a push, so this would need to be combined into
> > one ssh connection and a protocol would need to be created for
> > transfering the required data.
> To be more precise, multiple ssh connections are fine, the only change
> is that they all need to run the same command.  A trivial protocol would
> be to send as the first line of this connection the darcs subcommand to
> run.  So for a pull, which requires (at least) an scp and an apply,
> darcs could do something like
>     ssh remote darcs server /path/to/repo
>     inventory
>     <receive file>
>     ssh remote darcs server /path/to/repo
>     apply
>     <send patches>
> server is a new darcs subcommand which takes the repository on which to
> operate as an argument, and the real subcommand to run as the first line
> (of course, it should be careful to only affect the repository given as
> an argument).  inventory of course returns the inventory (probably it
> could be a pseudo-subcommand instead of a real one).
> Then, the repository owner could add a ssh authorized key with command
> "darcs server /path/to/repo".

Hmmmm.  Another possibility would be to support somehow two protocols--one
for reading and one for applying, since

darcs push foo at foobar.com:foo

only *needs* to use scp for reading, not for riding so a command like

darcs push foo at foobar.com:foo a.k.a. http://foobar.com/repos/foo

(no, I'm not seriously suggesting that interface) would only run one
command, which would be darcs apply.  Perhaps the interface should me more

darcs push --to-ssh foo at foobar.com:foo http://foobar.com/repos/foo

or even

darcs push --to-ssh foo at foobar.com:foo droundy at foobar.com:/home/foo/foo

Of course, this wouldn't address the situation where the repository *isn't*
available except via the non-login account, but I'm not sure that's a
situation that ever occurs in practice.
David Roundy

More information about the darcs-users mailing list