[Monotone-devel] using monotone for a simple logging database

2008-11-28 Thread John Wright
I am looking for some architecture direction on how I can leverage some of
the netsync code from Monotone in a project I am working on.  I am creating
a unique private logging app on top of sqlite3.  By logging I mean  a simple
diary where users will log small micro-bits, ala Twitter or Jaiku and I will
pull a user's public entries from Twitter and other sources in to provide
context for this micro-journal.   I have been trying to design an
architeture that combines feature of a dvcs like monotone with sqlite
because:

   - I want a portable single file database that plays well with in my
   different application environements like the web, the Iphone, and Ruby on
   Rails.  So I am developing on top of a simple logging schema in sqlite.
   - I want it to work equally well in offline mode and to easily sync when
   reconnected.  I liked the git push and pull work and dream of pointing to a
   url of another sqlite database and sync the entries between them over http.
   - Ala git, it should be easy to deterimine if an entry has been tampered
   by comparing with a SHA1 hash of the entry to another instance of the
   logging repository.

Unlike a DVCS my schema is flat, there is no notion of a tree of
edits/commits, just a running "straight" history of logs.  Actually there
are no file blobs, just the log part of a commit.  I am hoping that this can
means I can implement  this dvcs -lite logging repository in Javascript,
Objective C, and Ruby without having to resort to anything but SHA1, basic
language primitives and http and things available in most programming
languages.   I am writing you Monotone guys hoping somebody can help point
me the relevant bits of Monotone that I can look at for inspiriation.  I am
of course digging around myelf but somebody might be able to expedite the
process for me.  I am particurlarly interested if whether some of the
netsync code can be borrowed for such a purpose.   I know that in netsync,
partial hashing of the sqlite file is used to compute what needs to be sent
between the 2 systems.  Is it possible to implement a simplified version of
this protocol that could work even with a Javascript client as one of the
peers.

If this isn't an appropriate question for this forum, please ignore and my
apologies,

Thanks!

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


Re: [Monotone-devel] Re: Monotone Mini Summit: 2009-01-18 - 2009-01-19

2008-11-28 Thread Timothy Brownawell
On Fri, 2008-11-28 at 13:21 +0100, Philipp Gröschler wrote:
> Matthew A. Nicholson wrote:
> > Please add your ideas to this list.
> 
> * Concurrent access to a single Monotone database
> 
> This has been discussed a few times, I'm not sure if a solution has 
> already come up. A few ideas on this topic have been floating around for 
> a while. As far as I'm concerned, I'd like to have one database file to 
> which I sync from my workstation or laptop, and have another process 
> (viewmtn or a self written PHP equivalent) accessing that database at 
> the same time. Maybe for this specific problem there could be other 
> solutions (besides mtn automate) than concurrently accessing the 
> repository on the database/sqlite level.

nvm.tbrownaw.serve_automate may be interesting here, along with the
hacked viewmtn and usher included in nvm.contrib.webhost . It adds a
--bind-automate  option to mtn serve, so it can serve automate
stdio over the network (without any authentication or access checking,
so don't put it on a public address).

> * Integrating a 'branch rename' command
> 
> Currently I have a shell script available which was posted on the 
> Monotone Wiki some time ago. With future changes to monotone it maybe 
> uncertain how long that script will keep working. Next point is, one 
> does always need to have that script available, since renamings must 
> happen on all affected locations. Therefore, and as I have to use branch 
> renaming quite often, it would be nice if that function could be 
> integrated into the mtn binary.

Policy branches! :)


-- 
Timothy

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



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


[Monotone-devel] Re: Monotone Mini Summit: 2009-01-18 - 2009-01-19

2008-11-28 Thread Philipp Gröschler

Matthew A. Nicholson wrote:

Please add your ideas to this list.


* Concurrent access to a single Monotone database

This has been discussed a few times, I'm not sure if a solution has 
already come up. A few ideas on this topic have been floating around for 
a while. As far as I'm concerned, I'd like to have one database file to 
which I sync from my workstation or laptop, and have another process 
(viewmtn or a self written PHP equivalent) accessing that database at 
the same time. Maybe for this specific problem there could be other 
solutions (besides mtn automate) than concurrently accessing the 
repository on the database/sqlite level.


* Integrating a 'branch rename' command

Currently I have a shell script available which was posted on the 
Monotone Wiki some time ago. With future changes to monotone it maybe 
uncertain how long that script will keep working. Next point is, one 
does always need to have that script available, since renamings must 
happen on all affected locations. Therefore, and as I have to use branch 
renaming quite often, it would be nice if that function could be 
integrated into the mtn binary.


Just my two ideas :-)

Greetings,

Philipp


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


[Monotone-devel] fatal: std::logic_error: paths.cc:728: invariant 'I(!empty())' violated

2008-11-28 Thread Vaclav Haisman
Hi,
I am getting this error when I try to do initial commit of my
/usr/local/etc:

35::root:/usr/local/etc> mtn commit -m "Initial import."
mtn: beginning commit on branch 'local.radlicka.amber2/usr/local/etc'
mtn: fatal: std::logic_error: paths.cc:728: invariant 'I(!empty())' 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 /usr/local/etc/_MTN/debug
mtn: if reporting a bug, please include this file

--
VH
beginning commit on branch 'local.radlicka.amber2/usr/local/etc'
Current work set: 4 items
- begin 'system_flavour' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:75)
FreeBSD 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Wed Oct 15 18:56:54 UTC 2008  
   [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC i386
-   end 'system_flavour' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:75)
- begin 'cmdline_string' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:89)
'mtn', 'commit', '-m', 'Initial import.'
-   end 'cmdline_string' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:89)
- begin 'string(lc_all)' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:94)
en_US.UTF-8
-   end 'string(lc_all)' (in virtual void sanity::initialize(int, char**, 
const char*), at sanity.cc:94)
- begin 'full_version_string' (in virtual void mtn_sanity::initialize(int, 
char**, const char*), at mtn-sanity.cc:23)
monotone 0.41 (base revision: 9b264ec9247ce99cd1fdc5293e869c1a60b01c4c)
Running on  : FreeBSD 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Wed Oct 
15 18:56:54 UTC 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC i386
C++ compiler: GNU C++ version 4.2.1 20070719  [FreeBSD]
C++ standard library: GNU libstdc++ version 20070719
Boost version   : 1_34_1
Changes since base revision:
unknown
-   end 'full_version_string' (in virtual void mtn_sanity::initialize(int, 
char**, const char*), at mtn-sanity.cc:23)
monotone 0.41 (base revision: 9b264ec9247ce99cd1fdc5293e869c1a60b01c4c)
Running on  : FreeBSD 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Wed Oct 
15 18:56:54 UTC 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC i386
C++ compiler: GNU C++ version 4.2.1 20070719  [FreeBSD]
C++ standard library: GNU libstdc++ version 20070719
Boost version   : 1_34_1
Changes since base revision:
unknown

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