[Monotone-devel] using monotone for a simple logging database
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
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
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
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