Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Nathaniel Smith
On Fri, Oct 12, 2007 at 11:12:15AM +0200, Markus Schiltknecht wrote:
> Nathaniel Smith wrote:
> >If anything, it's probably on the late side to be organizing for
> >January/February, so people probably would want to get on it quick...
> 
> Yeah, better late than never ;-)   Besides, are there any good reasons 
> that it must be Jan/Feb?  We could still do in in March or even April, no?

No, no particular reason -- I think last year it just happened then
because by the time we started planning it was too late to do it
before Jan/Feb, and there was no reason to hold it off until after
that.

On further thought, a time after March 22 would be much better for me
personally, because I'm a teaching assistant for the winter quarter
this year, so that makes it quite tricky for me to get away between
January 4 and March 22 (would need to find someone else to take my
class, couldn't do it at all during test times, etc.).

-- Nathaniel

-- 
Electrons find their paths in subtle ways.


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


Re: [Monotone-devel] [BUG] merge_into_workspace fails on second merge attempt

2007-10-12 Thread Nathaniel Smith
On Fri, Oct 12, 2007 at 02:32:19PM +0200, Ralf S. Engelschall wrote:
> -I(left_uncommon_ancestors.find(left_rid) != 
> left_uncommon_ancestors.end());
[...]
> ...the "merge_into_workspace" command works just fine. I've reviewed
> even the results and everything looks just fine. Unfortunately, I still
> do not _understand_ why this assertion exists and why it is false only
> for "merge_into_workspace". But I guess this assertion is from times
> before "merge_into_workspace" was invented and the workflow in the
> implementation of "merge_into_workspace" results in a special case which
> triggers the assertion. I don't know whether one can really _safely_
> remove the assertion or not. Can somebody shed some light on us here?

Ah, I see.  Here's what's going on: "left_uncommon_ancestors" is the
set of all revisions that are ancestors of the left revision being
merged, but are not ancestors of the right revision being merged.
(Compare to the notion of "common ancestors"; every ancestor of the
revisions being merged is exactly one of common, left uncommon, or
right uncommon.)

Asserting that left_rid is in left_uncommon_ancestors, then, is
asserting that left_rid is an ancestor of itself (which it is by
definition) and that it is not an ancestor of right_rid (which is the
point that's causing the problem).

It does not make sense to merge an ancestor with its own descendent --
the descendent *already* contains everything that the ancestor has,
plus it creates pointless merge nodes in the graph that prevent
branches from converging.  The other merge commands with more polished
UIs contain special case code to detect this and skip entering the
actual merge engine; merge_into_workspace ATM does not.  (For
instance, check out the code follow "// check for special cases" on
line 510 of cmd_merging.cc.)

So the short-term workaround for this case would be to just use
'propagate otherbranch thisbranch' or 'cert h:otherbranch branch
thisbranch' instead of 'workspace_merge otherbranch thisbranch'.

The long term solution is probably:
  -- if someone tries to do a workspace merge like this, then print a
 message and just update to the descendent version
  -- teach commit that if you try to do a commit with no changes, but
 the branch has changed versus the parent, then put that branch
 cert on the parent instead of just erroring out.

-- Nathaniel

-- 
Eternity is very long, especially towards the end.
  -- Woody Allen


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


Re: [Monotone-devel] PCRE landed

2007-10-12 Thread Julio M. Merino Vidal


On Oct 10, 2007, at 5:49 PM, Zack Weinberg wrote:


On 10/10/07, Julio M. Merino Vidal <[EMAIL PROTECTED]> wrote:
1) The trouble of users with external boost libary versions goes  
away


There will most likely be no trouble, I think.  If monotone uses no
binary libraries from Boost (as is the case now), the user will only
need to have an unpacked boost tarball somewhere in his file system
and point the compiler to use the include files from there.  He does
not have to deal with Boost.Build at all (e.g. not build binary
libraries nor install anything into his system), which is the thing
that uses to cause a lot of trouble.


Oh, excellent.  Would you be willing to update the installation
instructions, since you know how it's done?


Done!

--
Julio M. Merino Vidal <[EMAIL PROTECTED]>




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


[Monotone-devel] Re: Monotone Summit 2008

2007-10-12 Thread Thomas Keller
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Thomas Keller schrieb:
> Is there a general interest of doing another summit next year - maybe
> again in January/February?

I've created a wiki page to collect more ideas and dates:

http://www.venge.net/mtn-wiki/MtnSummit2008

Thomas.

- --
only dead fish swim with the stream: http://thomaskeller.biz/blog
Am Anfang war das Wort: http://www.schäuble-muss-weg.de
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHD3Tuaf7NlBYNEJIRAizzAJ4n4MpDSP76OpehIaoKr8Zd/c0tRACgzkJ7
Bgmb9pNwEaNEa49sFGVTvKE=
=6F07
-END PGP SIGNATURE-


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


Re: [Monotone-devel] [BUG] merge_into_workspace fails on second merge attempt

2007-10-12 Thread Ralf S. Engelschall
On Fri, Oct 12, 2007, Ralf S. Engelschall wrote:

> On Fri, Oct 12, 2007, Ralf S. Engelschall wrote:
> > On Thu, Sep 27, 2007, Ralf S. Engelschall wrote:
> > [...]
> > | mtn: fatal: std::logic_error: roster.cc:1808: invariant 
> > 'I(left_uncommon_ancestors.find(left_rid) != 
> > left_uncommon_ancestors.end())' violated
> > [...]
>
> Ok, with the following small script...
>
> --
> #!/bin/sh -x
> mtn=${1+/u/rse/prj/monotone/src/mtn}
> cd /tmp
> rm -f /tmp/test.db
> $mtn --db=/tmp/test.db db init
> rm -rf test
> mkdir test
> cd test
> $mtn --db=/tmp/test.db setup -b test
> echo "foo" >test.txt
> $mtn add test.txt
> $mtn ci -m "commit 1 (foo)"
> echo "bar" >test.txt
> $mtn ci -m "commit 2 (bar)"
> echo "baz" >test.txt
> $mtn ci -m "commit 3 (baz)" -b test.tmp
> echo "baz2" >test.txt
> $mtn ci -m "commit 4 (baz2)"
> $mtn up -r h:test
> MTN_MERGE=diffutils MTN_MERGE_DIFFUTILS=partial \
> $mtn merge_into_workspace h:test.tmp
> --

And one more related bug: if you comment out the two lines...

  $mtn ci -m "commit 2 (bar)"
  echo "baz" >test.txt

...in the above script (so that the main branch has just a single
initial revision), another assertion fires:

  mtn: fatal: std::logic_error: graph.cc:87: invariant 'I(!next.empty())' 
violated

So, we have at least two major problems here which make
"merge_into_workspace" effectively totally broken and hence
unfortunately unusable :-(

   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com



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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Siegfried Herbold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus Schiltknecht wrote:
> Hello Siegfried,
> 
> Siegfried Herbold wrote:
>> Maybe there is a location of the same size like Google with:
>> - - - free (firewall/charge) internet
>> - - - two projection surfaces, but only one mounted beamer (one
>> unmounted beamer to organize)
>> - - - one flip chart
>> - - - open for us 24/7
>> - - - free of charge
> 
> Can you be a little more specific, i.e. where is that room? Close to an
> airport? At least somewhat attractive for visitors?

TechnoloieCenter Wuppertal, Germany (www.w-tec.de), 0.5h by car / 1.1h by train 
from international Airport Duesseldorf (DUS)
> 
>> There is no problem with public transport (200 meters from location)
> 
> In most cities in Europe, that's not much of a problem, I guess.
> 
> Regards
> 
> Markus
> 

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHD24papNh/bw3S9oRAqHYAKCrolYiCOFTTIgog7hpO1smRyHf3gCfUqI6
1RoK3uRv/dtnEZcHsiHXik4=
=Onsn
-END PGP SIGNATURE-


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


Re: [Monotone-devel] [BUG] merge_into_workspace fails on second merge attempt

2007-10-12 Thread Ralf S. Engelschall
On Fri, Oct 12, 2007, Ralf S. Engelschall wrote:

> On Thu, Sep 27, 2007, Ralf S. Engelschall wrote:
> [...]
> | mtn: fatal: std::logic_error: roster.cc:1808: invariant 
> 'I(left_uncommon_ancestors.find(left_rid) != left_uncommon_ancestors.end())' 
> violated
> [...]

Ok, with the following small script...

--
#!/bin/sh -x
mtn=${1+/u/rse/prj/monotone/src/mtn}
cd /tmp
rm -f /tmp/test.db
$mtn --db=/tmp/test.db db init
rm -rf test
mkdir test
cd test
$mtn --db=/tmp/test.db setup -b test
echo "foo" >test.txt
$mtn add test.txt
$mtn ci -m "commit 1 (foo)"
echo "bar" >test.txt
$mtn ci -m "commit 2 (bar)"
echo "baz" >test.txt
$mtn ci -m "commit 3 (baz)" -b test.tmp
echo "baz2" >test.txt
$mtn ci -m "commit 4 (baz2)"
$mtn up -r h:test
MTN_MERGE=diffutils MTN_MERGE_DIFFUTILS=partial \
$mtn merge_into_workspace h:test.tmp
--

...one can repeat the problem. After removing the firing assertion in
roster.cc:1808...

--- roster.cc   e36b1e83bf7a5a3538f0a882feaccb9f32250118
+++ roster.cc   e4338d04a283dc68fdb9ede159aa486f6a92bd1d
@@ -1805,7 +1805,7 @@ namespace {
 node_id_source & nis)
   {
 I(!null_id(left_rid) && !null_id(right_rid));
-I(left_uncommon_ancestors.find(left_rid) != left_uncommon_ancestors.end());
+// I(left_uncommon_ancestors.find(left_rid) != 
left_uncommon_ancestors.end());
 I(left_uncommon_ancestors.find(right_rid) == 
left_uncommon_ancestors.end());
 I(right_uncommon_ancestors.find(right_rid) != 
right_uncommon_ancestors.end());
 I(right_uncommon_ancestors.find(left_rid) == 
right_uncommon_ancestors.end());

...the "merge_into_workspace" command works just fine. I've reviewed
even the results and everything looks just fine. Unfortunately, I still
do not _understand_ why this assertion exists and why it is false only
for "merge_into_workspace". But I guess this assertion is from times
before "merge_into_workspace" was invented and the workflow in the
implementation of "merge_into_workspace" results in a special case which
triggers the assertion. I don't know whether one can really _safely_
remove the assertion or not. Can somebody shed some light on us here?

   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com



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


Re: [Monotone-devel] Re: Monotone Summit 2008

2007-10-12 Thread Ludovic Brenta
Lapo Luchini <[EMAIL PROTECTED]> writes:
> Markus Schiltknecht wrote:
>> IMO, for FOSDEM it seems to make more sense to have a more user focused
>> event. Or presentations and talks or whatever.
>
> Or -well- we could have a longer Summit *AND ALSO* some of us (as subset
> of the European ones, I'd guess) go to FOSDEM as well ;-)

Yes, or we could use FOSDEM for users plus the rest of the week for
developers.

-- 
Ludovic Brenta.



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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Ludovic Brenta
Markus Schiltknecht writes:
> Hi,
>
> Ludovic Brenta wrote:
>> It is not too late to ask for a developers' room at FOSDEM in Brussels
>> (23-24 Feb 2008).  See http://fosdem.org.  Since I live in Brussels, I
>> will definitely attend and can accommodate one person at no charge.
>> I'm also trying to set up an Ada developers' room with several
>> interesting speeches.
>
> That's also a good idea! Do you know the deadline for reserving such a
> DevRoom? Their website isn't too informative to me today
> (i.e. DevRooms is an empty page from here).

>From past experience, the deadline is mid-October.  However, this is
not set in stone and this year they're having serious problems with
the organisation.  From yesterday's update on the web site, it seems
(some of) the problems have been solved.  I would suggest asking for a
dev room very soon if enough people are interested.

-- 
Ludovic Brenta.



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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Markus Schiltknecht

Hello Siegfried,

Siegfried Herbold wrote:

Maybe there is a location of the same size like Google with:
- - - free (firewall/charge) internet
- - - two projection surfaces, but only one mounted beamer (one unmounted 
beamer to organize)
- - - one flip chart
- - - open for us 24/7
- - - free of charge


Can you be a little more specific, i.e. where is that room? Close to an 
airport? At least somewhat attractive for visitors?



There is no problem with public transport (200 meters from location)


In most cities in Europe, that's not much of a problem, I guess.

Regards

Markus


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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Siegfried Herbold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Nathaniel Smith wrote:

> > My problem is that I'm probably not up to helping much with the
> > organization this time -- I'll certainly be interested in coming,
> > though!  Sponsorship was very helpful, but it's not a necessary thing.
> > The hard and urgent part is finding space and picking dates -- last
> > year, of course, Google gave us space and some money towards lodging,
> > so that determined the space part of things.  (The other options I
> > thought about were either borrowing space from a friendly company that
> > is less massive than Google, which companies are much easier to find
> > but it's much harder to get space during weekdays; or else lodging in
> > a hotel that had free wifi and at getting one suite that could serve
> > as a work area during the day.)  (You also want to think about
> > transportation issues -- in Europe I guess there is generally public
> > transportation?  Basically just making sure that there is some
> > sensible way for people to eat during days without requiring elaborate
> > load-everyone-in-a-car stuff.  Google, of course, made this
> > super-easy.)
> >
> > I would not be surprised if Google were willing to offer space again,
> > or there are other options like above.  I don't know that Google's
> > non-Mountain View campuses are set up for anything like this, but I
> > don't know that they aren't, either (though there'd be no Leslie
> > there, obviously :-)).  Whoever decides to make things actually happen
> > would of course get to make final decision on all these things, Europe
> > vs. other continents etc.  :-)
> >
> > -- Nathaniel
> >


Maybe there is a location of the same size like Google with:
- - - free (firewall/charge) internet
- - - two projection surfaces, but only one mounted beamer (one unmounted 
beamer to organize)
- - - one flip chart
- - - open for us 24/7
- - - free of charge

There are two possibilities of full service catering in the room and in a 
neighbour building is a canteen (breakfast and lunch only)

There is no problem with public transport (200 meters from location)


Regards

Siggi

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHD1raapNh/bw3S9oRAnvcAJ9nPJXnGrfH6cbadfIkS7v7TCD14gCgqprY
vt+08cbKO4fpt/Q9BrXt4es=
=DpRq
-END PGP SIGNATURE-


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


Re: [Monotone-devel] [BUG] merge_into_workspace fails on second merge attempt

2007-10-12 Thread Ralf S. Engelschall
On Thu, Sep 27, 2007, Ralf S. Engelschall wrote:

> With the appended tiny test repository (which contains just two branches
> "test" and "test.2"), when I perform a initial "merge_into_workspace"
> from test.2 to test everything works fine. But if I repeat this once
> "test.2" was already merged to "test" (e.g. even with propagate) the
> "merge_into_workspace" aborts because an invariant in roster.cc is
> not fulfilled (the ~/prj/monotone/src/mtn is the latest Monotone from
> h:n.v.m as of today and the "diffutils" is just used for full batch
> operation):
>
> | $ export MTN_MERGE=diffutils; export MTN_MERGE_DIFFUTILS=partial; \
> |   cp test.db.bak test.db; ~/prj/monotone/src/mtn --db=/tmp/test.db \
> |   propagate test.2 test; (rm -rf test; ~/prj/monotone/src/mtn \
> |   --db=/tmp/test.dbco -b test test; cd test; ~/prj/monotone/src/mtn \
> |   merge_into_workspace b:test.2)
> | mtn: propagating test.2 -> test
> | mtn: [source] fa031b9e25421817806d8388559c9fb430128913
> | mtn: [target] e363b9f348f4e1da9849c1e8b9ed12bbb893f505
> | mtn: help required for 3-way merge
> | mtn: [ancestor] test
> | mtn: [left] test
> | mtn: [   right] test
> | mtn: [  merged] test
> | executing external 3-way merge command
> | performing 3-way merge, adding conflict markers
> | mtn: [merged] df773bab0a43d69c1b7f8db06538f3c1cab108f8
> | mtn: expanding selection 'b:test.2'
> | mtn: expanded to 'fa031b9e25421817806d8388559c9fb430128913'
> | mtn: fatal: std::logic_error: roster.cc:1810: invariant 
> 'I(right_uncommon_ancestors.find(right_rid) != 
> right_uncommon_ancestors.end())' violated
> | mtn: this is almost certainly a bug in monotone.
> | mtn: please send this error message, the output of 'mtn version --full',
> | mtn: and a description of what you were doing to [EMAIL PROTECTED]
> | mtn: wrote debugging log to /tmp/test/_MTN/debug
> | mtn: if reporting a bug, please include this file
>
> Can anybody with a deeper understanding of the code base help?

Ok, I was able to reduce this problem to the following simple test case
which allows anybody of us to repeat the bug from scratch:

| # use h:n.v.m as of 2007-10-12 12:53 
(d4d8e25c9c0b7d47e4d9f4c17876f28f09b00126)
| $ mtn=/u/rse/prj/monotone/src/mtn
|
| # create a fresh test repository and a corresponding workspace
| $ $mtn --db=/tmp/test.db db init
| $ mkdir test
| $ cd test
| $ $mtn --db=/tmp/test.db setup -b test
|
| # commit something
| $ echo "foo" >test.txt
| $ $mtn add test.txt
| mtn: adding test.txt to workspace manifest
| $ $mtn ci -m "commit 1 (foo)"
| mtn: beginning commit on branch 'test'
| mtn: committed revision 7fc72e11b673943cd53a85402c095c9fb00bf91e
|
| # commit something again
| $ echo "bar" >test.txt
| $ $mtn ci -m "commit 2 (bar)"
| mtn: beginning commit on branch 'test'
| mtn: committed revision 3b0093ee368e6e34ca2485dbaacc96eaec6a069b
|
| # commit something to a temporary branch
| $ echo "baz" >test.txt
| $ $mtn ci -m "commit 3 (baz)" -b test.tmp
| mtn: beginning commit on branch 'test.tmp'
| mtn: committed revision a79ce292a282d372a6c6a1266d6baaf35dd86724
|
| # switch back the workspace to the main branch
| $ $mtn up -r h:test
| mtn: expanding selection 'h:test'
| mtn: expanded to '3b0093ee368e6e34ca2485dbaacc96eaec6a069b'
| mtn: selected update target 3b0093ee368e6e34ca2485dbaacc96eaec6a069b
| mtn: target revision is not in current branch
| mtn: switching to branch test
| mtn: modifying test.txt
| mtn: switched branch; next commit will use branch test
| mtn: updated to base revision 3b0093ee368e6e34ca2485dbaacc96eaec6a069b
|
| # try to merge in the temporary branch
| $ MTN_MERGE=diffutils MTN_MERGE_DIFFUTILS=partial \
|   $mtn merge_into_workspace a79ce292a282d372a6c6a1266d6baaf35dd86724
| mtn: modifying test.txt
| mtn: fatal: std::logic_error: roster.cc:1808: invariant 
'I(left_uncommon_ancestors.find(left_rid) != left_uncommon_ancestors.end())' 
violated
| mtn: this is almost certainly a bug in monotone.
| mtn: please send this error message, the output of 'mtn version --full',
| mtn: and a description of what you were doing to [EMAIL PROTECTED]
| mtn: wrote debugging log to /tmp/test/_MTN/debug
| mtn: if reporting a bug, please include this file

The bug is deterministically repeatable. Unfortunately, my current
understanding of the Monotone codebase is still not sufficient to fix
this bug myself. So, can please somebody help out and let us finally fix
the "merge_into_workspace" command?

   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com



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


[Monotone-devel] Re: [OT] monotone & ohloh

2007-10-12 Thread Lapo Luchini
Lapo Luchini wrote:
> Monotone main page:
> http://www.ohloh.net/projects/652

...and if you have an account on ohloh, and use monotone often, please
consider adding it to your "stack" of used programs (link "stack it",
near the project name), so that it has its proper place in the rank of
more used VCSes ;-)

Lapo

PS: in another thread they wrote they won't probably support new VCSes
for many months.. but may probably opensource the code and allow people
doing it themself (shouldn't be too hard, even if I never used Ruby...).



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


[Monotone-devel] Re: Monotone Summit 2008

2007-10-12 Thread Lapo Luchini
Markus Schiltknecht wrote:
> IMO, for FOSDEM it seems to make more sense to have a more user focused
> event. Or presentations and talks or whatever.

Or -well- we could have a longer Summit *AND ALSO* some of us (as subset
of the European ones, I'd guess) go to FOSDEM as well ;-)

Lapo



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


Re: [Monotone-devel] Re: Monotone Summit 2008

2007-10-12 Thread Markus Schiltknecht

Hi,

Lapo Luchini wrote:

It seems real neat, the main "problem" is probably that it is "only" 2
days long... especially and after a flight from around the world it is
probably better to have a longer event..?


Yeah, that seems troublesome for a summit like last February. Especially 
because there are also lots of other attractive projects.


IMO, for FOSDEM it seems to make more sense to have a more user focused 
event. Or presentations and talks or whatever.


Regards

Markus




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


Re: [Monotone-devel] Re: Monotone speedup by adding additional database indices?

2007-10-12 Thread Markus Schiltknecht

Hi,

Lapo Luchini wrote:

Taking a better look at indexes of table revision_certs:

CREATE TABLE revision_certs (
hash not null unique, -- hash of remaining fields separarated by ":"
id not null,  -- joins with revisions.id
name not null,-- opaque string chosen by user
value not null,   -- opaque blob
keypair not null, -- joins with public_keys.id
signature not null,   -- RSA/SHA1 signature of "[EMAIL PROTECTED]:val]"
unique(name, id, value, keypair, signature)
);
CREATE INDEX revision_certs__id_name_value ON revision_certs (id, name,
value);
CREATE INDEX revision_certs__name_value ON revision_certs (name, value);

Those are not two indexes, they are four indeed:
UNIQUE(hash)
UNIQUE(name, id, value, keypair, signature)
KEY   (id);
KEY   (name, value);

Question is: is there a reason the "big unique index" has that order?
I guess so. If that's not the case, we could simply change it to:
UNIQUE(id, name, value, keypair, signature)
and avoid both KEY(id) and the proposed KEY(id, name, value).


AFAICT, the only difference an ordering change of a unique constraint 
makes, is the difference in the structure of the underlying index. So 
we'll have to check which indices we really need.


It looks like we mostly need '(id)' and '(name, value)'. I'm going to 
quickly try these indices, which seem to satisfy most cases:


.. UNIQUE(name, value, id, keypair, signature)
CREATE INDEX revision_certs__id (id);


Side questions: why an UNIQUE on "all data" and an UNIQUE on "hash of
all data"? Assuming the hash doesn't casually collide (and we assume it
all the time) and the ':' separator is adequate they are a bit redundant.


Why do we store that hash in the database at all? Is it so terribly 
expensive to calculate that we need to cache it in the database? Am I 
right assuming that we only need that hash during netsync?


I tend to agree with Lapo, that we don't need another unique constraint 
on that hash.


Regards

Markus



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


[Monotone-devel] Re: Monotone speedup by adding additional database indices?

2007-10-12 Thread Lapo Luchini
Markus Schiltknecht wrote:
> Aha, there are ..autoindex... thingies for the unique constraints!

I discovered them myself *after* having written explain.php, all the
tests I did from sqlite3 client did use one of the other 2 "normal"
indexes =)

> Why doesn't sqlite show those? I don't like these hidden automatisms...
> 
> However, thank you Lapo for clearing this!

In fact that autoindex on UNIQUE(name, id, value, keypair, signature)
should already be ideal for queries on (name, id, value) with no need
for an additional index. So I wonder why it was not used in the first
place. I'll take a closer look again this evening probably.

Lapo



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


[Monotone-devel] Re: Monotone Summit 2008

2007-10-12 Thread Lapo Luchini
Ludovic Brenta wrote:
> It is not too late to ask for a developers' room at FOSDEM in Brussels
> (23-24 Feb 2008).  See http://fosdem.org.  Since I live in Brussels, I
> will definitely attend and can accommodate one person at no charge.

It seems real neat, the main "problem" is probably that it is "only" 2
days long... especially and after a flight from around the world it is
probably better to have a longer event..?

Lapo



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


Re: [Monotone-devel] Re: Monotone speedup by adding additional database indices?

2007-10-12 Thread Markus Schiltknecht

Hi,

Lapo Luchini wrote:

Small PHP script to aid in the display of EXPLAIN:


Nice thing!


   2 OpenRead  1   13 keyinfo(5,BINARY,BINARY)
  sqlite_autoindex_revision_certs_2


Aha, there are ..autoindex... thingies for the unique constraints! Why 
doesn't sqlite show those? I don't like these hidden automatisms...


However, thank you Lapo for clearing this!

Regards

Markus


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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Markus Schiltknecht

Hi,

Ludovic Brenta wrote:

It is not too late to ask for a developers' room at FOSDEM in Brussels
(23-24 Feb 2008).  See http://fosdem.org.  Since I live in Brussels, I
will definitely attend and can accommodate one person at no charge.
I'm also trying to set up an Ada developers' room with several
interesting speeches.


That's also a good idea! Do you know the deadline for reserving such a 
DevRoom? Their website isn't too informative to me today (i.e. DevRooms 
is an empty page from here).


Regards

Markus



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


[Monotone-devel] [PATCH] allow Lua registered commands to have a proper parameter description

2007-10-12 Thread Ralf S. Engelschall
When using the recently introduced Lua command register_command() one
cannot specify a string describing the _parameters_ a command expects.
On "mtn  -h" or "mtn help " the part "Syntax specific
to 'mtn ':" is always just an empty line. The reason simply is
because commands::cmd_lua() calls commands::command() with always an
empty string for the parameter description.

The following patch enhances the situation by introducing an additional
parameter to register_command() which is then passed through to
commands::command() and this way allows Lua registered commands to
show a proper parameter string on the help outputs (in case they have
parameters).

Backward compatibility is not an issue here as register_command() will
be released with Monotone 0.37 the first time. I've also adjusted the
documentation and the sample uses of register_command() in contrib/.

Any objections on the appended patch?

   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com


--- contrib/extra-commands.lua  4ad86255ae43a32fbf1ad67f5328ff78075e322f
+++ contrib/extra-commands.lua  b5765df0e7533d406743d254a7038e8e7d876f08
@@ -9,7 +9,7 @@ end
 mtn_automate("update")
 end

-register_command("pup", "Pull and update a workspace",
+register_command("pup", "", "Pull and update a workspace",
   "This command approximates the update command of a centralised revision 
control system.  " ..
   "It first contacts the server to gather new revisions and then it 
updates the workspace.", "pup")

@@ -30,7 +30,7 @@ end
 end
 end

-register_command("cpp", "Commit, pull and push a workspace",
+register_command("cpp", "", "Commit, pull and push a workspace",
   "This command approximates the commit command of a centralised revision 
control system.  " ..
   "It first commits your work to the local repository, then contacts the 
server to gather " ..
   "new revisions.  If there is a single head at this point, then the local 
changes are pushed " ..
@@ -42,7 +42,7 @@ end
 mtn_automate("update")
 end

-register_command("mup", "Merge and update a workspace",
+register_command("mup", "", "Merge and update a workspace",
   "This command merges multiple heads of a branch, and then updates the 
current workspace" ..
   "to the resulting revision.", "mup")


--- lua_hooks.cc8db4abc61015882eff57df28d1fa14cdb46ade88
+++ lua_hooks.cc57900637d5588e80197752a936229e320993202f
@@ -969,11 +969,12 @@ namespace commands {
 std::string const f_name;
   public:
 cmd_lua(std::string const & primary_name,
+   std::string const & params,
std::string const & abstract,
std::string const & desc,
lua_State *L_st,
std::string const & func_name) :
- command(primary_name, "", CMD_REF(user), false, "",
+ command(primary_name, "", CMD_REF(user), false, params,
  abstract, desc, true, options::options_type() | 
options::opts::none, true),
  st(L_st), f_name(func_name)
 {
@@ -1031,15 +1032,16 @@ LUAEXT(register_command, )

 LUAEXT(register_command, )
 {
-  const char *cmd_name = luaL_checkstring(L, -4);
+  const char *cmd_name = luaL_checkstring(L, -5);
+  const char *cmd_params = luaL_checkstring(L, -4);
   const char *cmd_abstract = luaL_checkstring(L, -3);
   const char *cmd_desc = luaL_checkstring(L, -2);
   const char *cmd_func = luaL_checkstring(L, -1);

-  N(cmd_name && cmd_abstract && cmd_desc && cmd_func,
+  N(cmd_name && cmd_params && cmd_abstract && cmd_desc && cmd_func,
 F("%s called with an invalid parameter") % "register_command");

-  new commands::cmd_lua(cmd_name, cmd_abstract, cmd_desc, L, cmd_func);  // 
leak this - commands can't be removed anyway
+  new commands::cmd_lua(cmd_name, cmd_params, cmd_abstract, cmd_desc, L, 
cmd_func);  // leak this - commands can't be removed anyway

   lua_pushboolean(L, true);
   return 1;

--- monotone.texi   9bdc10fe42bccd03dae526214854bc4d08f863b5
+++ monotone.texi   f36f9ea6bc0159051867e484d01421952f71f9ef
@@ -9118,7 +9118,7 @@ @section Additional Lua Functions
 Returns true if a match for @var{regexp} is found in @var{str}, return
 false otherwise.  @xref{Regexps}, for the syntax of @var{regexp}.

[EMAIL PROTECTED] register_command(@var{name}, @var{abstract}, 
@var{description}, @var{function})
[EMAIL PROTECTED] register_command(@var{name}, @var{params}, @var{abstract}, 
@var{description}, @var{function})

 Add a command named @var{name} to the @var{user} command group in monotone.  
This function is
 normally called directly from a @file{monotonerc} file rather than a hook.  
When the user issues the



__

Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Ludovic Brenta
Markus Schiltknecht writes:
> Hi,
>
> Nathaniel Smith wrote:
>> If anything, it's probably on the late side to be organizing for
>> January/February, so people probably would want to get on it quick...
>
> Yeah, better late than never ;-)   Besides, are there any good reasons
> that it must be Jan/Feb?  We could still do in in March or even April,
> no?

It is not too late to ask for a developers' room at FOSDEM in Brussels
(23-24 Feb 2008).  See http://fosdem.org.  Since I live in Brussels, I
will definitely attend and can accommodate one person at no charge.
I'm also trying to set up an Ada developers' room with several
interesting speeches.

-- 
Ludovic Brenta.



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


Re: [Monotone-devel] Monotone Summit 2008

2007-10-12 Thread Markus Schiltknecht

Hi,

Nathaniel Smith wrote:

If anything, it's probably on the late side to be organizing for
January/February, so people probably would want to get on it quick...


Yeah, better late than never ;-)   Besides, are there any good reasons 
that it must be Jan/Feb?  We could still do in in March or even April, no?



I would not be surprised if Google were willing to offer space again,
or there are other options like above.  I don't know that Google's
non-Mountain View campuses are set up for anything like this, but I
don't know that they aren't, either (though there'd be no Leslie
there, obviously :-)).  Whoever decides to make things actually happen
would of course get to make final decision on all these things, Europe
vs. other continents etc. :-)


Looks like somebody just needs to step forward...  I've mailed Leslie 
and asked if Google would be interested in sponsoring again.


I'm very enthusiastic about Google's biggest European office in Zurich, 
sort of my home town. Take a look at [1]!  But maybe that's just me 
being overly excited about Zurich...


Anybody else interested in helping to organize?

Regards

Markus

[1]: Working at Google Zurich, a YouTube Video:
http://www.youtube.com/watch?v=TPz1Mou-Xxk



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


Re: [Monotone-devel] Monotone Commit Template (Patches)

2007-10-12 Thread Ralf S. Engelschall
On Thu, Sep 27, 2007, Pablo Delgado wrote:

> [...]
> So I went ahead after a few days of looking around in the code and decided to
> hack away at it.
> [...]
> The behavior is as follows, First it reads the .mtn-message if it exist. If it
> is not empty then it inserts the
> contents of the file into user_log. Then it continues with the previously 
> coded
> behavior which is it reads and
> checks _MTN/log and if not empty it will append it to user_log right after the
> .mtn-message file  content and the
> MAGIC_LINE is perpended at the beginning of the file.  This way the user can
> still continue to use the _MTN/log file
> for recording their work.
> [...]

What is the current status of this? I personally would like to see
out-of-the-box .mtn-message support ASAP -- perhaps even already in
Monotone 0.37. Please let this changeset from Pablo be reviewed and
decided upon.
   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com



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