monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] netsync and --exclude (was: [ANNOUNCE] monotone 0.2


From: Nathaniel Smith
Subject: Re: [Monotone-devel] netsync and --exclude (was: [ANNOUNCE] monotone 0.21 released)
Date: Fri, 22 Jul 2005 21:57:38 -0700
User-agent: Mutt/1.5.9i

On Thu, Jul 21, 2005 at 12:31:19PM +0200, Peter Simons wrote:
> Nathaniel Smith writes:
> 
>  >> protocol error while processing peer localhost:
>  >>   'received network error: access to branch 'foo.bar' denied by server
> 
>  > Hmm, well, the situation is a bit tricky, because the
>  > server and client have to agree on what they're syncing,
>  > or else things become inefficient.
> 
> I'm not quite sure whether I understand why this problem is
> tricky to solve. Monotone versions prior to 0.21 behaved exactly
> the way I need it: Issue a warning, go on synchronizing those
> branches that haven't been excluded. The new release is the first
> one to abort the connection entirely in case a branch has been
> excluded.

Umm... not sure what you mean here? :-)  0.19 didn't have this
functionality at all; collections were all-or-nothing.  0.20 did have
this functionality, but there was no --exclude option, so you couldn't
_get_ at it... I guess in 0.20 there was a somewhat similar effect if
you only had read permission to some of the branches you requested, it
would continue anyway; this was one of the reasons that 0.20 would
sometimes mysteriously use lots of bandwidth before telling you that
nothing had changed.

>  > The merkle tree set synchronization algorithm has costs that
>  > grow with the size of the difference between the two sets; so
>  > setting up two sets with lots of irrelevant differences makes
>  > your performance really bad for no reason.
> 
> I'm willing to live with that. The number of branches I exclude
> is small, I doubt the performance penality would be noticeable.

Hmm, I understand, but I'm not as sure that everyone who uses
monotone would agree?

>  > Why do you have lots of servers?
> 
> Now I am confused. Why would I use Monotone if I _hadn't_ lots of
> different servers? If I had only one, I'd be using Subversion,
> right? ;-)

Umm, I don't know.  I like to think that Monotone is kinda nice even
if you do normally only use one server.  I know _I_ normally only use
one server, anyway :-).

Certainly we think the capability to switch between servers is
important in various cases -- you can have multiple servers on DNS
round-robin, you can do the occasional direct sync with a friend, you
can switch to another server when your usual one is down for repairs
-- and besides, it's more elegant this way.  But none of that is the
same as having _use cases_ for _regularly_ sync'ing with multiple
servers, each of whom have different --exclude configurations.  My
imagination is too poor to figure out in what situation that
particular setup would be the natural thing to do; so what I'm asking
for is a description of the situation you find yourself in, so I can
have it in the back of my head when thinking about what sort of UIs
are helpful, etc...

I especially am not sure why you want to use --exclude on the server
at all, actually :-); I considered taking out the server pattern stuff
entirely in 0.20, on the theory that people would all end up just
serve'ing '*' and using the read hooks for finer-grained control.

It would especially be helpful in figuring out how to balance
people's different desires here...

-- Nathaniel

-- 
"...these, like all words, have single, decontextualized meanings: everyone
knows what each of these words means, everyone knows what constitutes an
instance of each of their referents.  Language is fixed.  Meaning is
certain.  Santa Claus comes down the chimney at midnight on December 24."
  -- The Language War, Robin Lakoff




reply via email to

[Prev in Thread] Current Thread [Next in Thread]