Re: [Monotone-devel] usher documentation

2015-11-30 Thread Timothy Brownawell

On 11/27/2015 07:03 AM, Hendrik Boom wrote:

I'm specfically looking to find out how to get usher to reread the
configuration file.

It tries to be a good Unix daemon, and catches SIGHUP for this. There's
also a command thru usherctl.

Either it didn't work, or I don't know how to SUGHUP.

I tried kill -1 

After that the usher process was still running, but I couldn't connect to
it.
Actually killing it completely and then restarting it from scratch made
it work again.  Upon restarting, of course it read the new configuration.

...yep, it's broken. :(

I pushed a couple new revisions on nvm.contrib.usher, one with a test 
that fails if it hangs on SIGHUP and one that makes that pass.


The last revision 591a8f14... ought to work, or at least to fail 
differently if there are other related problems.



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher documentation

2015-11-27 Thread Hendrik Boom
On Sat, 21 Nov 2015 21:40:06 -0600, Timothy Brownawell wrote:

> On 11/21/2015 07:47 PM, Hendrik Boom wrote:
>> Where does usher documentation hide out now?
> It's in doc/documentation.html . I don't know that this is available
> online anywhere other than thru viewmtn.

Found it in the source code, shich I still had lying around.  Thanks.

> 
>> I'm specfically looking to find out how to get usher to reread the
>> configuration file.
> It tries to be a good Unix daemon, and catches SIGHUP for this. There's
> also a command thru usherctl.

Either it didn't work, or I don't know how to SUGHUP.

I tried kill -1 

After that the usher process was still running, but I couldn't connect to 
it.
Actually killing it completely and then restarting it from scratch made 
it work again.  Upon restarting, of course it read the new configuration.

-- hendrik
> 
>> I suppose I can look up the process id with ps, kill it, and reissue
>> the startup command, but is there a more elegant way?
>>
>> I seem wtill to be running usher-0.99, by the way.  I suppose I should
>> look for a newer one, too.
> That's the only version that was ever released, altho I see
> h:net.venge.monotone.contrib.usher does have later activity.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher documentation

2015-11-21 Thread Timothy Brownawell

On 11/21/2015 07:47 PM, Hendrik Boom wrote:

Where does usher documentation hide out now?
It's in doc/documentation.html . I don't know that this is available 
online anywhere other than thru viewmtn.



I'm specfically looking to fine out how to get usher to reread the
configuration file.
It tries to be a good Unix daemon, and catches SIGHUP for this. There's 
also a command thru usherctl.



I suppose I can look up the process id with ps, kill it, and reissue the
startup command, but is there a more elegant way?

I seem wtill to be running usher-0.99, by the way.  I suppose I should
look for a newer one, too.
That's the only version that was ever released, altho I see 
h:net.venge.monotone.contrib.usher does have later activity.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher locks db

2012-05-25 Thread Hendrik Boom
On Fri, 25 May 2012 15:59:51 +, Hendrik Boom wrote:

 Is there a reason for  usher to keep a database locked after the netsync
 is finished?
 
 I just sync'd from my laptop to my server using usher; a subsequent
 attempt to checkout on the server (witout usher, of course) failed
 because the database was locked.


Maybe I just didn't wait long enough?  It's unlocked now, several hours 
later.  Are there time-outs?

--hendrik



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-02-03 Thread Richard Levitte
In message 20110203072618.ga27...@topoi.pooq.com on Thu, 3 Feb 2011 02:26:18 
-0500, Hendrik Boom hend...@topoi.pooq.com said:

hendrik On Wed, Feb 02, 2011 at 12:09:23AM +0100, Richard Levitte wrote:
hendrik  In message 20110201200533.ga8...@topoi.pooq.com on Tue, 1 Feb 2011 
15:05:33 -0500, Hendrik Boom hend...@topoi.pooq.com said:
hendrik  
hendrik  In your configuration file, you have a logdir setting.  You
hendrik  might want to look at the log file there (write.log, I believe).
hendrik 
hendrik Yes.. There is oe now.  I stopped looking because for a while there 
hendrik wasn't one, but one has now showed up.  It seems to be asking me for a 
hendrik passphrase for key ID hend...@topoi.pooq.com {599fffe...}
hendrik 
hendrik Presumably, monotone wants a passphrase wo start up in server mode.
hendrik 
hendrik What's the recommended way to provide one nowadays?  The method
hendrik involving the get_passphrase hook that the tutorial says is deprecated 
hendrik because of insecurity?  It does have to be available when there's no 
hendrik user logged in on the server machine.

When it comes to automatic starts, such as starting a monotone server
under usher, this is of course a problem (as it is with all mechanisms
that require a password).  The solution still involves the
get_passphrase hook (the deprecation is more for users than server
maintainers), and make sure it's appropriately protected, or to use
the expanded version contrib/get_passphrase_from_file.lua, which has
the passphrases it need to cover in a separate file (which should be
appropriately protected).

hendrik  hendrik Or does it misreport a successful fork with an invalid
hendrik  hendrik monotone command as a failed fork?  Or ... (fill in the real
hendrik  hendrik explanation here, please?)
hendrik  
hendrik  Well, an invalid command of some sort WOULD result in a failed fork,
hendrik  so that's definitely a plausible explanation.  Check the log in
hendrik  {logdir}.
hendrik 
hendrik Well, as long as the monotone process gets started, even if it 
hendrik immediately complains and exits, the fork itself has succeeded, so at 
hendrik the very least it's a misleading error message.  But at this point 
hendrik that's just a quibble.

There's a little bit more done to check that the monotone server has
started correctly.  Usher waits for the server to output something and
expects the first line to contain beginning service.  If that
doesn't happen, it will consider the fork a failure, hence the error
message.  Maybe there should be a little bit more text explaining that
one might get more answers from the appropriate log...

Cheers,
Richard

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-02-03 Thread Hendrik Boom
On Thu, Feb 03, 2011 at 10:28:06AM +0100, Richard Levitte wrote:
 In message 20110203072618.ga27...@topoi.pooq.com on Thu, 3 Feb 2011 
 02:26:18 -0500, Hendrik Boom hend...@topoi.pooq.com said:
 
 When it comes to automatic starts, such as starting a monotone server
 under usher, this is of course a problem (as it is with all mechanisms
 that require a password).  The solution still involves the
 get_passphrase hook (the deprecation is more for users than server
 maintainers), and make sure it's appropriately protected, or to use
 the expanded version contrib/get_passphrase_from_file.lua, which has
 the passphrases it need to cover in a separate file (which should be
 appropriately protected).

I don't really see a big difference between the script being protected 
and the separate file being protected.  Unless the file with the scripts 
gets to be huge with a lot of stuff that doesn't need protection, of 
course.

 
 hendrik  hendrik Or does it misreport a successful fork with an invalid
 hendrik  hendrik monotone command as a failed fork?  Or ... (fill in the 
 real
 hendrik  hendrik explanation here, please?)
 hendrik  
 hendrik  Well, an invalid command of some sort WOULD result in a failed 
 fork,
 hendrik  so that's definitely a plausible explanation.  Check the log in
 hendrik  {logdir}.
 hendrik 
 hendrik Well, as long as the monotone process gets started, even if it 
 hendrik immediately complains and exits, the fork itself has succeeded, so 
 at 
 hendrik the very least it's a misleading error message.  But at this point 
 hendrik that's just a quibble.
 
 There's a little bit more done to check that the monotone server has
 started correctly.  Usher waits for the server to output something and
 expects the first line to contain beginning service.  If that
 doesn't happen, it will consider the fork a failure, hence the error
 message.  Maybe there should be a little bit more text explaining that
 one might get more answers from the appropriate log...

Maybe the message should say that the monotone server failed to 
start up correctly.  That, after all, seems to be what's being tested.
When I saw the message that the fork failed, I immediately started 
looking for ways that tthe executable file 'mtn' might not be there or 
have the wrong permissions, etc. etc.

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-02-03 Thread Richard Levitte
In message 20110203160429.ga5...@topoi.pooq.com on Thu, 3 Feb 2011 11:04:29 
-0500, Hendrik Boom hend...@topoi.pooq.com said:

hendrik I don't really see a big difference between the script being
hendrik protected and the separate file being protected.  Unless the
hendrik file with the scripts gets to be huge with a lot of stuff
hendrik that doesn't need protection, of course.

There's another point, and it's that if needed, a script is easier to
upgrade (if need be) if the data is separate.  We've been hitting that
one a couple of times on code.monotone.ca.

hendrik  There's a little bit more done to check that the monotone server has
hendrik  started correctly.  Usher waits for the server to output something 
and
hendrik  expects the first line to contain beginning service.  If that
hendrik  doesn't happen, it will consider the fork a failure, hence the error
hendrik  message.  Maybe there should be a little bit more text explaining 
that
hendrik  one might get more answers from the appropriate log...
hendrik 
hendrik Maybe the message should say that the monotone server failed
hendrik to start up correctly.  That, after all, seems to be what's
hendrik being tested.  When I saw the message that the fork failed, I
hendrik immediately started looking for ways that tthe executable
hendrik file 'mtn' might not be there or have the wrong permissions,
hendrik etc. etc.

It's clearly better to look in the log file.  If mtn can't be started,
it will say execvp failed.

But you make a point here, that some of the messages are a bit cryptic
and really require that you know usher by source...  It could be smart
to make sure they're are a little bit more verbose, and thereby
comprehensible.

Cheers,
Richard

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-02-02 Thread Hendrik Boom
On Wed, Feb 02, 2011 at 12:09:23AM +0100, Richard Levitte wrote:
 In message 20110201200533.ga8...@topoi.pooq.com on Tue, 1 Feb 2011 15:05:33 
 -0500, Hendrik Boom hend...@topoi.pooq.com said:
 
 In your configuration file, you have a logdir setting.  You might want
 to look at the log file there (write.log, I believe).

Yes.. There is oe now.  I stopped looking because for a while there 
wasn't one, but one has now showed up.  It seems to be asking me for a 
passphrase for key ID hend...@topoi.pooq.com {599fffe...}

Presumably, monotone wants a passphrase wo start up in server mode.

What's the recommended way to provide one nowadays?  The method
involving the get_passphrase hook that the tutorial says is deprecated 
because of insecurity?  It does have to be available when there's no 
user logged in on the server machine.

 hendrik Or does it misreport a successful fork with an invalid
 hendrik monotone command as a failed fork?  Or ... (fill in the real
 hendrik explanation here, please?)
 
 Well, an invalid command of some sort WOULD result in a failed fork,
 so that's definitely a plausible explanation.  Check the log in
 {logdir}.

Well, as long as the monotone process gets started, even if it 
immediately complains and exits, the fork itself has succeeded, so at 
the very least it's a misleading error message.  But at this point 
that's just a quibble.

Thanks.

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-02-01 Thread Richard Levitte
In message 20110201200533.ga8...@topoi.pooq.com on Tue, 1 Feb 2011 15:05:33 
-0500, Hendrik Boom hend...@topoi.pooq.com said:

hendrik On Mon, Nov 08, 2010 at 02:04:46PM -0500, Hendrik Boom wrote:
hendrik  
hendrik  I guess now comes the inevitable flood of stupid questions as i try 
to 
hendrik  make sense of the documentation.
hendrik  
hendrik 
hendrik Well, I have usher running, and depending on how I write the 
hendrik configuration file it reports I have one or two servers, called 
write, 
hendrik the one I want to start with, and local, the one inherited form the 
hendrik example in the documentation.
hendrik 
hendrik But when I try to sync with write from another computer, I geet 
hendrik problems:
hendrik 
hendrik hendrik@notlookedfor:~/write/Melinda$ mtn sync 
4691://topoi.pooq.com/write
hendrik enter passphrase for key ID [hend...@notlookedfor.topoi.pooq.com] 
(ad968be7...): 
hendrik mtn: connecting to 4691://topoi.pooq.com/write
hendrik mtn: Received warning from usher: Cannot fork server.
hendrik mtn: peer 4691://topoi.pooq.com/write IO terminated connection in 
working state (error)
hendrik mtn: error: I/O failure while talking to peer 
4691://topoi.pooq.com/write, disconnecting
hendrik hendrik@notlookedfor:~/write/Melinda$ 

In your configuration file, you have a logdir setting.  You might want
to look at the log file there (write.log, I believe).

hendrik Can I get usher to tell me what the command it uses really
hendrik is, so I can try it in isolation?

Basically, if we say that {monotone} and {local} are the values of the
settings with corresponding names, it does this:

{monotone} server --bind=127.0.0.1:{randomport} {local}

hendrik Or does it misreport a successful fork with an invalid
hendrik monotone command as a failed fork?  Or ... (fill in the real
hendrik explanation here, please?)

Well, an invalid command of some sort WOULD result in a failed fork,
so that's definitely a plausible explanation.  Check the log in
{logdir}.

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-01-31 Thread Richard Levitte
In message 20110131075604.ga14...@topoi.pooq.com on Mon, 31 Jan 2011 02:56:04 
-0500, Hendrik Boom hend...@topoi.pooq.com said:

hendrik On Sat, Nov 20, 2010 at 02:22:37AM +0100, Richard Levitte wrote:
hendrik  In message 20101119201102.ga25...@topoi.pooq.com on Fri, 19 Nov 
2010 15:11:02 -0500, Hendrik Boom hend...@topoi.pooq.com said:
hendrik  
hendrik  hendrik (2) Is there a comment convention for the usher config file?
hendrik  
hendrikcomment This is a lengthy comment
hendrik 
hendrik The comment has to be in quotes?
hendrik Are newlines allowed?
hendrik Should this be documented in 
hendrik https://code.monotone.ca/p/contrib/page/UsherDocumentation/
hendrik ?

Quoted from that page:

  The configuration file for usher approximately follows monotone's basic_io 
format

See http://monotone.thomaskeller.biz/docbuild/html/Formats.html#Formats
for the basic_io format.

Maybe the usher documentation should point to the monotone
documentation for this.

Cheers,
Richard

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2011-01-30 Thread Hendrik Boom
On Sat, Nov 20, 2010 at 02:22:37AM +0100, Richard Levitte wrote:
 In message 20101119201102.ga25...@topoi.pooq.com on Fri, 19 Nov 2010 
 15:11:02 -0500, Hendrik Boom hend...@topoi.pooq.com said:
 
 hendrik (2) Is there a comment convention for the usher config file?
 
   comment This is a lengthy comment

The comment has to be in quotes?
Are newlines allowed?
Should this be documented in 
https://code.monotone.ca/p/contrib/page/UsherDocumentation/
?

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher and older installations...

2010-11-25 Thread Richard Levitte
Actually, never mind that.  A little more mind twisting and I got how
to do this:

 server .catchall.
pattern 
  local --confdir=/etc/monotone --db=/var/lib/monotone/default.mtn 
--no-standard-rcfiles --rcfile=/etc/monotone/hooks.lua 
--keydir=/var/lib/monotone/keys

It plays perfectly together with other stanzas that has different
server names and no pattern prefix :-)

Cheers,
Richard

In message 20101125.104925.114451813.rich...@levitte.org on Thu, 25 Nov 2010 
10:49:25 +0100 (CET), Richard Levitte rich...@levitte.org said:

richard Hey,
richard 
richard I've had a look at usher for a bit, and I was wondering how one would
richard do a smooth transition from having a monotone server to having
richard something that's controlled with usher, and was thinking that a way to
richard do this is to have usher be a transparent drop in replacement.
richard 
richard However, because usher really does require a server name (project
richard name?), complete transparency isn't possible.
richard 
richard So, I was wondering, would this be at all interesting?
richard 
richard I was imagining that a way to configure this would be with a catch all
richard stanza, like this:
richard 
richard server 
richard  local --confdir=/etc/monotone --db=/var/lib/monotone/default.mtn 
--no-standard-rcfiles --rcfile=/etc/monotone/hooks.lua 
--keydir=/var/lib/monotone/keys
richard 
richard (this is, by the way, how I'd set up usher so it could replace the
richard monotone server on Debian that's installed with the monotone-server
richard package)
richard 
richard It is, of course, possible to do with a stanza like this:
richard 
richard  server 
richard pattern *
richard   local --confdir=/etc/monotone --db=/var/lib/monotone/default.mtn 
--no-standard-rcfiles --rcfile=/etc/monotone/hooks.lua 
--keydir=/var/lib/monotone/keys
richard 
richard But that only works if the users pull like this:
richard 
richard   mtn pull mtn://host?*
richard 
richard and not with the following (perfectly valid, because there is such a
richard branch in /var/lib/monotone/default.mtn):
richard 
richard   mtn pull mtn://host?cookie
richard 
richard The reason for this is that the pattern in the usher configuration is
richard truly just a pattern prefix, not a true glob...  And the question is,
richard really, how one compares one glob with another.
richard 
richard So the question is, is there a good way to get the transparency that I
richard want?  Is it desirable, not just by me?
richard 
richard Cheers,
richard Richard

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-19 Thread Hendrik Boom
On Mon, Nov 08, 2010 at 02:04:46PM -0500, Hendrik Boom wrote:
 
 I guess now comes the inevitable flood of stupid questions as i try to 
 make sense of the documentation.

More stupid question.

(1) The listen addr in the sample script is 0.0.0.0:4691.

   The 4691 is the usual monotone port number.

   But I'm not familiar with IP to know what the 0.0.0.0 means.  Does 
   it mean it listens on all interfaces on the machine?

(2) Is there a comment convention for the usher config file?

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-19 Thread Richard Levitte
In message 20101119201102.ga25...@topoi.pooq.com on Fri, 19 Nov 2010 15:11:02 
-0500, Hendrik Boom hend...@topoi.pooq.com said:

hendrik (1) The listen addr in the sample script is 0.0.0.0:4691.
hendrik 
hendrikThe 4691 is the usual monotone port number.
hendrik 
hendrikBut I'm not familiar with IP to know what the 0.0.0.0 means.  Does 
hendrikit mean it listens on all interfaces on the machine?

Yes.

hendrik (2) Is there a comment convention for the usher config file?

  comment This is a lengthy comment

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-10 Thread Timothy Brownawell

On 11/09/2010 10:31 PM, Hendrik Boom wrote:

On Tue, Nov 09, 2010 at 08:50:26PM -0600, Timothy Brownawell wrote:

On 11/08/2010 01:49 PM, Hendrik Boom wrote:

On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:

There is an actual release of usher available now. It's tagged as
usher-0.99 available from
 mtn://monotone.ca/contrib?net.venge.monotone.usher
and there is a tarball available at
 http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz


I did the ./configure, and make, and then I did make test
I got a lot of stuff that looked like errors, but I suspect that the
complete test environment wasn't available on my system.  I don't, to my
knowledge, have a server mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
or is that something the test scripts should have set up?


. It works on at least Debian and FreeBSD.


Using a Debian stable running on a 64-bit AMD64.


It wants socat installed, and it doesn't properly handle when monotone
sends the query string as part of the server name (it shouldn't do that
and 0.99 doesn't, but I think 0.48 does). It really should handle that,
and test against multiple monotone versions if available...


If I understand you correctly, this is just a problem with the test
suite, and not with usher itself?  So I can just proceed to use usher
without bothering with the tests?


Yes.


Of course, to be sure, I should install socat and repeat.  And if I
still have trouble, try with mtn 0.99?

Is sending the query string as part of the server name a problem for
usher, or just for the test suite?


It's a problem for usher itself, I'll try to get it fixed in the next 
day or two.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-09 Thread Timothy Brownawell

On 11/08/2010 01:49 PM, Hendrik Boom wrote:

On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:

There is an actual release of usher available now. It's tagged as
usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher
and there is a tarball available at
http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz


I did the ./configure, and make, and then I did make test
I got a lot of stuff that looked like errors, but I suspect that the
complete test environment wasn't available on my system.  I don't, to my
knowledge, have a server mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
or is that something the test scripts should have set up?


. It works on at least Debian and FreeBSD.


Using a Debian stable running on a 64-bit AMD64.


It wants socat installed, and it doesn't properly handle when monotone 
sends the query string as part of the server name (it shouldn't do that 
and 0.99 doesn't, but I think 0.48 does). It really should handle that, 
and test against multiple monotone versions if available...


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-09 Thread Timothy Brownawell

On 11/08/2010 01:04 PM, Hendrik Boom wrote:

On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:

There is an actual release of usher available now. It's tagged as
usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher
and there is a tarball available at
http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz
. It works on at least Debian and FreeBSD.

You can also browse the source at
http://code.monotone.ca/p/contrib/source/tree/t:usher-0.99/
and see the documentation at

http://code.monotone.ca/p/contrib/source/file/t:usher-0.99/doc/documentation.html


I guess now comes the inevitable flood of stupid questions as i try to
make sense of the documentation.

I'm not clear what happens to authentication.  Have I messed something?

The example configuration has the line

monotonemtn -k my_key

This suggests to me that the various monotones in the herd are going to
be performing actions fot the user whose key is my_key.  What happens
to the identity of the remote user who is initiating the sync operation?


That's the server key, the same as you give to mtn serve. The remote 
user still authenticates with their own key; this is the key the server 
uses to authenticate to them.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-09 Thread Timothy Brownawell

On 11/08/2010 12:36 PM, Hendrik Boom wrote:


Well, I did download the tarball,


http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz


and untarred it.  The README file says

The documentation is in doc/documentation.html.

But there is no doc directory to be found in the tarball.


Looks like I forgot to put it in EXTRA_DIST to have it included in the 
tarball, so it's only in the source tree.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-09 Thread Hendrik Boom
On Tue, Nov 09, 2010 at 08:50:26PM -0600, Timothy Brownawell wrote:
 On 11/08/2010 01:49 PM, Hendrik Boom wrote:
 On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:
 There is an actual release of usher available now. It's tagged as
 usher-0.99 available from
 mtn://monotone.ca/contrib?net.venge.monotone.usher
 and there is a tarball available at
 http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz

 I did the ./configure, and make, and then I did make test
 I got a lot of stuff that looked like errors, but I suspect that the
 complete test environment wasn't available on my system.  I don't, to my
 knowledge, have a server mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
 or is that something the test scripts should have set up?

 . It works on at least Debian and FreeBSD.

 Using a Debian stable running on a 64-bit AMD64.

 It wants socat installed, and it doesn't properly handle when monotone  
 sends the query string as part of the server name (it shouldn't do that  
 and 0.99 doesn't, but I think 0.48 does). It really should handle that,  
 and test against multiple monotone versions if available...

If I understand you correctly, this is just a problem with the test 
suite, and not with usher itself?  So I can just proceed to use usher 
without bothering with the tests?

Of course, to be sure, I should install socat and repeat.  And if I 
still have trouble, try with mtn 0.99?

Is sending the query string as part of the server name a problem for 
usher, or just for the test suite?

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-08 Thread Hendrik Boom
On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:
 There is an actual release of usher available now. It's tagged as
 usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher

This is what I've been waiting for!  But my browser had other ideas ...

 You can also browse the source at
http://code.monotone.ca/p/contrib/source/tree/t:usher-0.99/
 and see the documentation at

 http://code.monotone.ca/p/contrib/source/file/t:usher-0.99/doc/documentation.html

Whe I enter this URL into my iceweasel browser, it tell me:

You have chosen to open

   * documentation.html

 which is a: HTML Text
 from: http://code.monotone.ca

What should iceweasel do with this file?

* Open with [ /usr/bin/galeon (default) ]
* Save File
* Do this automatically for files like this from now on.

 [ X cancel ] [ OK ]

The drop-down menu that suggests using galeon (another browser) 
presents me to choose between
   [ /usr/bin/galeon (default) ]
and
   Other...

Is this weird, or what?  Iceweasel not knowing what to do with HTML?  
And suggesting handing it over to another browser?


Well, I did download the tarball, 

http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz

and untarred it.  The README file says 

The documentation is in doc/documentation.html.

But there is no doc directory to be found in the tarball.

Of course, when in the browser I select 'save file' and tell it where to 
put it, it saves it away nicely.  Then iceweasel has no trouble showing 
me the contents of the saved file, which appears to be -- what else? -- 
documentation!

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-08 Thread Hendrik Boom
On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:
 There is an actual release of usher available now. It's tagged as
 usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher
 and there is a tarball available at
http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz
 . It works on at least Debian and FreeBSD.
 
 You can also browse the source at
http://code.monotone.ca/p/contrib/source/tree/t:usher-0.99/
 and see the documentation at

 http://code.monotone.ca/p/contrib/source/file/t:usher-0.99/doc/documentation.html

I guess now comes the inevitable flood of stupid questions as i try to 
make sense of the documentation.

I'm not clear what happens to authentication.  Have I messed something?

The example configuration has the line

monotonemtn -k my_key

This suggests to me that the various monotones in the herd are going to 
be performing actions fot the user whose key is my_key.  What happens 
to the identity of the remote user who is initiating the sync operation? 

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-08 Thread Hendrik Boom
On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:
 There is an actual release of usher available now. It's tagged as
 usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher
 and there is a tarball available at
http://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz

I did the ./configure, and make, and then I did make test
I got a lot of stuff that looked like errors, but I suspect that the 
complete test environment wasn't available on my system.  I don't, to my 
knowledge, have a server mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
or is that something the test scripts should have set up?

 . It works on at least Debian and FreeBSD.

Using a Debian stable running on a 64-bit AMD64.

-- hendrik
make  check-TESTS
make[1]: Entering directory `/farhome/hendrik/dn/usher/usher-0.99'
TESTDIR=/farhome/hendrik/dn/usher/usher-0.99/test-dir
Running test test1...
Copying scripts...
scripts
scripts/foobar.sh
bound to 127.0.0.1:23345
bound to 127.0.0.1:8691
Testing: serve example 127.0.0.1:25436
Testing: multipull 3 mtn://HOST/prjek-s?net.prjek.separate
mtn: misuse: database 
/farhome/hendrik/dn/usher/usher-0.99/test-dir/test1/example.mtn does not exist
mtn: setting default server to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: setting default branch include pattern to 'net.prjek.separate'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: Received warning from usher: No server named 'prjek-s?net.prjek.separate'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek-s?net.prjek.separate, disconnecting
mtn: setting default server to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: setting default branch include pattern to 'net.prjek.separate'
Testing: multipull 3 'mtn://HOST/prjek?net.prjek.{fnord,foobar}'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: Received warning from usher: No server named 'prjek-s?net.prjek.separate'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek-s?net.prjek.separate, disconnecting
mtn: setting default server to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: setting default branch include pattern to 'net.prjek.separate'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek-s?net.prjek.separate
mtn: Received warning from usher: No server named 'prjek-s?net.prjek.separate'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek-s?net.prjek.separate, disconnecting
mtn: setting default server to 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: setting default branch include pattern to 'net.prjek.{fnord,foobar}'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: Received warning from usher: No server named 
'prjek?net.prjek.{fnord,foobar}'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}, disconnecting
mtn: setting default server to 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: setting default branch include pattern to 'net.prjek.{fnord,foobar}'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: Received warning from usher: No server named 
'prjek?net.prjek.{fnord,foobar}'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}, disconnecting
Testing: multipull 3 mtn://HOST/example?org.example
mtn: setting default server to 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: setting default branch include pattern to 'net.prjek.{fnord,foobar}'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}
mtn: Received warning from usher: No server named 
'prjek?net.prjek.{fnord,foobar}'
mtn: error: I/O failure while talking to peer 
mtn://127.0.0.1:8691/prjek?net.prjek.{fnord,foobar}, disconnecting
mtn: setting default server to mtn://127.0.0.1:8691/example?org.example
mtn: setting default branch include pattern to 'org.example'
mtn: setting default branch exclude pattern to ''
mtn: doing anonymous pull; use -kKEYNAME if you need authentication
mtn: connecting to mtn://127.0.0.1:8691/example?org.example
mtn: Received warning from usher: No server named 'example?org.example'
mtn: error: I/O failure while talking to peer 

Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-08 Thread Thomas Keller
Am 08.11.10 19:36, schrieb Hendrik Boom:
 On Fri, Nov 05, 2010 at 11:46:03PM -0500, Timothy Brownawell wrote:
 There is an actual release of usher available now. It's tagged as
 usher-0.99 available from
mtn://monotone.ca/contrib?net.venge.monotone.usher
 
 This is what I've been waiting for!  But my browser had other ideas ...
 
 You can also browse the source at
http://code.monotone.ca/p/contrib/source/tree/t:usher-0.99/
 and see the documentation at

 http://code.monotone.ca/p/contrib/source/file/t:usher-0.99/doc/documentation.html
 
 Whe I enter this URL into my iceweasel browser, it tell me:
 
 You have chosen to open
 
* documentation.html
 
  which is a: HTML Text
  from: http://code.monotone.ca
 
 What should iceweasel do with this file?
 
 * Open with [ /usr/bin/galeon (default) ]
 * Save File
 * Do this automatically for files like this from now on.
 
  [ X cancel ] [ OK ]
 
 The drop-down menu that suggests using galeon (another browser) 
 presents me to choose between
[ /usr/bin/galeon (default) ]
 and
Other...
 
 Is this weird, or what?  Iceweasel not knowing what to do with HTML?  
 And suggesting handing it over to another browser?

Its because individual files are represented with Content-disposition:
attachment and that makes the browser open up the save as dialog. I
linked the 0.99 version of the documentation now with a wiki page where
you can just view it:

http://code.monotone.ca/p/contrib/page/UsherDocumentation/

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-06 Thread Hendrik Boom
On Sat, Nov 06, 2010 at 06:36:38AM +0100, Richard Levitte wrote:
 This is a piece of software I'd like to see debianised...
 
 I see there's an ld debian branch...

I wonder whether it should be a replacement for 
monotone-server.  In function, if not in name.

-- hendrik

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher 0.99 release (name-based virtual hosting for monotone)

2010-11-05 Thread Richard Levitte
This is a piece of software I'd like to see debianised...

I see there's an ld debian branch...

Cheers,
Richard

In message 4cd4dd8b.4080...@prjek.net on Fri, 05 Nov 2010 23:46:03 -0500, 
Timothy Brownawell tbrow...@prjek.net said:

tbrownaw There is an actual release of usher available now. It's tagged as
tbrownaw usher-0.99 available from
tbrownawmtn://monotone.ca/contrib?net.venge.monotone.usher
tbrownaw and there is a tarball available at
tbrownawhttp://mtn-host.prjek.net/projects/webhost/files/usher-0.99.tar.gz
tbrownaw . It works on at least Debian and FreeBSD.
tbrownaw 
tbrownaw You can also browse the source at
tbrownawhttp://code.monotone.ca/p/contrib/source/tree/t:usher-0.99/
tbrownaw and see the documentation at
tbrownaw
http://code.monotone.ca/p/contrib/source/file/t:usher-0.99/doc/documentation.html
tbrownaw 
tbrownaw There will be a 1.0 release around the same time as monotone 1.0.
tbrownaw 
tbrownaw -- 
tbrownaw Timothy
tbrownaw 
tbrownaw Free public monotone hosting: http://mtn-host.prjek.net

-- 
Richard Levitte rich...@levitte.org
http://richard.levitte.org/

Life is a tremendous celebration - and I'm invited!
-- from a friend's blog, translated from Swedish

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-06-24 Thread Thomas Keller
Am 11.06.2010 00:26, schrieb Timothy Brownawell:
 On 06/09/2010 07:21 AM, Thomas Keller wrote:
 Am 17.04.2010 17:39, schrieb Timothy Brownawell:
 On 04/15/2010 02:13 AM, Thomas Keller wrote:
 Let's concentrate first to put usher in a release-capable state so
 packagers (like me :) can pick it up. If it packaged I'll have a much
 easier way to convince the guys over there at indefero some time to
 install and configure it as monotone helper for the use case.

 Do you have this still on your schedule somewhere...? Is there anything
 I could help you out with?
 
 I got it so that 'make distcheck' works, so I suppose the only things
 left are making sure it works on *bsd, and then properly documenting
 which monotone client version is required for explicit server names to
 work (right now it's documented as 0.48).

I pushed a couple of documentation changes and other minor things which
should make the first release a bit more sound. Please go ahead and
tweak things further as you like, otherwise I'd propose we should tag
the current state as version 0.1 (or whatever you like) and release it
on the wild.

I thought it might be worthwhile to add companion projects such as
mtn-browse, monotone-viz, guitone, TracMonotone and now usher to
monotone's new download page, so people can easily pick these up
together with monotone's packages. We'd include a short description, a
link to the latest version and and optionally also link to the home page
of the particular project.

Wrt hosting I'd say it would be the easiest if you'd upload the tarball
somewhere on your server or on SF.

Thanks,
Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-06-10 Thread Timothy Brownawell

On 06/09/2010 07:21 AM, Thomas Keller wrote:

Am 17.04.2010 17:39, schrieb Timothy Brownawell:

On 04/15/2010 02:13 AM, Thomas Keller wrote:

Let's concentrate first to put usher in a release-capable state so
packagers (like me :) can pick it up. If it packaged I'll have a much
easier way to convince the guys over there at indefero some time to
install and configure it as monotone helper for the use case.


Seems reasonable.


Hi Tim!

Do you have this still on your schedule somewhere...? Is there anything
I could help you out with?

Thomas.



I got it so that 'make distcheck' works, so I suppose the only things 
left are making sure it works on *bsd, and then properly documenting 
which monotone client version is required for explicit server names to 
work (right now it's documented as 0.48).


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-06-09 Thread Thomas Keller
Am 17.04.2010 17:39, schrieb Timothy Brownawell:
 On 04/15/2010 02:13 AM, Thomas Keller wrote:
 Let's concentrate first to put usher in a release-capable state so
 packagers (like me :) can pick it up. If it packaged I'll have a much
 easier way to convince the guys over there at indefero some time to
 install and configure it as monotone helper for the use case.
 
 Seems reasonable.

Hi Tim!

Do you have this still on your schedule somewhere...? Is there anything
I could help you out with?

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-17 Thread Timothy Brownawell

On 04/15/2010 02:13 AM, Thomas Keller wrote:

Am 15.04.2010 04:50, schrieb Timothy Brownawell:



Finally, what speaks against integrating usher in monotone's base
completly?


As in make it all a single binary? Not sure what the benefit would be,


Well, I haven't looked at the code and its probably too different from
mtn's network code, but I imagined a new proxy mode in `mtn serve`
which would do just what usher does today. And we'd instantly also get a
server-side administrative console within mtn itself to manage the
server's running netsync connections and server setups. But thats
probably too much and too hard for now...


Yeah, the code really is completely different. And probably not as good 
at the moment.



Let's concentrate first to put usher in a release-capable state so
packagers (like me :) can pick it up. If it packaged I'll have a much
easier way to convince the guys over there at indefero some time to
install and configure it as monotone helper for the use case.


Seems reasonable.


and I like the more modular approach. For instance I have a half-written
usher library in C# somewhere, I imagine that sort of thing would be
more difficult if usher was baked into monotone.


Out of interest - what does this library do?


It doesn't do much of anything at the moment. ;)

Mostly it's (meant to end up) like the standalone c++ usher, except with 
the admin interface and serverlist reader replaced with a function-call 
interface. The idea being that it might be easier to integrate with 
something serving a website interface, although it would have the 
downside of needing to interrupt any netsync connections in order to 
change the frontend. Perhaps a better choice would just be to expand the 
admin interface so it can be used to add/delete server definitions, and 
then have a library to wrap that depends on the goals I guess, 
having a single daemon would be easier to set up but more disruptive to 
upgrade than a pair that talk to eachother.



--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: netsync connection info cleanup Was: Re: [Monotone-devel] usher

2010-04-17 Thread Timothy Brownawell

On 04/15/2010 07:59 AM, Thomas Keller wrote:

Am 15.04.2010 13:33, schrieb Thomas Keller:

I played around with [mtn://-style uris] further, there are a couple of serious 
bugs in
this feature. Apparently the uri scheme only works if a port (and may it
only be the standard port 4691) is given and thats also the reason why
the tests don't alert the problem, becase they always run a local mtn
instance on the non-standard port.

Furthermore, known-servers gets the complete URI instead of just the
hostname set when the mtn uri is used:

known-servers: mtn://guitone.thomaskeller.biz:4691
f814415176bf04178c64895b19ef99752159626d
known-servers:
mtn://guitone.thomaskeller.biz:4691?include=net.venge.monotone.guitone
f814415176bf04178c64895b19ef99752159626d

This leads to new entries each time the branch pattern changes only
slightly and means also that the user is alerted of a new server each
time.


It needs to include everything up to the '?' I think. For file: or ssh: 
there could be different databases (on the same host for the case of 
ssh) that you want different patterns for (since it stores this now), 
and the default server would need to include the path if it's file: or 
ssh: .



I don't had the time yet to debug this further, I only re-assured that
parse_uri() itself doesn't seem to be the problem, because port-less
URIs are tested there and the test succeeds.


I started a new branch (net.venge.monotone.connection_info_cleanup)
where I tried to fix some of the issues. mtn://server-style URIs with no
port should work already, also the known-servers problem has been fixed.

However there is a bug in our parse_uri() implementation: If no scheme
(f.e. mtn://) is given, it treats the string as path rather than as
hostname. This leads to the problem that the scheme-less default server
setting we store in the db vars is not treated correctly and that a host
which is entered by the user is now also parsed wrongly.
As I said, I'd rather change the implementation of parse_uri than
forcing the user to pull mtn://monotone.ca instead of just
monotone.ca...


This should work now. parse_uri() will check for things that look like 
only a hostname or ip address and maybe a port, and skip most of the logic.


It also uses everything before the query string in the db vars, and also 
uses that for the 'peer' string in the network session. This is what 
gets sent to the usher, so giving

   mtn://monotone.ca/foobar?include=...
would send mtn://monotone.ca/foobar to the usher where it currently 
sends only the hostname (and the normal way of mtn sy monotone.ca ... 
would still send just the hostname), which should make it possible to 
use usher with neither wildcard dns nor pattern-based dispatch.



I'll try to refactor some of the code afterwards and move the parsing
logic (also for include / exclude patterns) into
netsync_connection_info. I started already by adding a get_port() method
which either returns the default mtn port or a custom port parsed from
the argument.

Thomas.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-15 Thread Thomas Keller
Am 15.04.2010 04:50, schrieb Timothy Brownawell:
 Maybe there is a third way, which would require changes in monotone
 though: what about picking the database / server to use for netsync
 directly from the client? I vaguely remember that we introduced an URL
 schema in monotone a couple of versions ago (0.40 or so) and while its
 nowhere documented beside in NEWS (not even functional in 0.47 for me
 anymore, I get a network error service name resolution failed for:
 mtn, but the lua test still seems to run through),
 
 Huh, that's not good.
 
 ...I don't get that error, but it's treating the whole thing as the
 pattern instead of parsing it out. Different behavior, maybe something's
 uninitialized? Something more to look at, I guess...

I haven't looked into that any further, but I'm putting that on my
agenda. Especially since the unit tests still seem to run through this
might as well be some kind of weird local / shell error (I'm using zsh
here).

 it looks like it
 could be used for that:

 mtn://monotone.ca?include=...exclude=...

 What about expanding this to

 mtn://monotone.ca/server?include=...exclude=...

 and adding some logic the normal mtn server to bail out if the /server
 part is found for a non-usher server?
 
 The server can't tell the difference, so it can't know to bail. But then
 it probably doesn't really matter.

Well, the server part would probably be the same as some kind of new
--server option we introduce for netsync and this needs to be serialized
in the data stream to the server somehow, so of course once the code has
been adapted for that, it should just ignore it. We might have to
introduce another netsync version for this though.

 I'd also look into adding support for these kind of URIs to mtn clone,
 which currently still needs a branch argument.
 
 I suppose that should be
mtn://monotone.ca/server?branch=...
 ?

Out of my head I'd have said use the `include` argument and let clone
check if only one include pattern is given (without expansion syntax),
but it might be better to have a dedicated branch argument for that. The
interesting question is how this argument is interpreted when used in
normal netsync operations - especially when further `include` and
`exclude` arguments are given. We could make it mutual exclusive, i.e.
either let them give a branch argument or a list of include / exclude
patterns, what do you think?

 I suppose this isn't that big a deal,
 might as well just tag current head as a release I guess?

 Thats right - I also wondered if its worthwhile to merge-into-dir usher
 to the main monotone tree and include it in the base distribution. Usher
 makes only very very little sense without monotone and if its packaged
 right with monotone, you would not need to spend time setting up a web
 page, bug tracker, etc pp, but the development of both could be
 synchronized.
 
 Hm. Or do we want a separate branch, with monotone and the various tools
 (usher, viewmtn, guitone, mtn-viz) all merge-into-dir'ed into it?

I don't think thats a good idea, because it puts the burden on the
person which manages this branch to keep all tools compilable and
running together, and at least for mtn-viz this is a problem, because
nobody took up the maintenance from Olivier for this until now.

No, I thought that only merging usher into monotone's dir makes the most
sense, because its a very useful and probably quite often needed
extension for monotone and we could tie both parts better together (f.e.
you wouldn't need to use your own copied basicio class). Just as mtnopt
is part of the distribution today, usher would be another supplement for
multi-database serving.

 Finally, what speaks against integrating usher in monotone's base
 completly?
 
 As in make it all a single binary? Not sure what the benefit would be,

Well, I haven't looked at the code and its probably too different from
mtn's network code, but I imagined a new proxy mode in `mtn serve`
which would do just what usher does today. And we'd instantly also get a
server-side administrative console within mtn itself to manage the
server's running netsync connections and server setups. But thats
probably too much and too hard for now...

Let's concentrate first to put usher in a release-capable state so
packagers (like me :) can pick it up. If it packaged I'll have a much
easier way to convince the guys over there at indefero some time to
install and configure it as monotone helper for the use case.

 and I like the more modular approach. For instance I have a half-written
 usher library in C# somewhere, I imagine that sort of thing would be
 more difficult if usher was baked into monotone.

Out of interest - what does this library do?

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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: 

Re: [Monotone-devel] usher

2010-04-15 Thread Thomas Keller
Am 15.04.2010 09:13, schrieb Thomas Keller:
 Am 15.04.2010 04:50, schrieb Timothy Brownawell:
 Maybe there is a third way, which would require changes in monotone
 though: what about picking the database / server to use for netsync
 directly from the client? I vaguely remember that we introduced an URL
 schema in monotone a couple of versions ago (0.40 or so) and while its
 nowhere documented beside in NEWS (not even functional in 0.47 for me
 anymore, I get a network error service name resolution failed for:
 mtn, but the lua test still seems to run through),

 Huh, that's not good.

 ...I don't get that error, but it's treating the whole thing as the
 pattern instead of parsing it out. Different behavior, maybe something's
 uninitialized? Something more to look at, I guess...
 
 I haven't looked into that any further, but I'm putting that on my
 agenda. Especially since the unit tests still seem to run through this
 might as well be some kind of weird local / shell error (I'm using zsh
 here).

I played around with it further, there are a couple of serious bugs in
this feature. Apparently the uri scheme only works if a port (and may it
only be the standard port 4691) is given and thats also the reason why
the tests don't alert the problem, becase they always run a local mtn
instance on the non-standard port.

Furthermore, known-servers gets the complete URI instead of just the
hostname set when the mtn uri is used:

known-servers: mtn://guitone.thomaskeller.biz:4691
f814415176bf04178c64895b19ef99752159626d
known-servers:
mtn://guitone.thomaskeller.biz:4691?include=net.venge.monotone.guitone
f814415176bf04178c64895b19ef99752159626d

This leads to new entries each time the branch pattern changes only
slightly and means also that the user is alerted of a new server each
time.

I don't had the time yet to debug this further, I only re-assured that
parse_uri() itself doesn't seem to be the problem, because port-less
URIs are tested there and the test succeeds.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


netsync connection info cleanup Was: Re: [Monotone-devel] usher

2010-04-15 Thread Thomas Keller
Am 15.04.2010 13:33, schrieb Thomas Keller:
 I played around with [mtn://-style uris] further, there are a couple of 
 serious bugs in
 this feature. Apparently the uri scheme only works if a port (and may it
 only be the standard port 4691) is given and thats also the reason why
 the tests don't alert the problem, becase they always run a local mtn
 instance on the non-standard port.
 
 Furthermore, known-servers gets the complete URI instead of just the
 hostname set when the mtn uri is used:
 
 known-servers: mtn://guitone.thomaskeller.biz:4691
 f814415176bf04178c64895b19ef99752159626d
 known-servers:
 mtn://guitone.thomaskeller.biz:4691?include=net.venge.monotone.guitone
 f814415176bf04178c64895b19ef99752159626d
 
 This leads to new entries each time the branch pattern changes only
 slightly and means also that the user is alerted of a new server each
 time.
 
 I don't had the time yet to debug this further, I only re-assured that
 parse_uri() itself doesn't seem to be the problem, because port-less
 URIs are tested there and the test succeeds.

I started a new branch (net.venge.monotone.connection_info_cleanup)
where I tried to fix some of the issues. mtn://server-style URIs with no
port should work already, also the known-servers problem has been fixed.

However there is a bug in our parse_uri() implementation: If no scheme
(f.e. mtn://) is given, it treats the string as path rather than as
hostname. This leads to the problem that the scheme-less default server
setting we store in the db vars is not treated correctly and that a host
which is entered by the user is now also parsed wrongly.
As I said, I'd rather change the implementation of parse_uri than
forcing the user to pull mtn://monotone.ca instead of just
monotone.ca...

I'll try to refactor some of the code afterwards and move the parsing
logic (also for include / exclude patterns) into
netsync_connection_info. I started already by adding a get_port() method
which either returns the default mtn port or a custom port parsed from
the argument.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-15 Thread hendrik
On Wed, Apr 14, 2010 at 09:50:08PM -0500, Timothy Brownawell wrote:
 On 04/14/2010 02:29 AM, Thomas Keller wrote:

 Thats right - I also wondered if its worthwhile to merge-into-dir usher
 to the main monotone tree and include it in the base distribution. Usher
 makes only very very little sense without monotone and if its packaged
 right with monotone, you would not need to spend time setting up a web
 page, bug tracker, etc pp, but the development of both could be
 synchronized.

 Hm. Or do we want a separate branch, with monotone and the various tools  
 (usher, viewmtn, guitone, mtn-viz) all merge-into-dir'ed into it?

 Finally, what speaks against integrating usher in monotone's base completly?

 As in make it all a single binary? Not sure what the benefit would be,  
 and I like the more modular approach. For instance I have a half-written  
 usher library in C# somewhere, I imagine that sort of thing would be  
 more difficult if usher was baked into monotone.

Usher can permanently monitor the incoming port, and start monotones on 
specific 
databases as needed (isn't that the way it works now?)  This also means that 
some of 
those specific monotones can be started by users working on that server 
machine, and 
by users activating monotone by other protocols (such as ssh).  There will be 
occasional mutual exclusion, but all these monotone databases remain mostly 
accessible.

This would not be the case if there was just one binary, and just one permanent 
monotone process jealously owning its flock of data bases.

-- hendrik


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-14 Thread Thomas Keller

Hi Tim!

Am 14.04.2010 04:44, schrieb Timothy Brownawell:
 What happens if somebody pulls or pushes changes with com.project* or
 some other wildcard-using pattern to the server? Would this fail because
 neither server would be able to respond? What would happen for a pattern
 like {com.project-1,com.project-2}?
 
 Both would fail. It looks for servers where the server pattern is an
 initial substring of the client's include pattern, and IIRC uses the
 matching one with the longest pattern in the case of multiple matches.

Ok, I thought something similar.

 What is the status of usher currently anyways? I haven't seen an
 official release of it (no tags at least), but it seems to be proven
 stable over the last couple of years. If there would be an offical
 release, packagers would be able to pick it up easier and could provide
 it as tool on top of monotone.
 
 I use a slightly modified version for mtn-host.prjek.net (it gets the
 list of servers by listing a directory instead of directly from a config
 file), and it seems to work well enough. This also uses only the
 hostname to select which server to use, like if you were to only specify
 host and not pattern line in the config file.
 
 The pattern-based dispatch really should be more intelligent I guess,
 expand all the braces and make sure all the parts match the same server
 (and just make for example having com on one server and com.project
 on another be a config error). 

While the DNS-/hostname-based approach seems to be the best way to
distinguish different projects, its not always possible to configure
that easily, even though only a wildcard DNS entry is needed. I'm
currently (seriously) looking into integrating mtn in indefero and they
won't set up a DNS entry just to support another VCS, so pattern
matching is (for now) the only possibility. But given the name clash you
describe above its probably not the best.

Maybe there is a third way, which would require changes in monotone
though: what about picking the database / server to use for netsync
directly from the client? I vaguely remember that we introduced an URL
schema in monotone a couple of versions ago (0.40 or so) and while its
nowhere documented beside in NEWS (not even functional in 0.47 for me
anymore, I get a network error service name resolution failed for:
mtn, but the lua test still seems to run through), it looks like it
could be used for that:

   mtn://monotone.ca?include=...exclude=...

What about expanding this to

   mtn://monotone.ca/server?include=...exclude=...

and adding some logic the normal mtn server to bail out if the /server
part is found for a non-usher server?

I'd also look into adding support for these kind of URIs to mtn clone,
which currently still needs a branch argument.

 I suppose this isn't that big a deal,
 might as well just tag current head as a release I guess?

Thats right - I also wondered if its worthwhile to merge-into-dir usher
to the main monotone tree and include it in the base distribution. Usher
makes only very very little sense without monotone and if its packaged
right with monotone, you would not need to spend time setting up a web
page, bug tracker, etc pp, but the development of both could be
synchronized.
Finally, what speaks against integrating usher in monotone's base completly?

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | 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
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-14 Thread Timothy Brownawell

On 04/14/2010 02:29 AM, Thomas Keller wrote:

While the DNS-/hostname-based approach seems to be the best way to
distinguish different projects, its not always possible to configure
that easily, even though only a wildcard DNS entry is needed. I'm
currently (seriously) looking into integrating mtn in indefero and they
won't set up a DNS entry just to support another VCS, so pattern
matching is (for now) the only possibility. But given the name clash you
describe above its probably not the best.


Makes sense.


Maybe there is a third way, which would require changes in monotone
though: what about picking the database / server to use for netsync
directly from the client? I vaguely remember that we introduced an URL
schema in monotone a couple of versions ago (0.40 or so) and while its
nowhere documented beside in NEWS (not even functional in 0.47 for me
anymore, I get a network error service name resolution failed for:
mtn, but the lua test still seems to run through),


Huh, that's not good.

...I don't get that error, but it's treating the whole thing as the 
pattern instead of parsing it out. Different behavior, maybe something's 
uninitialized? Something more to look at, I guess...



it looks like it
could be used for that:

mtn://monotone.ca?include=...exclude=...

What about expanding this to

mtn://monotone.ca/server?include=...exclude=...

and adding some logic the normal mtn server to bail out if the /server
part is found for a non-usher server?


The server can't tell the difference, so it can't know to bail. But then 
it probably doesn't really matter.



I'd also look into adding support for these kind of URIs to mtn clone,
which currently still needs a branch argument.


I suppose that should be
   mtn://monotone.ca/server?branch=...
?


I suppose this isn't that big a deal,
might as well just tag current head as a release I guess?


Thats right - I also wondered if its worthwhile to merge-into-dir usher
to the main monotone tree and include it in the base distribution. Usher
makes only very very little sense without monotone and if its packaged
right with monotone, you would not need to spend time setting up a web
page, bug tracker, etc pp, but the development of both could be
synchronized.


Hm. Or do we want a separate branch, with monotone and the various tools 
(usher, viewmtn, guitone, mtn-viz) all merge-into-dir'ed into it?



Finally, what speaks against integrating usher in monotone's base completly?


As in make it all a single binary? Not sure what the benefit would be, 
and I like the more modular approach. For instance I have a half-written 
usher library in C# somewhere, I imagine that sort of thing would be 
more difficult if usher was baked into monotone.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] usher

2010-04-13 Thread Timothy Brownawell

On 04/13/2010 07:12 PM, Thomas Keller wrote:


Hi!

I know usher is around for quite a long time now, but I just started
playing with it tonight. One thing I don't quite get is how instance
separation based on pattern matching is supposed to work - imagine you
have these two different setups

server  project-1
pattern com.project-1
local   -d /path/to/project-1.mtn

server  project-2
pattern com.project-2
local   -d /path/to/project-2.mtn

What happens if somebody pulls or pushes changes with com.project* or
some other wildcard-using pattern to the server? Would this fail because
neither server would be able to respond? What would happen for a pattern
like {com.project-1,com.project-2}?


Both would fail. It looks for servers where the server pattern is an 
initial substring of the client's include pattern, and IIRC uses the 
matching one with the longest pattern in the case of multiple matches.



What is the status of usher currently anyways? I haven't seen an
official release of it (no tags at least), but it seems to be proven
stable over the last couple of years. If there would be an offical
release, packagers would be able to pick it up easier and could provide
it as tool on top of monotone.


I use a slightly modified version for mtn-host.prjek.net (it gets the 
list of servers by listing a directory instead of directly from a config 
file), and it seems to work well enough. This also uses only the 
hostname to select which server to use, like if you were to only specify 
host and not pattern line in the config file.


The pattern-based dispatch really should be more intelligent I guess, 
expand all the braces and make sure all the parts match the same server 
(and just make for example having com on one server and com.project 
on another be a config error). I suppose this isn't that big a deal, 
might as well just tag current head as a release I guess?


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher documentation patch

2006-06-20 Thread Richard Levitte - VMS Whacker
In message [EMAIL PROTECTED] on Tue, 20 Jun 2006 19:35:27 +0200, Marcel van 
der Boom [EMAIL PROTECTED] said:

marcel While deploying i updated the usher.txt (README) file.

Patch applied, and on server_manager.cc as well.

Cheers,
Richard

-
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte [EMAIL PROTECTED]
http://richard.levitte.org/

When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up.
-- C.S. Lewis


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: Usher pattern matching (was Re: [Monotone-devel] Usher crashes)

2006-05-14 Thread Jeronimo Pellegrini
On Sat, May 13, 2006 at 11:19:19PM -0500, Timothy Brownawell wrote:
 On Sat, 2006-05-13 at 23:29 -0300, Jeronimo Pellegrini wrote:
  And even if I try to make it match against pattern, it fails,
  because of the way operator== works for struct prefix. Is this
  intentional? Shouldn't it also do partial matches?
 
 It should, and I think now it does.

Yes! It works now. :-)

 As you can probably tell, this hasn't exactly had extensive testing
 since being reorganized. ;-p

That's OK -- we're testing it.
Thanks for writing usher -- it's very useful!

J.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher crashes

2006-05-13 Thread Jeronimo Pellegrini
Also...
I just realized from the email I sent that usher is also not
requiring the USERPASS command befor LIST and STATUS, and probably
before any other command.

Also, I tried to use a wrong username and password, and usher did
not close the connection.

J.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher crashes

2006-05-13 Thread Timothy Brownawell
On Sat, 2006-05-13 at 12:22 -0300, Jeronimo Pellegrini wrote:
 Hi.
 I just compiled usher, and started it:
 
 $ ./usher -m mtn -kmy_key -a 127.0.0.1:1 usher.cfg 

It treats the -m argument as an executable name, not a command line. So
it'll be looking for an execuable named mtn -kmy_key, not looking for
an execuable named mtn and giving the -kmy_key argument. Really I
should probably replace this argument with a line in the config file,
which could allow for this.

 usher.cfg has the following:
 
 
 userpass jp no_I_wont_tell_you
 
 server phd
 host localhost
 pattern info.aleph0.phd*
 local -d /home/jeronimo/monotone/phd.db
 
 server main
 host localhost
 pattern info.aleph0.*
 local -d /home/jeronimo/monotone/main.db
 =
 
 I hope that matching first info.aleph0.phd* and later info.aleph0.*
 is not a problem...

I see it needs better documentation.

It finds a matching server by first looking for one with a correct
'host' line. If there isn't a matching host line, then it looks for a
matching 'pattern' line.

The 'host' line is matched as a prefix of the hostname that the client
is given to talk to, and the 'pattern' line is matched as a prefix of
the include pattern. In each case, it takes the longest one that
matches.

Note that the 'pattern' line is a string prefix of the include pattern,
not a glob.

Also, you still have to provide the pattern argument that the serve
command requires in the 'local' line. And since it sounds like this
argument is going away soon, I'm not going to have it try to guess it.

 Now, from another host:
 
 ==
 $ mtn push rumi
 mtn: connecting to rumi
 mtn: error: I/O failure while talking to peer rumi, disconnecting
 ==
 
 And at rumi, who is running usher:
 
 ==
 Segmentation fault
 ==
 
 I ran usher under gdb (the same command line options were passed), and got 
 this:
 
 =
 Program received signal SIGSEGV, Segmentation fault.
 server_manager::prefix::cmp (this=0xbfffeffc, [EMAIL PROTECTED]) at 
 basic_string.h:269
 269   { return ((reinterpret_cast_Rep* (_M_data()))[-1]); }
 (gdb) where
 #0  server_manager::prefix::cmp (this=0xbfffeffc, [EMAIL PROTECTED]) at 
 basic_string.h:269
 #1  0x0805cee3 in server_manager::prefix::operator== (this=0xbfffeffc, [EMAIL 
 PROTECTED]) at server_manager.cc:55
 #2  0x0806041f in server_manager::connect_to_server (this=0xbfffefd0, [EMAIL 
 PROTECTED], [EMAIL PROTECTED]) at stl_tree.h:176
 #3  0x08056421 in channel::process_selected (this=0x8081810, [EMAIL 
 PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]) at channel.cc:101
 #4  0x080675a9 in main (argc=6, argv=0x8081808) at stl_list.h:135
 ==

This might be fixed now.

 Also, I noticed that usher will start and pretend that everything is OK,
 even if one of the local databases does not exist. Maybe the server
 could exit with an error, or at least issue a warning?

It doesn't actually parse the arguments in the 'local', it just passes
them on to the server. So it can't know there's a problem until the
server fails to start.



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher crashes

2006-05-13 Thread Jeronimo Pellegrini
On Sat, May 13, 2006 at 06:16:36PM -0500, Timothy Brownawell wrote:
 On Sat, 2006-05-13 at 12:22 -0300, Jeronimo Pellegrini wrote:
  Hi.
  I just compiled usher, and started it:
  
  $ ./usher -m mtn -kmy_key -a 127.0.0.1:1 usher.cfg 
 
 It treats the -m argument as an executable name, not a command line. So
 it'll be looking for an execuable named mtn -kmy_key, not looking for
 an execuable named mtn and giving the -kmy_key argument. Really I
 should probably replace this argument with a line in the config file,
 which could allow for this.

Ah. I see...

 I see it needs better documentation.
 
 It finds a matching server by first looking for one with a correct
 'host' line. If there isn't a matching host line, then it looks for a
 matching 'pattern' line.
 
 The 'host' line is matched as a prefix of the hostname that the client
 is given to talk to, and the 'pattern' line is matched as a prefix of
 the include pattern. In each case, it takes the longest one that
 matches.
 
 Note that the 'pattern' line is a string prefix of the include pattern,
 not a glob.
 
 Also, you still have to provide the pattern argument that the serve
 command requires in the 'local' line. And since it sounds like this
 argument is going away soon, I'm not going to have it try to guess it.

Well, I can see lots of problems with what I was doing!

 This might be fixed now.

Yep. It doesn't crash anymore! :-)

Thanks a lot, Tim!

Right now I just need to find out why usher can't find the server, but
it will eventually work. :-)

J.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher crashes

2006-05-13 Thread Jeronimo Pellegrini
 Right now I just need to find out why usher can't find the server, but
 it will eventually work. :-)

I found it.

If I use:

server main
host localhost
pattern info.aleph0
local -d /home/jeronimo/monotone/main.db *

And try to sync brahch:

info.aleph0.my_branch

Neither if I try:

server main
host localhost
pattern info.aleph0.*
local -d /home/jeronimo/monotone/main.db *


But if I use:
pattern info.aleph0.my_branch

it works.

It will not match. So it seems that I need to specify each branch in one
separate server?

I took a look at server_manager.cc, and found this:

  if (!srv  !pattern.empty()  !by_pattern.empty())
{
  i = --by_pattern.upper_bound(pattern);
  if (i-first == prefix(host))
srv = i-second;
}

Is the inner if correct? Shouldn't it match against pattern, instead of
host? 

Also, I tried to change host to pattern, but it still doesn't match
my_branch (as above). I don't understand exactly what prefix::operator==
does.

I just started ot read the code, so I may be writing a lot of nonsense...

J.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Usher pattern matching (was Re: [Monotone-devel] Usher crashes)

2006-05-13 Thread Jeronimo Pellegrini
OK, I'll compile the problems I found before:

 If I use:

 server main
 host localhost
 pattern info.aleph0
 local -d /home/jeronimo/monotone/main.db *

 And try to sync brahch   info.aleph0.my_branch

It won't work.

 Neither if I try:
 pattern info.aleph0.*

 But if I use:
 pattern info.aleph0.my_branch

It works, but only if I fix line 185 of server_manager::connect_to_server
where it  matches pattern against host:

if (!srv  !pattern.empty()  !by_pattern.empty())
{
  i = by_pattern.lower_bound(pattern);
  if (i != by_pattern.end()  i-first == prefix(host))
  

And even if I try to make it match against pattern, it fails,
because of the way operator== works for struct prefix. Is this
intentional? Shouldn't it also do partial matches?

J.



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: Usher pattern matching (was Re: [Monotone-devel] Usher crashes)

2006-05-13 Thread Timothy Brownawell
On Sat, 2006-05-13 at 23:29 -0300, Jeronimo Pellegrini wrote:
 OK, I'll compile the problems I found before:
 
  If I use:
 
  server main
  host localhost
  pattern info.aleph0
  local -d /home/jeronimo/monotone/main.db *
 
  And try to sync brahch   info.aleph0.my_branch
 
 It won't work.
 
  Neither if I try:
  pattern info.aleph0.*
 
  But if I use:
  pattern info.aleph0.my_branch
 
 It works, but only if I fix line 185 of server_manager::connect_to_server
 where it  matches pattern against host:
 
 if (!srv  !pattern.empty()  !by_pattern.empty())
 {
   i = by_pattern.lower_bound(pattern);
   if (i != by_pattern.end()  i-first == prefix(host))
   

Um, that should be fixed now.

 And even if I try to make it match against pattern, it fails,
 because of the way operator== works for struct prefix. Is this
 intentional? Shouldn't it also do partial matches?

It should, and I think now it does.

As you can probably tell, this hasn't exactly had extensive testing
since being reorganized. ;-p

Tim




___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Usher difficulties

2006-04-21 Thread Richard Levitte - VMS Whacker
In message [EMAIL PROTECTED] on Mon, 10 Apr 2006 16:09:52 +0200 (CEST), 
Richard Levitte - VMS Whacker [EMAIL PROTECTED] said:

richard In message [EMAIL PROTECTED] on Mon, 10 Apr 2006 09:48:49 -0400, 
Ethan Blanton [EMAIL PROTECTED] said:
richard 
richard eblanton Second, with both the usher from 0.26-pre3 and the
richard eblanton usher from 0.26 as released, I am having trouble
richard eblanton serving some databases which worked in 0.26-pre2.
richard eblanton I am serving three databases from three 'local'
richard eblanton stanzas (net.elitists.elb.configs.*,
richard eblanton edu.purdue.cs.gsb.guide.*, and
richard eblanton net.elitists.ical.*), and when I try to connect to
richard eblanton net.elitists.elb.configs.fvwm, usher spawns a
richard eblanton server for net.elitists.ical.* and connects my pull
richard eblanton to that server -- needless to say, this doesn't
richard eblanton work.  A copy of my usher server file is likewise
richard eblanton attached.
richard 
richard Aha, yeah, the trouble is that usher was originally built to
richard handle the distinction between different sub-servers by
richard hostname only, and you use the same hostname for all of them.
richard I did make a change so it would accept several stanzas with
richard the same hostname, but it seems I didn't look closely enough
richard at the the rest of the code, so you're currently stuck with
richard having to separate the sub-servers at a hostname level.
richard 
richard I have the same goal as you, to have sub-servers
richard differentiated by branch patterns as well as hostnames, so
richard I'll take a closer look in a few days and see what can be
richard done with it.

I've been experimenting and thinking, and figured that I hadn't
entirely understood how usher was meant to work.  Basically, what I
said is still how it is, for entries that have a hostname, they will
be selected by hostname only.  However, IF there is no entry with a
matching hostname, usher will also check for a matching pattern.  And
this is actually the way it should be, usher is primarly built to
provide so called virtual hosting, and only uses virtual patterns as
a fallback.

I've made a few changes in usher.cc, so it will tell you a bit better
what happens, and I think that will be the extent of what I do with
it.

BTW, the fix I provided earlier wasn't at all about being able to have
several entries with the same hostname, it was about avoiding
segfaults when usher removed hosts or patterns from earlier entries
when a new one with the same hostname of pattern was loaded.

Cheers,
Richard

-
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte [EMAIL PROTECTED]
http://richard.levitte.org/

When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up.
-- C.S. Lewis


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel