[Monotone-devel] Botan2 support?

2019-08-10 Thread Thomas Moschny
Hi,

as Botan 1.10 has gone EOL 2018-12-31 [1], has anybody already looked
into porting Monotone to Botan 2.x?

Starting with Fedora 31, there will be no compat-openssl10-devel package
anymore, and thus no Botan 1.X (unless we disable the OpenSSL module
there), and that in turn affects the monotone package.

- Thomas


[1] https://botan.randombit.net/handbook/support.html

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


Re: [Monotone-devel] [Monotone-users] CAD versioning

2013-12-13 Thread Thomas Moschny
Hi Hugo,

 Really??  It would be a surprise to me that monotone's delta algorithm
 would only be efficient for text files, because I have been using
 monotone for many years on images and pdf files without problem
 regarding performance.
 
 I thought monotone uses xdelta, which is a binary delta algorithm that
 facilitates binary merges that can be easily applied to both text and
 non-text files.
 
 Am I right, or is monotone's delta algorithm only efficient for text
 files?

These are two different things. The fact that Monotone uses xdelta to
efficiently store different versions of a file is an implementation
detail, that is not (should not) be visible to the user (well, besides
the fact that it saves disk storage).

An automatic merging attempt on the other hand happens whenever there's
a conflict for text files to be solved, and this merging attempt is
line-based.

Do not confuse them, they have nothing to do with each other.

That said, if I remember correctly, one could hook in any other method
for trying an automatic merge in case of a conflict on file contents,
and that method could in theory also handle binary files (like zipped
xml and the like).

Regards,
Thomas

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


Re: [Monotone-devel] monotone-viz colours

2011-06-20 Thread Thomas Moschny
Hendrik Boom hend...@topoi.pooq.com:

 monotone-viz is giving me a nice display.  But is it documented 
 somewhere what the pretty colours mean?  And whether boxes are
 outlined with solid or dotted lines?

Same color means same comitter (or author, not sure).

Boxes with dotted lines are from different branches and a double click
on such a block switches to a view of that branch.

- Thomas

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


Re: [Monotone-devel] Fwd: Monotone and ViewMTN

2011-05-17 Thread Thomas Moschny
Konstantin,

which version of ViewMTN are you running?

For monotone = 0.46 you should use the latest devel version, which is
available e.g. here:

https://code.monotone.ca/p/contrib/source/tree/h:net.venge.monotone.viewmtn/

Regards,
Thomas M.



Am Tue, 17 May 2011 10:43:54 +0200
schrieb Thomas Keller m...@thomaskeller.biz:

 
 Could somebody please have a look at Konstantin's problem? I'm
 unfortunately quite busy currently.
 
 Thanks,
 Thomas.
 
  Original-Nachricht 
 Betreff: Monotone and ViewMTN
 Datum: Mon, 16 May 2011 19:41:33 -0700 (PDT)
 Von: Konstantin Minevsky k.minev...@yahoo.com
 Antwort an: Konstantin Minevsky k.minev...@yahoo.com
 An: m...@thomaskeller.biz m...@thomaskeller.biz
 
 Greetings, Thomas!
 
 I was looking for help all over the Internet, but with no success. I
 hope you can shed some light on my problem.
 I've got Monotone (0.48) installed along with ViewMTN on Debian
 Squeeze box. Everything was working fine before update from Lenny to
 Squeeze. But now our ViewMTN page shows nothing:
 http://mt.xaraya.com/ Logs show nothing, except Apache2:
 FastCGI: server /var/www/xaraya/mt.xaraya.com/viewmtn.py stderr:
 'exception writing to child process; attempting restart: Traceback
 (most recent call last):\\n  File
 /var/www/xaraya/mt.xaraya.com/mtn.py, line 168, in __run\\n
 self.process.tochild.flush()\\nIOError: [Errno 32] Broken pipe\\n'
 
 Could this be a reason for a blank page?
  
 Best regards,
 Konstantin
 


-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: [Monotone-devel] [ANNOUNCE] monotone 1.0 released

2011-03-27 Thread Thomas Moschny
Am Sat, 26 Mar 2011 13:39:42 +
schrieb CooSoft Support supp...@coosoft.plus.com:

 I tried building from source and my binary went bang (illegal 
 instruction). This is what has happened since about 0.48, I'm sure
 I'm doing something wrong but it's not obvious (dependencies are met
 or so it seems). I normally download the binary from the site now.
 Any idea when the mtn-1.00-linux-x86.bz2 file will be ready for
 downloading?

There's a binary available on the download page now, please test.

Regards,
Thomas

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


Re: [Monotone-devel] [ANNOUNCE] monotone 1.0 released

2011-03-26 Thread Thomas Moschny
Am Sat, 26 Mar 2011 13:39:42 +
schrieb CooSoft Support supp...@coosoft.plus.com:

 I tried building from source and my binary went bang (illegal 
 instruction). This is what has happened since about 0.48, I'm sure
 I'm doing something wrong but it's not obvious (dependencies are met
 or so it seems). I normally download the binary from the site now.
 Any idea when the mtn-1.00-linux-x86.bz2 file will be ready for
 downloading?

Working on it, should be there in the evening.

- Thomas

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


Re: [Monotone-devel] Release Of Monotone Browser 0.72 And Monotone::AutomateStdio 0.12

2011-03-22 Thread Thomas Moschny
Am Tue, 22 Mar 2011 11:54:17 +0100
schrieb Thomas Keller m...@thomaskeller.biz:

 Am 13.03.2011 10:28, schrieb CooSoft Support:

 Good point. It does seem a little bit 'odd' that a Gtk tool has a
  dependency on KDE. So unless anyone has any objections, I'll switch
  to meld. Remember that this setting just specifies the default
  application to use, the user is free to change it under their own
  preferences to what ever they want. So I think this is more an
  issue for packagers... Please let me know if you don't like this
  decision.
 
 As I said I'm ok with it and Thomas Moschny is probably the same.

Of course, since I proposed that change. Thinking of it a bit more, it
might (from a packager's point of view) even better if the diff tool
wasn't required at build time at all, in order to not populate the build
chroot with stuff that's not actually needed for building.

Thomas M.

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


Re: [Monotone-devel] Release Of Monotone Browser 0.72 And Monotone::AutomateStdio 0.12

2011-03-12 Thread Thomas Moschny
Am Sat, 05 Mar 2011 15:05:01 +
schrieb CooSoft Support supp...@coosoft.plus.com:

 Just a quick email to announce the release of the above software
 on source forge and CPAN respectively.
 
 Basically the main work was to get these packages working with 
 version 0.99.1 of Monotone.
 
 Monotone Browser, not only having the new selectors introduced in 
 0.99.1, also now has the ability to restrict revision and file
 histories to specific branches.

Just fyi, Fedora packages have been put up for review:

 https://bugzilla.redhat.com/show_bug.cgi?id=684407
 https://bugzilla.redhat.com/show_bug.cgi?id=684433

Btw, I changed the default FILE_COMPARISON tool from kompare to
meld, to not drag in too many KDE packages for Gnome user.

Regards,
Thomas

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


Re: [Monotone-devel] viewmtn status

2010-12-14 Thread Thomas Moschny
Hi Brian,

the development version [1] should support the stdio format from
monotone 0.46 and later.

Regards,
Thomas

[1] mtn clone
'mtn://code.monotone.ca/contrib?net.venge.monotone.viewmtn'


Brian May br...@microcomaustralia.com.au:

 Hello
 
 Is viewmtn still maintained? Still working?
 
 I am having problems, it seems that it receives the data it expects
 from mtn stdio, and then blocks forever on a select statement.
 
 I tried running the same stdio automate calls by hand and they seem to
 work fine.
 
 Later:
 
 hmmm... Looks like this regexp is broken:
 
 packet_header_re = re.compile(r'^(\d+):(\d+):([lm]):(\d+):')
 
 which is expected to be parsed as cmdnum, errnum, pstate, length =
 m.groups()
 
 The data returned by mtn stdio is:
 
 0:m:40:au.com.microcomaustralia.website.themes
 0:l:1:0
 
 So I think maybe the format of stdio has changed since viewmtn was
 last updated.
 
 This is on a Debian squeeze system.


-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: Release rules Was: Re: [Monotone-devel] conflicts store vs show_conflicts

2010-11-24 Thread Thomas Moschny
Markus Wanner mar...@bluegap.ch:

 On 11/24/2010 03:20 AM, Timothy Brownawell wrote:
  Also from IRC we have:
 thm_ the whole release numbering discussion is not meaningful
  wrt rpm, as Fedora for example has its own rules, forbidding
 non-numerics in the version part of an rpm.  
 
 Really? There are so many open source projects with non-numeric
 versions that I distrust this statement. The first Google hit I get
 seems to indicate that non-numeric versions are perfectly supported
 in Fedora as well, see [1].

Time for a clarification of my note on IRC.

The well-known-to-Fedora-packagers website you are citing says, that
because of the ordering problems, a Fedora package may *not* have 
non-numeric parts (besides the dot, obviously) in the *version* part of
an RPM name. The website therefore deals with the question where to put
these non-numeric parts of a version number so many upstream projects
make use of: For any Fedora RPM they have to be put in the *release*
field of the RPM name, but prefixed by a number (and even two numbers
in case of a pre-release, the first of them being zero.)

For example, upstream uses: monotone-1.0rc1, and this is intended to be
a pre-release, then the first-attempt Fedora package would have to be
called monotone-1.0-0.1.rc1, the second attempt
monotone-1.0-0.2.rc1, the next release candidate maybe
monotone-1.0-0.3.rc2, the final 1.0 package monotone-1.0-1, and a
later devel package from trunk monotone-1.0-2.20110229mtncafebabe.

So in short, what this packaging guideline basically does, is forcing
the maintainer to *manually* ensure proper ordering via the release
field.

Therefore, it is irrelevant what version scheme we (as monotone
upstream) come up with, I (as Fedora monotone packager) might have to
adopt it anyway to be consistent with the packaging guideline,

so we don't *need* to discuss (or take into account) any particularities
of RPM version number ordering here on this list.

Hope that clarifies it a bit,
Thomas

-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: [Monotone-devel] server move?

2010-10-31 Thread Thomas Moschny
Am Sun, 31 Oct 2010 17:15:29 -0400
schrieb Hendrik Boom hend...@topoi.pooq.com:

 On Sun, Oct 31, 2010 at 09:57:44PM +0100, Richard Levitte wrote:
  You're entirely correct, the information on that page is incorrect.
  
  If you run mtn 0.48 (or possibly older, haven't really tried), this
  will work:  
 
 mtn 0.40 fails to recognise mtn:
 
 hend...@april:~/monotone$ mtn --db=monotone.db pull 
 mtn://monotone.ca/monotone net.venge.monotone*
 mtn: doing anonymous pull; use -kKEYNAME if you need authentication
 mtn: connecting to mtn://monotone.ca/monotone
 mtn: network error: service name resolution failed for: mtn

Try mtn --db=monotone.db pull \
  monotone://monotone.ca/monotone net.venge.monotone*
instead, or add an entry for mtn to /etc/services.

Regards,
Thomas


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


Re: [Monotone-devel] server move?

2010-10-31 Thread Thomas Moschny
Hendrik Boom hend...@topoi.pooq.com:

 So I guess that I'll have to wait for 0.99.1.  I gather that's one of 
 the high prio items.  Hmm.  Maybe 0.99 will work on my less
 up-to-date machine.  I'll try that if I turn out not to be able to
 wait.

Forgot to add this: You can always use the stand-alone binaries from
the monotone.ca download page. They don't need to be installed (just
bunzip and copy to $PATH) and should work on any x86 Linux where a
32bit glibc 2.3 (or later) is available. They don't need any other
libraries.

Regards,
Thomas

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


Re: [Monotone-devel] server move?

2010-10-31 Thread Thomas Moschny
Hendrik Boom hend...@topoi.pooq.com:

  Forgot to add this: You can always use the stand-alone binaries from
  the monotone.ca download page. They don't need to be installed (just
  bunzip and copy to $PATH) and should work on any x86 Linux where a
  32bit glibc 2.3 (or later) is available. They don't need any other
  libraries.
 
 Does that mean it's statically linked with a nontoxic version of 
 sqlite?

The latest binaries there are linked against sqlite 3.5.9.

- Thomas


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


[Monotone-devel] monotone 0.48.1 released

2010-10-22 Thread Thomas Moschny
Hi!

This is to announce that we, the monotone developers, have released
version 0.48.1 of our distributed version control system.

While we are heading towards 1.0 and still planning to release 0.99 in
the near future, we found an issue that is security related and thus
warrants making a bugfix release:

In monotone 0.48 and earlier, running mtn '' or mtn ls '' caused an
internal error. This could be misused to stop a server remotely (but
only if it was configured to allow execution of remote commands). This
has been fixed on mainline and in 0.48.1.

Therefore everyone running such a server should update as soon as
possible.

Please check as always the NEWS file [0] for a detailed list of changes
and improvements. Binaries will be posted as they come in and will be
retrievable from the downloads page [1].

Thanks for your time,
Thomas.

[0] http://monotone.ca/NEWS
[1] http://monotone.ca/downloads.php

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


Re: [Monotone-devel] Please review nvm.man-page

2010-08-23 Thread Thomas Moschny
Stephen Leake stephen_le...@stephe-leake.org:
 This almost works (from bash under Emacs), but it loses all the
 headers:
 
 function get_man_page_formatter_command()
local term_width = guess_terminal_width() - 2
local path = c:/bin
-- On MinGW, 'popen' runs 'cmd.exe' with the inherited path; run
 Cygwin bash from there return string.format(bash -c nroff -man
 -rLL=%dn | less -R, term_width) end

Problem is that you need to pass exactly one argument to the -c option,
so quoting is to be used:

return string.format(
  bash -c 'nroff -man -rLL=%dn' | less -R, term_width)

works, at least under Linux. Otherwise, the -man and -r options are
consumed by bash, not nroff.

But then, me wonders where 'path' is used?

- Thomas

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


Re: [Monotone-devel] Please review nvm.man-page

2010-08-20 Thread Thomas Moschny
Thomas Keller m...@thomaskeller.biz:

 Comments are welcome.

Most things have already been said by others. 

* I'd like to see the section headings in the generated man page to be
  localized, too.
* in 'interactive' mode, nroff is called with -Tutf8, but not all
  locales use utf-8, so this should instead be locale-dependent.

- Thomas

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


Re: [Monotone-devel] monotone-viz workaround for a bug in recent graphvizs

2010-08-10 Thread Thomas Moschny

Committed to nvm.monotone-viz and nvm.monotone-viz.new-stdio.

Regards,
Thomas


Thomas Moschny thomas.mosc...@gmx.de:

 Hi Olivier,
 
 this patch seems to work fine here, and I'd like to commit it on
 nvm.monotone-viz. Any objections?
 
 Regards,
 Thomas
 
 
 Stéphane Gimenez d...@gim.name:
 
  Hi monotoners,
  
  Quoting debian bug #563634, you may have found revisions nodes
  displaced with respect to the edges connecting them in
  monotone-viz display.
  
  In fact, dot's -y option appears to be broken recently.
  An alternative is to use rankdir=BT.
  It is more natural and hopefully solves the issue.
  
  Here's a patch for monotone-viz.
  
  Stéphane
 
 


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


Re: [Monotone-devel] monotone-viz workaround for a bug in recent graphvizs

2010-07-07 Thread Thomas Moschny
Francis Russell fran...@unchartedbackwaters.co.uk:

 Just one thing, is there any particular reason why the patch changes
 the shell dot runs under to bash?

The shell is only used in debug mode ('if Viz_misc.debug dot').
Otherwise, dot is called directly. And the 'pipefail' option is
probably not supported by (any) sh, but it is by bash.

 Also, if you do decide to commit it, could you please propagate to the
 new-stdio branch as well?

Sure.

Regards,
Thomas

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


Re: [Monotone-devel] net.venge.monotone-viz.net-stdio

2010-07-06 Thread Thomas Moschny
Hi all,

Francis Russell fran...@unchartedbackwaters.co.uk:

 Hi Stéphane,
 
 a while back you sent me a patch against revision
 142b487d0b2cc5e24e17998407f7921f2372ea3c in the new-stdio branch of
 monotone-viz to fix a parsing bug. I was wondering if this patch was
 available anywhere in a monotone revision? Ideally, it would be nice
 if it was available as part of the new-stdio branch on monotone.ca.
 I'm looking to get the Debian monotone-viz package working again and
 it would be nice if I could simply point to a commit on the new-stdio
 branch as the source of my patch.

Committed as b34ff2e695b53c2d73d533a3ffa7cb081b48eefb on branch
net.venge.monotone-viz.new-stdio.

Regards,
Thomas

-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: [Monotone-devel] monotone-viz workaround for a bug in recent graphvizs

2010-07-06 Thread Thomas Moschny
Hi Olivier,

this patch seems to work fine here, and I'd like to commit it on
nvm.monotone-viz. Any objections?

Regards,
Thomas


Stéphane Gimenez d...@gim.name:

 Hi monotoners,
 
 Quoting debian bug #563634, you may have found revisions nodes
 displaced with respect to the edges connecting them in monotone-viz
 display.
 
 In fact, dot's -y option appears to be broken recently.
 An alternative is to use rankdir=BT.
 It is more natural and hopefully solves the issue.
 
 Here's a patch for monotone-viz.
 
 Stéphane


-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: [Monotone-devel] OS-specific line endings

2010-07-03 Thread Thomas Moschny
Am Sat, 03 Jul 2010 19:12:40 +0200 (CEST)
schrieb Richard Levitte rich...@levitte.org:

 The usual problem is there, how to make certain we don't do
 conversions with files that should be seen as binary but aren't
 obviously so from a technical point of view.

That's the easy part: don't do anything per default, and do line ending
conversions only if the file has some 'eol-style' attribute set.

The not-so-easy part is to get all corner cases right. SVN needed
several versions for that, iirc, but now has a working solution, which
might be worth to look at.

It works like this: A file can have the 'eol-style' attribute
('property' in SVN speak) set to one of 'native', 'CRLF', 'LF' or
'CR' (where 'native' means the line ending style of the OS the
Subversion client is currently run on).

Now, if that attribute is set, Subversion ensures that the file in the
workspace has exactly that line ending scheme (and uses some normalized
format [namely LF] inside the repo, but that's basically transparent to
the user).

This however has a side-effect, which may be unexpected at first sight:
During a commit, the file *in your workspace* may change, so that after
the commit, the line ending scheme matches that specified by the
property.

If at commit time a file has the 'eol-style' property set, but has
inconsistent (i.e. mixed) line-endings, the commit is rejected.

Again, Subversion needed some time to get it right, and we should avoid
hitting the same issues they did. Any ad-hoc solution might give us
headaches later.

Regards,
Thomas


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


Re: [Monotone-devel] mismatched SHA checksum

2010-06-15 Thread Thomas Moschny
Am Mon, 14 Jun 2010 21:21:17 -0700
schrieb Arthur A. Gleckler monot...@speechcode.com:

 This morning, I downloaded 0.48 for Linux (mtn-0.48-linux-x86.bz2)
 and the SHA checksum matched.  I just downloaded it again on two other
 computers, and in both cases, the checksum didn't match.  I don't have
 access to the first computer right now to compare files, but I'm
 wondering if this is a mistake or something sinister.  Was that binary
 supposed to have changed this afternoon?

Sorry, that's my fault. I uploaded the binary twice, because the first
version still had a glibc-2.4 symbol in it (and we claim to be
compatible with glibc-2.3). After the first upload, the caching logic
on the website remembered the sha1 sum of that file, and I wasn't able
to convince it to refresh it after the second upload. The correct sha1
is: 84e72fb610418d848fc1ebe2b3821932cce6c38e  mtn-0.48-linux-x86.bz2.

- Thomas

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


Re: [Monotone-devel] mismatched SHA checksum

2010-06-15 Thread Thomas Moschny
Am Tue, 15 Jun 2010 09:24:05 +0200
schrieb Thomas Keller m...@thomaskeller.biz:

 When the binary was uploaded, it might have already been looked at
 through the downloads page and because of that a wrong checksum of a
 partially uploaded file was calculated and cached. This cache
 invalidates itself after 24 hours, so it should be correct in a few.

The file was indeed uploaded twice, intentionally, as I explained in my
other mail.

 Sorry for the inconvenience - I start to think I should remove this
 dynamic hashing again altogether...

We could use file time and size to determine whether the sha1 sum has
to be regenerated (same as the mtn inodeprints code does).

For security reasons though, it would be best to not automatically
regenerate the checksums.

- Thomas

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


Re: [Monotone-devel] 0.99, 0.999, ...

2010-06-14 Thread Thomas Moschny
Am Mon, 14 Jun 2010 10:33:57 -0400
schrieb hend...@topoi.pooq.com:

 When monotone started, did it start as 0.01, 0.02, ... 0.09, 0.10,
 0.11, ... or did it start 0.1, 0.2, ... 0.9, 0.10?  If the former,
 we're using two-digit integers, but they could be interpreted as
 rationals, so we haven't run out.  If the latter, the next would be
 0.100.

The first commit in my db here (on 2003-09-04, from Graydon) has the
commit message: 0.4 release.

So, from that point of view, 0.100 would indeed be the next after 0.99,
if we don't want to release 1.0. But we should try to avoid going that
route again.

- Thomas

-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


Re: [Monotone-devel] Time for a release

2010-06-04 Thread Thomas Moschny
Am Fri, 04 Jun 2010 01:45:44 +0200
schrieb Thomas Keller m...@thomaskeller.biz:

 While I'm going to manage the upcoming 0.99 and 1.0.0 releases, I'd
 like to give my release manager hat to somebody else afterwards, so I
 can concentrate on other things a bit more. I'm not out of the world,
 so whoever wants to take the job can of course count on my help.

Thanks for doing the job for a so long time now!

 Doing releases does not involve much - the process is fairly good
 documented. Perhaps the most important skills are a bit of a passion
 for the software and some accuracy :)
 
 So, who's up for the job?

If no one else is interested, I'd volunteer.

- Thomas



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


Re: [Monotone-devel] strptime not in MinGW time.h

2010-05-19 Thread Thomas Moschny
Stephen Leake stephen_le...@stephe-leake.org:

 Various web links hint that strptime is in glibc, so I don't
 understand why it's not in MinGW.

MinGW uses (i.e. provides headers for) the standard C runtime as
provided by the Windows OS. And as far as I understand, there's simply
no strptime() in that runtime, so we have to provide our own
implementation (which basically means copying one of the various
versions already provided by other open source projects).

-- 
Thomas Moschny  thomas.mosc...@gmx.de

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


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

2010-04-28 Thread Thomas Moschny
Am Wed, 28 Apr 2010 09:40:23 +0200
schrieb Thomas Keller m...@thomaskeller.biz:

 I think I have to find another shell...
 
 $ echo mtn://foo.com#foo
 zsh: no matches found: mtn://foo.com#foo
 
 So if its only zsh and whatever I try here needs escaping anyways, we
 can simply stick to the more common ? then...

set nonomatch in ~/.zshrc does help:

[tho...@localhost ~]% echo mtn://foo.com#foo
mtn://foo.com#foo

Best,
Thomas


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


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

2010-04-28 Thread Thomas Moschny
Am Sun, 18 Apr 2010 20:49:37 +0200
schrieb Thomas Keller m...@thomaskeller.biz:

 Secondly, I'd actively deprecate any branch name which does not match
 the following regular expression, i.e. by throwing a warning when a
 branch cert which a different value is created:
 
^([\w\d]+([-][\w\d]+)*)(\.[\w\d]+([-][\w\d]+)*)*$

Sounds good to me, but maybe we have to ask our users, whether that'd
be ok for them. And we should still allow them to use other branch names
if they wish so (because technically, there's no need for such a
restriction).

mtn ls branches | grep -v -E '^(\w+(-\w+)*)(\.\w+(-\w+)*)*$' shows only
one branch that doesn't match in my local copy of the monotone db
(prjek.net:tester).

-Thomas


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


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

2010-04-28 Thread Thomas Moschny
Am Wed, 28 Apr 2010 02:50:09 -0400
schrieb hend...@topoi.pooq.com:

 On Wed, Apr 28, 2010 at 12:36:59PM +0200, Thomas Moschny wrote:
  Am Sun, 18 Apr 2010 20:49:37 +0200
  schrieb Thomas Keller m...@thomaskeller.biz:
  
   Secondly, I'd actively deprecate any branch name which does not
   match the following regular expression, i.e. by throwing a
   warning when a branch cert which a different value is created:
   
  ^([\w\d]+([-][\w\d]+)*)(\.[\w\d]+([-][\w\d]+)*)*$
  
  Sounds good to me, but maybe we have to ask our users, whether
  that'd be ok for them. And we should still allow them to use other
  branch names if they wish so (because technically, there's no need
  for such a restriction).
  
  mtn ls branches | grep -v -E '^(\w+(-\w+)*)(\.\w+(-\w+)*)*$'
  shows only one branch that doesn't match in my local copy of the
  monotone db (prjek.net:tester).
 
 And what would you do with that branch if this were to become a 
 restriction?

I said I'd agree with the idea of *warning* the user (not *disallowing*
usage of such branch names), I also said I think there's no technical
need to restrict branch names - besides obvious things like \0, and
given there's a way to quote characters if necessary (e.g. using URL
quoting).

- Thomas


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


Re: [Monotone-devel] Monotone-viz and repository structure.

2010-02-23 Thread Thomas Moschny
Am Tue, 23 Feb 2010 09:02:16 -0700
schrieb Derek Scherger de...@echologic.com:

 On Tue, Feb 23, 2010 at 1:48 AM, Stephen Leake 
 stephen_le...@stephe-leake.org wrote:
 
  hend...@topoi.pooq.com writes:
 
  Right; you can pull any branch into any repository (= monotone
  database). But then you do have to be careful not to accidentally
  send a branch to an upstream repository; we don't want to have
  non-monotone branches in the database at monotone.ca.
 
 
 Except that we do... and the access rules seem to prevent one from
 getting them.

Yes, and that seems to be because Richard (who is kindly hosting the
monotone repository) has some 'private' branches in there, or maybe he
is using usher.

But Stephe is right in that if somebody else wants to have some branch
hosted on monotone.ca, he should ask first, and it should be at least
remotely connected to monotone.

 phew... that was fun. Interestingly we apparently do have a mechanism
 for finding out what branches exist on a server, tedious though it
 may be.

Not sure if that itself could already be classified as a 'leak'.

On the other hand it would be possible to use mtn au remote ls
branches, iff monotone.ca was running 0.46 and your key was allowed to
execute automate commands there.

Regards
Thomas

-- 
Thomas Moschny  thomas.mosc...@gmx.de


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


Re: [Monotone-devel] Monotone-viz and repository structure.

2010-02-22 Thread Thomas Moschny
Hi Hendrik,

Am Sun, 21 Feb 2010 15:57:57 -0500
schrieb hend...@topoi.pooq.com:

 On Sun, Feb 21, 2010 at 03:35:42PM -0500, hend...@topoi.pooq.com
 wrote:
  I have my own copy of the monotone repository.  At least I think I
  do. It seems to sync properly when I pull.
  
  But I' trying to obtain monotone-viz.  It doesn't seem to be in my 
  repository,  Is this just an accident of history, that I failed to 
  specify the branch when I pulled monotone initially?  Or is it, 
  and should it be, in a completely separate repository?

It is in the branch net.venge.monotone-viz (and some subbranches
thereof) in the monotone repository served at monotone.ca. Depending on
the pattern you are using (see mtn ls vars database) this branch name
might have never matched during pull for you.

Thomas


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


Re: [Monotone-devel] Issue With remote_stdio

2010-02-13 Thread Thomas Moschny
Hi!

Am Sat, 13 Feb 2010 10:15:43 +
schrieb Anthony Edward Cooper aecoo...@coosoft.plus.com:

 Just tried out the new mtn au remote_stdio and it insists on a
 local database (ran command outside of a workspace). Presumably a
 bug, anyone reported/fixed this already?

That's known albeit not in the ticket system yet. Care to open a bug?
Meanwhile you can use -d :memory: as a workaround.

Regards,
Thomas


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


Re: [Monotone-devel] Time for a release

2010-01-14 Thread Thomas Moschny
Am Thu, 14 Jan 2010 09:43:18 +0100
schrieb Thomas Keller m...@thomaskeller.biz:
 We also got recently a notification that 0.45 (and likely also 0.46)
 won't compile on gcc-4.5:
 
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565083
 
 I don't know the release schedule of gcc, but maybe we could fix this
 one specific issue before 0.46 is out, because I doubt we have another
 release out in a month or so, so 0.46 will be around for a while.

As far as Fedora is concerned, gcc 4.5 will not be in F13, and F14
could be released in November, so there's some time left.

Anyway, the fix was easy, it was a missing #include roster.hh in
selectors.cc, committed in 743110f6dc3d8b3dd2b975eb4dec13f1e2e47c09.

Btw, while checking this in a debian chroot, I saw
the netsync_largish_file test failing:

[...]
mtn: peer localhost:59751 IO terminated connection in working state
(error)
mtn: error: I/O failure while talking to peer localhost:59751,
disconnecting [...]
mtn: peer 127.0.0.1:41314 IO failed in working state (error)
mtn: operation canceled: Terminated
[...]

Is anyone else able to reproduce this, or has any clue what's going on
there?

-- 
Thomas Moschny  thomas.mosc...@gmx.de


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


Re: [Monotone-devel] ViewMTN maintainer

2009-11-03 Thread Thomas Moschny
J Decker wrote:
 Nice, works pretty well.  I do miss the More/Less revisions on the
 graph feature, however... Used to be able to show the past to see a
 tangled mess of branches +/- 2 revisions from the current' isn't
 always a good enough picture.
   

Was this ever a feature of ViewMTN? Guess I need to dig through the code
a bit...

- Thomas



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


Re: [Monotone-devel] ViewMTN maintainer

2009-11-03 Thread Thomas Moschny
Ludovic Brenta wrote:
 I could create it all right (http://viewmtn.1erlei.de/ticket/1) but I
 cannot see it; the URL contains only the error message:

 Unsupported version control system svn: Can't find an appropriate
 component, maybe the corresponding plugin was not enabled?
   

Hm, yeah, this Trac instance wasn't properly configured. The ticket is
visible now. Thanks!

 PS. This is the first time I create a bug report with number 1 :)
   

- Thomas



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


Re: [Monotone-devel] ViewMTN maintainer

2009-11-02 Thread Thomas Moschny
Hi!

Just to let you know, that the new home of ViewMTN is here:
http://viewmtn.1erlei.de/ . There's also a live ViewMTN instance at
http://mtn-view.1erlei.de/ carrying the nvm* branches as well as some
random other branches that are mtn-related.

Feel free to send me comments or hints regarding ViewMTN or the website,
or if you like to see some other branches served there.

Note that the new home of the project is in fact a Trac instance, so the
preferred way of communicating is to open a ticket there.

Btw, if someone here has graphic artist skills... a good idea for a logo
is more than welcome ;)

Regards,
Thomas


I wrote:
 Hi Grahame,
 
 Grahame Bowland wrote:
 It's over a year since I did much on ViewMTN. I'm not interested in
 continuing to work on the project, so I'm looking for someone to take
 over maintainership. If anyone puts their hand up I am more than happy
 to help with any questions or problems. Thanks in advance to anyone
 that puts their hand up!
 
 First of all thanks for developing that useful front-end!
 
 If no one else want to take over maintainership, I could step in -
 maintaining your package in Fedora anyway on the one hand, and having
 some Python code interfacing Monotone on the other hand.
 
 Maybe we can discuss details off-list.
 
 - Thomas



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


Re: [Monotone-devel] ViewMTN maintainer

2009-11-02 Thread Thomas Moschny
Ludovic Brenta wrote:
 I reported a bug here in March. I'd like to open a ticket but cannot
 log in and I didn't find out how to create a new user account for me

Thanks for the hint. You should now be able to create a ticket without
having an account. (Hopefully the spam filter works reasonably well ;)

- Thomas


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


Re: [Monotone-devel] list branches on server?

2009-08-23 Thread Thomas Moschny
Am 23.08.2009 14:20, schrieb Stephen Leake:
 The mtn binary for Linux on the mtn website should be more fully
 described (compiler version, required dynamic library versions), so
 people can do the right thing with it.

What is the right thing besides downloading, unpacking, running?

Also, it describes itself pretty good:

$ ./mtn-0.44-linux-x86 version --full
monotone 0.44 (base revision: 7a4832143b3146ca89f5cb91e0e571d05e29d4b9)
Running on  : Linux 2.6.29.6-217.2.8.fc11.i586 #1 SMP Sat Aug 15
00:44:39 EDT 2009 i686
C++ compiler: GNU C++ version 4.3.2
C++ standard library: GNU libstdc++ version 20080905
Boost version   : 1_34_1
SQLite version  : 3.5.9 (compiled against 3.5.9)
Lua version : Lua 5.1
PCRE version: 7.6 2008-01-28 (compiled against 7.6)
Botan version   : 1.7.8 (compiled against 1.7.8)
[...]

It is a binary for ia32 Linux that only needs glibc 2.3 (and most likely
also runs on 64bit Linux, given it provides a 32bit glibc):

$ ldd ./mtn-0.44-linux-x86
linux-gate.so.1 =  (0x00e75000)
libdl.so.2 = /lib/libdl.so.2 (0x0048)
libm.so.6 = /lib/libm.so.6 (0x00456000)
libpthread.so.0 = /lib/libpthread.so.0 (0x00487000)
libc.so.6 = /lib/libc.so.6 (0x002e3000)
/lib/ld-linux.so.2 (0x002bf000)

$ readelf -s ./mtn-0.44-linux-x86 |
sed -r '/GLIBC/{s,^.*@(GLIBC_[0-9.]+).*$,\1,;n};d' | sort -u
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.4
GLIBC_2.3

What exactly would you suggest writing on the website?

Regards,
Thomas


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


Re: [Monotone-devel] mtn and superuser on Fedora 11

2009-08-16 Thread Thomas Moschny

Nicolas Ruiz wrote:

Zack Weinberg wrote:

This is a known bug in the Botan cryptography library that we use.  I
don't know exactly which version fixed the bug, but it *has* been
fixed; try to get a newer version of libbotan.


fedora uses libbotan 1.8.2 while debian unstable is using 1.8.5. I will
try what you suggest. Thanks.



Recently I have updated botan for Fedora to 1.8.6. The package is 
currently in updates-testing. Try


yum --enablerepo=updates-testing install botan


- Thomas


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


Re: [Monotone-devel] building monotone on Red Hat Enterprise 4

2009-08-11 Thread Thomas Moschny
Stephen Leake wrote:
 I'm trying to build monotone head on Red Hat Enterprise 4.
 
 gcc is gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
 
 Botan, Lua, pcre get past the mtn configure checks, but sqlite does
 not:
 [... undefined references ...]

 Do these errors look familiar? 
 
 Maybe I need a newer pthread library?

Reminds me more of problems with the order of libraries in the final
link step I saw when building the (semi-) static binary we have on the
website.

- Thomas


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


Re: [Monotone-devel] ViewMTN maintainer

2009-08-11 Thread Thomas Moschny
Hi Grahame,

Grahame Bowland wrote:
 It's over a year since I did much on ViewMTN. I'm not interested in
 continuing to work on the project, so I'm looking for someone to take
 over maintainership. If anyone puts their hand up I am more than happy
 to help with any questions or problems. Thanks in advance to anyone
 that puts their hand up!

First of all thanks for developing that useful front-end!

If no one else want to take over maintainership, I could step in -
maintaining your package in Fedora anyway on the one hand, and having
some Python code interfacing Monotone on the other hand.

Maybe we can discuss details off-list.

- Thomas


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


Re: [Monotone-devel] building monotone on Red Hat Enterprise 4

2009-08-11 Thread Thomas Moschny
Stephen Leake wrote:
 Thomas Moschny thomas.mosc...@gmx.de writes:
 Reminds me more of problems with the order of libraries in the final
 link step 
 
 That makes sense. I added -ldl and the dlclose etc references got
 resolved. Any hint which library has the pthread symbols?

You need -pthread, in the compile as well as in the link step(s) - note
that it is not -lpthread, but simply -pthread, no typo.

Look through the ml archive, there's a thread about that issue some time
ago. Basically, if one of the libraries we use is compiled with pthread
support, we should add -pthread everywhere.

(I consider it an error that neither pkg-config --cflags sqlite3 nor
pkg-config --libs sqlite3 output -pthread, but yeah, some people seem
to disagree.)

 I saw when building the (semi-) static binary we have on the
 website.
 
 Which one is that? 

http://monotone.ca/downloads/0.44/mtn-0.44-linux-x86.bz2

This is not an archive, but a single, compressed binary, with no other
dependencies than that provided by glibc 2.3.

 It would be good to describe the library dependencies of the
 distributions.

Not sure I understand what you mean here.

 It would also be good to include the specific build instructions in
 some file in monotone, so others can reproduce it.

Build instructions for what? The static binary? That is currently built
by hand, as I wasn't in the mood working through our auto*tools stuff
yet to implement that.

 The Windows native installer includes the necessary DLLs, and build
 instructions are in monotone/INSTALL and monotone/win32/README.

No need to separately ship libraries for Linux, see above.

- Thomas



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


Re: [Monotone-devel] mtn log now converts dates to the user's timezone

2009-05-29 Thread Thomas Moschny
Zack Weinberg wrote:
 At present, the only thing affected is 'log'.  My immediate thought is
 that absolutely we should *not* apply these changes to the automate
 interface, because that's intended for machine consumption; in
 particular, you don't want to have to parse whatever arbitrary gunk
 the user put in their date format spec.

Exactly what I thought. Converting dates to some locale is something a
presentation layer should do.

- Thomas


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


Re: [Monotone-devel] mtn log now converts dates to the user's timezone

2009-05-29 Thread Thomas Moschny
Zack Weinberg wrote:
 On Fri, May 29, 2009 at 12:39 PM, Thomas Moschny thomas.mosc...@gmx.de 
 wrote:
 Zack Weinberg wrote:
 At present, the only thing affected is 'log'.  My immediate thought is
 that absolutely we should *not* apply these changes to the automate
 interface, because that's intended for machine consumption; in
 particular, you don't want to have to parse whatever arbitrary gunk
 the user put in their date format spec.
 Exactly what I thought. Converting dates to some locale is something a
 presentation layer should do.
 
 I could argue, though, that back-converting from the textual UTC date
 format that monotone prints to a system time_t that can be handed to
 localtime() is a huge pain, and monotone already *has* that code...

Well, that's something different. It might indeed be easier for the
consumer to deal with a system_t (i.e. seconds since unix epoch) than to
parse the textual date format.

- Thomas


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


[Monotone-devel] automate get_current_revision failing

2009-03-06 Thread Thomas Moschny
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi!

In f62181ae.. someone made mtn automate get_current_revision fail in
case the workspace is clean, and the revision is trivial (empty
changeset). I don't see why this should fail, and furthermore, it breaks
 the logic that makes mtn revision --full display changes made against
the base revision.

So, I'd like to partially revert that (see patched attached).

Any objections?

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

iEYEARECAAYFAkmxsbcACgkQm/6MhNYca5jodgCggs5JkIahd2/C66oLXC/d5QgA
sDoAn32ZHxIB2swDfYHeUFEx7iGshamO
=zV9Z
-END PGP SIGNATURE-
#
# old_revision [d24b59732a5b3293592457cba013c8f8b716a875]
#
# patch automate.cc
#  from [63b44f3c2366f52a040cc8d0029ffc1d896740d9]
#to [4a5ef4b00f72c0c766b65bcf4d26fce3c662cbfc]
# 
# patch monotone.texi
#  from [50c10e49ae961d0b36374f02b09b5af2fab9cb00]
#to [d562dab57e07e0822e54af0b40dea69881c085c5]
# 
# patch tests/automate_get_current_revision/__driver__.lua
#  from [a56d2598ca7be71521f38b0a577baa92fbf55022]
#to [febb7bc6adea00e46e2f0e932ec3f939badab4a2]
#

--- automate.cc	63b44f3c2366f52a040cc8d0029ffc1d896740d9
+++ automate.cc	4a5ef4b00f72c0c766b65bcf4d26fce3c662cbfc
@@ -1260,8 +1260,7 @@ CMD_AUTOMATE(get_revision, N_(REVID),
 // Added in: 7.0
 // Purpose: Outputs (an optionally restricted) revision based on
 //  changes in the current workspace
-// Error conditions: If there are no changes in the current workspace or the
-// restriction is invalid or has no recorded changes, prints an error message
+// Error conditions: If the restriction is invalid, prints an error message
 // to stderr and exits with status 1. A workspace is required.
 CMD_AUTOMATE(get_current_revision, N_([PATHS ...]),
  N_(Shows change information for a workspace),
@@ -1293,7 +1292,6 @@ CMD_AUTOMATE(get_current_revision, N_([
   make_restricted_revision(old_rosters, new_roster, mask, rev,
excluded, join_words(execid));
   rev.check_sane();
-  E(rev.is_nontrivial(), origin::user, F(no changes to commit));
 
   calculate_ident(rev, ident);
   write_revision(rev, dat);

--- monotone.texi	50c10e49ae961d0b36374f02b09b5af2fab9cb00
+++ monotone.texi	d562dab57e07e0822e54af0b40dea69881c085c5
@@ -7716,9 +7716,8 @@ @section Automation
 
 @item Error conditions:
 
-If the command is executed outside of a workspace, there are no changes in the
-current workspace or the restriction is invalid or has no recorded changes,
-prints an error message to stderr and exits with status 1.
+If the command is executed outside of a workspace, or the restriction is
+invalid, prints an error message to stderr and exits with status 1.
 
 @end table
 

--- tests/automate_get_current_revision/__driver__.lua	a56d2598ca7be71521f38b0a577baa92fbf55022
+++ tests/automate_get_current_revision/__driver__.lua	febb7bc6adea00e46e2f0e932ec3f939badab4a2
@@ -6,8 +6,7 @@ check(mtn(commit, --date=2005-05-21T1
   --branch=testbranch, --message=blah-blah), 0, false, false) 
   
 -- ensure clear workspace fails wih error
-check(mtn(automate, get_current_revision), 1, true, false)
-check(fsize(stdout) == 0)
+check(mtn(automate, get_current_revision), 0, true, false)
 
 addfile(foox, blah\n)
 addfile(barx, blah2\n)


get_current_revision.patch.sig
Description: Binary data
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] gcc warnings

2009-03-04 Thread Thomas Moschny
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Zack Weinberg wrote:
 These are a harmless false positive (it's a subclass-to-base
 conversion but gcc 4.3 doesn't know that when the warning issues,
 because it's only got a forward declaration of the subclass).

With gcc44, some more warnings about breaking strict-aliasing rules show
up (duplicates not listed):

commands.cc: In function 'commands::command_id
commands::complete_command(const args_vector)':
commands.cc:427: warning: dereferencing type-punned pointer will break
strict-aliasing rules
commands.cc:437: warning: dereferencing type-punned pointer will break
strict-aliasing rules

hybrid_map.hh: In member function 'virtual void
commands::cmd_revert::exec(app_state, const commands::command_id,
const args_vector) const':
hybrid_map.hh:167: warning: dereferencing pointer 'anonymous' does
break strict-aliasing rules
hybrid_map.hh:167: note: initialized from here

migrate_ancestry.cc: In member function
'voidunnamed::anc_graph::fixup_node_identities(const
parent_roster_map, roster_t, const legacy::rename
migrate_ancestry.cc:553: warning: dereferencing pointer 'anonymous'
does break strict-aliasing rules
/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../include/c++/4.4.0/bits/stl_tree.h:259:
note: initialized from here

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

iEYEARECAAYFAkmuunwACgkQm/6MhNYca5jz2QCfV+NMuteiX0dWTvZsS9UBMBxK
eCkAniPwKSnRJBnHsDqwOKm51e/tYVBm
=kZ+y
-END PGP SIGNATURE-


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


Re: [Monotone-devel] gcc warnings

2009-03-04 Thread Thomas Moschny
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Zack Weinberg wrote:
 On Wed, Mar 4, 2009 at 10:17 AM, Zack Weinberg za...@panix.com wrote:
 I don't have gcc4.4 to hand, but do you get the same diagnostic with
 this test case?
 
 Slight correction:
 
 #include map
 typedef std::mapunsigned int, unsigned long M;

 bool test(M m, unsigned int k, unsigned long v)
 bool test(M const  m, unsigned int k, unsigned long v)
 {
  M::const_iterator i = m.find(k);
  if (i == m.end()) return false;
  return (i-second == v);
 }

No warning with that test case.

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

iEYEARECAAYFAkmuyG8ACgkQm/6MhNYca5ik6gCfS1pq3PEHzLfWMM6MKxY+08Hd
3J8AniRh8aHWz+S/PEYq4W7vl12p59nY
=fWWa
-END PGP SIGNATURE-


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


Re: [Monotone-devel] gcc warnings

2009-03-04 Thread Thomas Moschny
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Zack Weinberg wrote:
 On Wed, Mar 4, 2009 at 10:29 AM, Thomas Moschny thomas.mosc...@gmx.de wrote:
 Zack Weinberg wrote:
 I don't have gcc4.4 to hand, but do you get the same diagnostic with
 this test case?

 #include map
 typedef std::mapunsigned int, unsigned long M;

 bool test(M const  m, unsigned int k, unsigned long v)
 {
  M::const_iterator i = m.find(k);
  if (i == m.end()) return false;
  return (i-second == v);
 }
 No warning with that test case.
 
 What compiler flags did you use?  You need at least -O2 -Wall I think...

- -Wall -W -O2 -g

- - Thomas


PS: For the record - note that this is with a gcc rpm from fedora devel,
not a released one.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkmuzL0ACgkQm/6MhNYca5j8UgCeNgSZyPzE8EfO0zXaD2hWhalO
IgwAnA5wTW2NuP2N4b6wDf96+Zs5WWLt
=uLKv
-END PGP SIGNATURE-


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


Re: [Monotone-devel] update clearing execute permissions [was re:git fast-export]

2009-03-02 Thread Thomas Moschny
Derek Scherger wrote:
 I've committed a fix on net.venge.monotone for this problem in
 b1cec3176fd56af29275c2b620f8766b4382eec8 which fixes two associated
 xfailed tests in the monotone testsuite (tests/attr_mtn_execute and
 tests/defecting_attriibutes).

Great! Had something similar, but not yet working, in my workspace for a
while. I factored out the code to set/get the x bit in f954b59c88.. .

One question though: in editable_working_tree::clear_attr(), you call
lua.hook_apply_attribute with an empty string for 'value'. So, while
this doesn't lead to wrong behavior in the case of mtn:executable, I
think that's not correct in general. We should distinguish between the
two cases where some attribute has been or is set with any value (even
with an empty value), and where it is not set at all.

So in short, I think we should pass NIL to the lua hook when an
attribute is cleared, instead of , because the latter could be a valid
value.

 It would be good to get some eyes on this change from people who
 understand the monotone internals. For those people, this change mainly
 affects the update and pluck commands and the stuff I'm marginally
 worried about is the make_revision_for_workspace and
 resolve_merge_conflicts calls because the merged roster may have some
 dormant attributes on it that previously were not there. From what I can
 tell, a cset between a roster with no foo attr and one with a dormant
 foo attr is empty but if it wasn't this change might cause some problems.

As far as I know the revision (i.e. changeset) format doesn't have the
vocabulary to talk about dormant attributes, and imho it shouldn't
need to.

Regards,
Thomas


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


Re: [Monotone-devel] Monotone 0.42: peer [...] IO failed in confirmed state (success)?

2009-02-04 Thread Thomas Moschny
Adam Panayis wrote:
 Hi, I have the same problem as described here:
 http://www.mail-archive.com/monotone-devel@nongnu.org/msg12494.html
 
 Is there way to get the revised code before the next full release of
 monotone?

You could try the attached patch, it should fix the problem. It is
rediffed version of Markus' patch in revision f18abebd.. on mainline.

- Thomas
diff -up monotone-0.42/netsync.cc.orig monotone-0.42/netsync.cc
--- monotone-0.42/netsync.cc.orig	2009-02-04 13:53:00.0 +0100
+++ monotone-0.42/netsync.cc	2009-02-04 13:53:49.0 +0100
@@ -353,7 +353,7 @@ unsigned int reactable::count = 0;
 
 class session_base : public reactable
 {
-  bool read_some();
+  void read_some(bool  failed, bool  eof);
   bool write_some();
   void mark_recent_io()
   {
@@ -468,10 +468,12 @@ session_base::which_events()
   return ret;
 }
 
-bool
-session_base::read_some()
+void
+session_base::read_some(bool  failed, bool  eof)
 {
   I(inbuf.size()  constants::netcmd_maxsz);
+  eof = false;
+  failed = false;
   char tmp[constants::bufsz];
   Netxx::signed_size_type count = str-read(tmp, sizeof(tmp));
   if (count  0)
@@ -479,17 +481,38 @@ session_base::read_some()
   L(FL(read %d bytes from fd %d (peer %s))
 % count % str-get_socketfd() % peer_id);
   if (encountered_error)
-{
-  L(FL(in error unwind mode, so throwing them into the bit bucket));
-  return true;
-}
+L(FL(in error unwind mode, so throwing them into the bit bucket));
+
   inbuf.append(tmp,count);
   mark_recent_io();
   note_bytes_in(count);
-  return true;
+}
+  else if (count == 0)
+{
+  // Returning 0 bytes after select() marks the file descriptor as
+  // ready for reading signifies EOF.
+
+  switch (protocol_state)
+{
+case working_state:
+  P(F(peer %s IO terminated connection in working state (error))
+% peer_id);
+  break;
+
+case shutdown_state:
+  P(F(peer %s IO terminated connection in shutdown state 
+  (possibly client misreported error))
+% peer_id);
+  break;
+
+case confirmed_state:
+  break;
+}
+
+  eof = true;
 }
   else
-return false;
+failed = true;
 }
 
 bool
@@ -531,11 +554,14 @@ bool
 session_base::do_io(Netxx::Probe::ready_type what)
 {
   bool ok = true;
+  bool eof = false;
   try
 {
   if (what  Netxx::Probe::ready_read)
 {
-  if (!read_some())
+  bool failed;
+  read_some(failed, eof);
+  if (failed)
 ok = false;
 }
   if (what  Netxx::Probe::ready_write)
@@ -578,7 +604,11 @@ session_base::do_io(Netxx::Probe::ready_
 % peer_id);
   ok = false;
 }
-  return ok;
+
+  // Return false in case we reached EOF, so as to prevent further calls
+  // to select()s on this stream, as recommended by the select_tut man
+  // page.
+  return ok  !eof;
 }
 
 
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] nvm.asio

2009-01-26 Thread Thomas Moschny
Zack Weinberg wrote:
 [...]
 right now the only thing I've done
 on it is bump the Boost version requirement to 1.35, which lets us get
 rid of the boost/ directory in the source tree (they finally
 incorporated the circular_buffer classes into the official
 distribution).  They don't seem to have broken anything we use going
 from 1.34 to 1.35.

In general, I very much appreciate the whole effort of getting rid of
all the 3rd party stuff we carry around.

I wonder though, whether we are going to loose the ability to build on
older/long term support distributions. For example, RHEL5 has pcre 6.6,
and (through the EPEL add-on repository) boost 1.33.1. So, building
monotone 0.43 for EPEL will cause some headache, I fear (and the same
might hold for other lts or server distributions).

- Thomas


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


Re: [Monotone-devel] Re: nvm.stripped versus botan

2009-01-21 Thread Thomas Moschny
Zack Weinberg wrote:
 On Tue, Jan 20, 2009 at 4:16 PM, Jack Lloyd ll...@randombit.net wrote:
 That said, it's no good to slow mtn startup down so much since that is
 clearly not the Right Thing either.
 
 Do you think we could get away with skipping es_unix if we have
 something else, though?  That's the really slow one.

Indeed using --disable-modules=unix_procs while configuring botan makes
a huge difference for monotone's startup time.

- Thomas


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


Re: [Monotone-devel] nvm.stripped versus botan

2009-01-21 Thread Thomas Moschny
Zack Weinberg wrote:
 Also, do we really
 need cryptographic entropy in mkstemp.cc?  Currently *every
 invocation* of monotone_mkstemp is initializing a new RNG object.
 Fortunately it's only called from LUAEXT(mkstemp), but still...

Why can't we simply re-use the RNG object? Really, I don't think we
should implement another pseudo random number generator ourselves.
Basically it won't ever be properly reviewed.

- Thomas


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


Re: [Monotone-devel] status of nvm.stripped

2009-01-19 Thread Thomas Moschny
Zack Weinberg wrote:
 I'd prefer not to drop the minimum version below the most recent point
 at which an exploitable crasher bug was fixed, which (according to
 pcre's NEWS file) was 7.6.  There probably isn't an attack vector with
 our usage but I can't prove it so I'd rather be safe.
 
 (Can you find out if FC9 backported those fixes?)

The pcre package in F9 has a backported fix for CVE-2008-0674, and also
a fix for the more recent CVE-2008-2371 problem.

- Thomas


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


Re: [Monotone-devel] Re: times to load various things from the database

2009-01-18 Thread Thomas Moschny
(Derek: sorry for resending, forgot to cc the list.)

Derek Scherger wrote:
 - after a reconstruction path is loaded it is scanned in forward order
 looking for a cached roster to start from. if one is found, the
 reconstruction path is truncated at that point and reconstruction will
 start from the closest cached roster.

Somehow I always thought the code that searches for the reconstruction
patch would do this already: not only stop at base rosters but also at
cached rosters - seems I was wrong.

- Thomas


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


Re: [Monotone-devel] status of nvm.stripped

2009-01-18 Thread Thomas Moschny
Markus Wanner wrote:
 Fedora 9 doesn't ship botan, either. I compiled from source, through the
 project website you can also find RPMs for botan.

A Fedora botan package is on the way, see
https://bugzilla.redhat.com/show_bug.cgi?id=480528.

- Thomas


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


Re: [Monotone-devel] wiki

2009-01-10 Thread Thomas Moschny
Hi Markus,

Markus Wanner wrote:
 ugh.. am I working on the wrong branch for editing the wiki
 (net.venge.monotone.web.ikiwiki)?

Beware - the nvm.web.ikiwiki branch has been merged back to nvm.web and
suspended. Could you please propagate your last change(s) and suspend
the branch again?

 How do I compile and test the wiki locally? Where's the documentation
 for it?

This is explained in wiki/ikiwiki_migration.mdwn (rendered version here:
http://monotone.ca/wiki/ikiwiki_migration/).

 Isn't the purpose of a wiki to be simple to edit and easy to search
 through? Sorry, but I currently miss both functions. But maybe I'm just
 looking at the wrong places...  please help!

Well, the migration to ikiwiki has been started on the last summit. The
wiki being part of our Monotone database seems to be a great advantage
compared to the old system. Also, ikiwiki's way of rendering the page
contents only once, when the source has been changed, sounds like a good
idea to me.

Eventually we'll have a CGI-based mechanism for editing (and committing
to) the wiki, if that's what you are missing. But before installing that
that we need to be sure that we can prevent any spamming.

Regards,
Thomas


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


Re: [Monotone-devel] git fast-export

2009-01-06 Thread Thomas Moschny

Patrick Georgi wrote:

Am Dienstag, den 06.01.2009, 09:47 +0100 schrieb Markus Wanner:

This is a bit off-topic here, but: is there a use case for revisions
without *any* branch cert?

I think you get these if you pull a branch, which descends into other
branches that you don't pull


Yes, or later, when you don't trust a branch cert for some reasons. This 
is a general topic that has to be discussed in the scope of the so 
called policy branches: is it really meaningful to use a revision's 
data (in the sense that it is an ancestor of a revision I actively use 
or even commit myself), but not trust its metadata?


But back to the topic: I wonder how missing or untrusted branch certs 
affect the git-export, unless these revisions are leaves?


- Thomas


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


Re: [Monotone-devel] monotone-0.41 compile failure with glibc(disabled-nls)

2009-01-06 Thread Thomas Moschny

Replying to myself:

Markus Wanner wrote:

Daniel Black wrote:
As per https://bugs.gentoo.org/show_bug.cgi?id=238540 monotone fails 
to compile when glibc is compiled with --disable-nls. This occures 
even when monotone is configured with ./configure --disable-nls.


Hm.. I'm unable to reproduce this issue on my virtual Gentoo 2008.0 box.


fwiw, I can see the same compile problem when configuring monotone with 
--disable-nls on (standard) debian lenny and fedora 10.


It turns out that this can be solved by updating our copy of gettext.h 
with a more recent version. If no one objects, I'm going to commit that.


- Thomas


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


Re: [Monotone-devel] monotone-0.41 compile failure with glibc(disabled-nls)

2009-01-05 Thread Thomas Moschny

Replying to myself:

Markus Wanner wrote:

Daniel Black wrote:
As per https://bugs.gentoo.org/show_bug.cgi?id=238540 monotone fails 
to compile when glibc is compiled with --disable-nls. This occures 
even when monotone is configured with ./configure --disable-nls.


Hm.. I'm unable to reproduce this issue on my virtual Gentoo 2008.0 box.


fwiw, I can see the same compile problem when configuring monotone with 
--disable-nls on (standard) debian lenny and fedora 10.


It turns out that this can be solved by updating our copy of gettext.h
with a more recent version. If no one objects, I'm going to commit that.

- Thomas



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


Re: [Monotone-devel] git fast-export

2009-01-05 Thread Thomas Moschny

Derek Scherger:
I've spent a bit of holiday hacking time working on a git_export command 
for monotone, more as an experiment than anything else.


Nice!

This successfully (I think) converts the entire monotone database with 
276 branches (more or less what you get when you pull '*' from 
monotone.ca http://monotone.ca) to a git repository.Here's some 
details on the conversion:


This doesn't honor suspend certs, does it?

And one more interesting question, what do you do with branches that 
have multiple heads?


- Thomas



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


Re: [Monotone-devel] monotone-0.41 compile failure with glibc(disabled-nls)

2009-01-04 Thread Thomas Moschny

Markus Wanner wrote:

Daniel Black wrote:
As per https://bugs.gentoo.org/show_bug.cgi?id=238540 monotone fails to 
compile when glibc is compiled with --disable-nls. This occures even when 
monotone is configured with ./configure --disable-nls.


Hm.. I'm unable to reproduce this issue on my virtual Gentoo 2008.0 box.


fwiw, I can see the same compile problem when configuring monotone with 
--disable-nls on (standard) debian lenny and fedora 10.


- Thomas


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


Re: exec flag not always set (Was: Re: [Monotone-devel] checkout automate?)

2008-12-22 Thread Thomas Moschny

Felipe Contreras wrote:

On Sat, Dec 20, 2008 at 10:14 AM, Hugo Cornelis hugo.corne...@gmail.com wrote:

On Fri, Dec 19, 2008 at 5:39 PM, Felipe Contreras
felipe.contre...@gmail.com wrote:

I have some scripts that convert a mtn repo to git repo (as you might
know) but I stumbled upon some issues while doing 'mtn update' (the
exec flag is not properly set sometimes), so now I'm using 'mtn

I have seen this to a couple of times, but I don't know how to
reproduce it.  Especially annoying when this breaks automated tests.

Does anyone have an idea what the problem is, and is there a solution
or workaround ?


There are two problems:
- As it seems to me, we are not calling lua hooks in case file 
attributes should be cleared on update.
- We don't have lua code (that could be called from such a hook) to 
clear the execute permission bit, we only have code to set it.


The second problem is easy to solve, and in fact I have already code for 
that, but currently I don't have time to look at the first issue, will 
come back to that after christmas.


For now, I've added an xfailing test.


AFAIK the Pidgin guys where able to reproduce this issue and even
found a workaround.


Would be nice to see how they did that.

- Thomas


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


Re: [Monotone-devel] interface versions, again

2008-12-22 Thread Thomas Moschny

Thomas Keller wrote:

So, to make a long story short I propose that interface versions are
_not_ changed by individual developers up until the next release and
that the release manager rather takes care of the numbering, just
because he gets the ultimative overview what has been added / changed
when he writes the NEWS file.


You gave good arguments why this is the only viable way.

On the other hand, there's a downside: People using automate against a 
devel version (e.g. for testing the newly implemented features) will see 
wrong (i.e. too low) interface version.


This dilemma is imho inherent to the numerical schema we currently use. 
I think I've proposed that before, but what would solve the issue is a 
keyword based interface version. So, instead of one numerical value, the 
interface version call would return a list of keywords, each of them 
specifying an sub functionality of the automate protocol, implemented by 
that server.


This way new or changed functionality can be advertised immediately and 
independently of other parts of the protocol.


- Thomas


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


Re: [Monotone-devel] Status of nvm.stripped

2008-12-22 Thread Thomas Moschny

Thomas Keller wrote:

The other (lazy) way would be to define a list of external libraries
with which we know the build works (i.e. because we've tested them) and
leave everything else to the downstream packagers. We receive bug
reports and incorporate their fixes for the next release. This just
became a rather small open source project, I don't think people have
ressources to additionally check if monotone builds and behaves correct
with all seven boost versions, three botans, two luas and whatever.


Totally agree.

Are we (when combining different versions of the used libraries) to 
expect subtle bugs that eat peoples databases with no one noticing?


I guess most problems will rather arise at compile time or when running 
the test suite. And distributions should run the test suite before 
shipping their builds to the end user. For the Fedora package we surely 
do that.


So, I'm in favor of merging this branch earlier rather than later, so 
maybe very soon after releasing 0.42.


- Thomas


___
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-12-14 Thread Thomas Moschny
Philipp Gröschler:
 As for the topics which I posted a few days ago, yes I would do some
 work on these topics if only I had a glimpse on C++ ;-)

 This is also the reason for which I didn't attend the Wuppertal summit
 this summer. I announced some kind of Java project on the mailing list
 and got a few messages on that, but no further responses on application.
 Concerning all other topics around C++ and Lua, I don't think I can be
 of any constructive help, unfortunately.

You could enhance/revive/polish/hack on the eclipse monotone plugin, if you 
like.

Regards,
Thomas



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


Re: [Monotone-devel] date certs on net.venge.monotone

2008-10-23 Thread Thomas Moschny
Stephen Leake wrote:
 Markus Wanner [EMAIL PROTECTED] writes:
  I'm just proposing to check the date and warn the user if it obviously
  doesn't match. It would help making that meta-information more reliable,
  nothing more, nothing less.

 If there is no global shared clock, then developers working in
 different time zones can easily commit revisions to a shared server
 that have timestamps using local times that appear to be out of
 order with respect to each other.

Monotone stores timestamps in the date certs in UTC, of course. Nevertheless, 
clocks for each developer might differ a bit such that commits appear to be 
made in non-chronological order.

 Why would you want to warn about that?

So, I don't think we should warn there.

- Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Time for a release

2008-09-01 Thread Thomas Moschny
Zack Weinberg wrote:
 On Mon, Sep 1, 2008 at 12:10 AM, Richard Levitte [EMAIL PROTECTED] 
wrote:
  Zack Weinberg [EMAIL PROTECTED] said:
  zackw make distcheck is failing because it can't find a rule to create
  zackw mtnopt.
 
  I'll look into it.  If you look in Makefile.am in the top directory,
  you can find this:
 
 bin_SCRIPTS = mtnopt
 
  and this:
 
 # Support for scripts
 %: util/%
 cp $ $@
 
  Famous words, I know, but it worked for me...  What am I missing?

 Possibly just needs putting util/mtnopt in EXTRA_DIST or whatever it's
 actually called then?

Already fixed 'make distcheck' by moving mtnopt from bin_SCRIPTS to 
dist_bin_SCRIPTS, adding it to DISTCLEANFILES, and patching it to support '--
help' and '--version' ;)

- Thomas



signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Time for a release

2008-08-31 Thread Thomas Moschny
On Monday 01 September 2008 Thomas Keller wrote:
 Stephen Leake schrieb:
  I'm working on a minimal implementation of conflict resolution; just
  content and duplicate name conflicts. The duplicate name resolutions
  will only be rename or drop, not suture.
 
  The point of this conflict resolution implementation is to allow
  preparing conflict resolutions one at a time, before the actual merge
  command is issued. Then when you do the merge, you can tell it to use
  the prepared resolutions, so no user interaction is necessary.
 
  This avoids the problem of losing work when you encounter a conflict
  that's complicated and abort a merge.

 That sounds pretty cool already. Does this work for workspace merge as
 well, i.e. update?

It should, or at least I would be surprised if it didn't.

  Unlike sutures, the implementation in n.v.m.resolve_conflicts doesn't
  change any core monotone data structures or database formats, so it
  should not break any current functionality.

Do all tests pass?

  I plan to get it done this weekend (Monday included; it's a holiday
  here in the US).
 
  I'd like this to be in the next release so my team at work can use it,
  without an internal mtn version.

 I'd definitely like to have some people look over the code before it
 gets merged.

  So if we can postpone a release until next weekend, I'd appreciate it.

While a review could be done in a week, I'm not sure we should really be in a 
hurry. We can easily have a 0.42 in a month or so.

  On the other hand, the mtn command line interface to this feature is
  not at all settled. I'm implementing this process:
 
  mtn automate show_conflicts  _MTN/conflicts
 
  add resolutions to MTN/conflicts via Emacs DVC GUI
 
  mtn merge --resolve-conflicts-file MTN/conflicts
 
  Others have expressed a desire for mtn command line operations to add
  resolutions to the conflict file. I don't plan on using them, and we
  did not come to any consensus on what they might be, so I'm not
  implementing them now.

 A usable command line would probably be needed, otherwise people which
 don't use Emacs (like me) will find the interface then pretty academic
 and won't use it.

Yes, I also think that a cmdline interface for recording resolving decisions 
is needed. Not everyone is using emacs. At least the format of MTN/conflicts 
must be documented properly. Also, test cases are needed. (Maybe this is 
already done, didn't find the time yet to have a look at that branch).

  However, if people want more of a chance to review this stuff before
  merging it to main for a release, or want to wait for a more complete
  implementation, that's fine, too.

 I'm undecided - even though I wear this nice release manager hat, I
 don't like to say just yes or no here. I perfectly understand that
 you need it for your team and that people should be encouraged testing
 it and all, but I fear that once the code went into mainline, the
 general (your?) interest making a halfway usable command line which does
 not include editing basic_io files is gone by then...

 Other opinions?

Not meaning to discourage you, Stephen, but at this time, and with Thomas 
wearing the release manager cap already, I'd say, we'd better have 0.41 done 
now, and have your work merged in afterward. Having a 0.42 release within 
short time then would be fine and fully justified even by a single new 
feature. But of course the decision is up to Thomas as he's doing the work ;)

- Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] can you please help to compile?

2008-07-11 Thread Thomas Moschny
On Friday 11 July 2008 Zack Weinberg wrote:
 On Thu, Jul 10, 2008 at 1:45 PM, R K AVATAPALLI [EMAIL PROTECTED] 
wrote:
  i am trying to install monotone 'monotone-0.40' from
  'monotone-0.40.tar.gz' i already installed 'boost_1_35_0' from
  boost_1_35_0.tar.bz2'
  i am using Fedora Core 4 linux operating system.
 [...]
 tell me that you are using an old, buggy C++ compiler, and this is
 almost certainly the source of the problem.  Your options are:

 * Upgrade your operating system.
 * Upgrade just the compiler using packages from Fedora.
 * Download a recent version of GCC and compile it yourself.  This is
 not difficult.

* Don't bother compiling monotone yourself and use the pre-compiled binary 
available here: http://monotone.ca/downloads/0.40/mtn-0.40-linux-x86.bz2.

This is a stand-alone binary, simply download, bunzip2, and put it in a 
directory on your path, like /usr/local/bin.

- Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Blank spaces in monotone manual?

2008-06-30 Thread Thomas Moschny
[EMAIL PROTECTED]:
 While reading http://www.monotone.ca/monotone.pdf using konqueror I've
 noticed mysterious blank spaces in the manual.  Specifically, in section
 1.7 Branches after the words Branches tell monotone which revisions you
 would like to merge, and which you would like to keep separate. there
 is a blank space about the same siza as this paragraph, followed by the
 words You can see all the available branches using mtn list branches,
 followed by another blank space.

 Is this a problem with my browser, or are there really blank spaces in
 the manual, possibly pending further revision?

The blank spaces are a result of TeX's typesetting process having problems 
when the ratio between size occupied by images and amount of text on a page is 
bad (i.e. a lot of non-tiny images).

Here, the generated PDF looks better, after I scaled down one image a bit,
see b507bcb3..

- Thomas



signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] ikiwiki

2008-06-19 Thread Thomas Moschny
Thomas Keller wrote:
 Furthermore we should also look later on on those pages which have not
 yet been converted if they're worth of being converted at all (things
 like new pages which contain just one implementation idea might be moved
 somewhere else, for example).

I've converted all remaining moin files. There are some formatting issues 
left, but those can be solved later (and some pages can probably be deleted, 
yes.) All pages are now tagged either 'done', 'wip', or 'auto'.

'wip' however, despite it's name doesn't seem to mean that someone is in the 
middle of reworking that page, but merely that it is not considered done yet 
and probably needs a helping hand.

So, everyone, pick some of those pages, bring them in shape (mostly content-
wise, that is), and mark them as done!

- Thomas



signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] ikiwiki

2008-06-19 Thread Thomas Moschny
On Thursday 19 June 2008, [EMAIL PROTECTED] wrote:
 If you're going to have a captcha ... I think it's the Univerity of
 Illinois library that provides a free captcha service.  They're in toe
 pocess of digitizing their entire collection, and they use the words and
 phrases that their OCR systems fail on as a source of captchas.
 Apparently is's quite effective at weedind out bots, and not hard on
 real human beings.  And it helps them digitize their library.

 I found it following links from googling (or wikipeding) CAPTCHA.
 Didn't keep the link.

Do you mean http://recaptcha.net/
Not sure whether ikiwiki supports it, though.

- Thomas





signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Monotone displays commit times in UTC, not local time

2008-06-05 Thread Thomas Moschny
On Thursday 05 June 2008, Zack Weinberg wrote:
 On Thu, Jun 5, 2008 at 12:26 PM, Nuno Lucas [EMAIL PROTECTED] wrote:
  Or you could just use the sqlite date/time functions[1] to have it
  return localtime instead of UTC.

 The dates are not stored in a way that would make that possible.

Really?

% mtn db execute 'select value, datetime(value, localtime) from 
revision_certs where id=05dc2c12e723382d5c6ced4b7b9df9ed63f31bb8 and 
name=date' 

2008-06-02T14:42:33 | 2008-06-02 16:42:33

Seems correct (CEST (UTC+2) in effect here now). Now take an older revision, 
say 61a83351.., yields:

2008-01-30T19:13:26 | 2008-01-30 20:13:26

In January, CET (UTC+1) was in effect here.

- Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-10 Thread Thomas Moschny
On Saturday 10 May 2008 Derek Scherger wrote:
 Thomas Moschny wrote:
  *But*, I changed my mind, and now think that we must care about file
  identity relationships. What we really want, is this: Pretend we could go
  back and give both 'foo' nodes in A and B the very same node identity.
  The whole monotone merging machinery would work as expected.

 Initially I really liked this idea, even though it does seem a bit
 strange to go back and rewrite the old rosters, it does accomplish
 suturing. However, on the way home today, it occurred to me that
 actually doing this may not be the right thing because it doesn't record
 history as it happened but actually changes the history which we're
 trying to preserve.

Sure. That's why I said 'pretend we could go back...'. It was merely a 
gedankenexperiment that can help us find out what the merging rules will look 
like, not a suggestion to really rewrite history.

 I'm back to thinking the right thing to do is to drop *both* old nodes
 and create a new one representing the suture, and to do whatever else we
 need to so that the new node somehow refers to both of its sources.
 
 Similarly, for splitting a file (i.e. un-suturing) I think we should
 drop the original single node id and create two new ones that both refer
 to their single source.
 
 For an asymmetric copy it seems reasonable to keep the source node and
 add a single new node representing the copy.

 So, all we need is some way for a node to refer to 0, 1 or 2 source
 nodes (2 for a suture, 1 for an asymmetric copies and splits and 0 for
 simple additions).

Exactly. In another mail in this big thread I wrote that I think we should 
extent each nodes' birth records to contain 0-2 source nodes (specified in 
terms of paths in one of the parent revisions.)

 Then we need to work this through the merging machinery. 

Right, that's what we need to do now: Find out how to merge two nodes that 
have a somehow connected node identity. My guess is that there will be 
different rules for content, path and aliveness (besides the fact that we 
need to update aliveness merging rules themselves first).

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-08 Thread Thomas Moschny
Markus Schiltknecht wrote:

 And I'm currently concluding that the 'single bit aliveness flag per node
 id' is overly complex for us and for the end user, while suturing and
 copying might achieve pretty much the same effect.

As I pointed out in another mail, it's not the bit that is complex - we 
already have that: a node can be present in a manifest or not, that's 
effectively the bit.

What we do not have currently, is a cache of the corresponding markings. To be 
more precise: we don't have pointers to the (obviously marked) revisions in 
which a node died.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-08 Thread Thomas Moschny

Markus Schiltknecht wrote: (graph kept for reference)
 Thomas Moschny wrote:
 A: 1,foo,v   B: 2,foo,w
  /\  /\
 /  \/  \
|\__/\
|  / C: 12,foo,x
| /\
|/  \
|   D: 2,bar,y   \
|__/  |
E: 1,foo,v|
 \ 2,bar,y|
  \___|
   F: ???
  
  [...] Now, consider F, merging E and C. How does its manifest look like?

 Well, there's no way you can merge two revisions with an ncc, so there
 cannot be such a manifest in the first place.

There can, that's what suturing is about. It is the same thing happening in C, 
where we are suturing 1 and 2 both wanting 'foo' into 12. Why shouldn't that 
be possible again in F for 1 and 12 ?

E C
| G: -  # rev G drops 3 (i.e. the sutured 12) here
H: 4,foo,v/
 \ 5,bar,y   /  # rev H saves nodes 1 and 2 by
  \ /   # copying
   \   /
   F: 4,foo,v   # a clean merge now. 1 and 2 are gone due
  5,bar,y   # to the suturing into 3, which got then got
# dropped in G.


You are cheating here. We don't have well defined nor understood semantics for 
copy yet. And by simply exchanging 3 for 12, or 4 for 1 and 5 for 2, you are 
pretty much hiding what we are (well, I am, at least) talking about: 

Establishing connections between different node identities. 

That is, a new node needs to able record the fact somewhere that it wants to  
inherit (or asymmetrically share) identity from (with) another node. I still 
have to think of what that actually means, though, especially for our merge 
algorithm, which certainly has to to be extended.

What I'm thinking of (implementation wise) is extending the birth record to be 
able to contain a list of 'ancestor' nodes, in terms of node paths in the 
respective parent revision. Note (a) that we don't have node_ids there, so 
nodes must be referenced by name, and (b) that we certainly don't want to 
allow nodes to be referenced in other revisions than in its direct parents. 
Otherwise we would create a new graph that can not be embedded in our 
revision graph, and my intuition says that would be a very bad thing (tm).

This would allow suturing and asymmetric copying, but not resurrection in the 
copy-sense, hopping over a whole part of the history. But that's fine 
anyway, because you can always commit a child revision of an old revision 
where the file in question was still alive and merge that with your current 
head, and that's the Monotone way of doing it.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-08 Thread Thomas Moschny
Markus Schiltknecht wrote:
 William Uther wrote:
  This isn't totally correct.  You need the node-id's you're talking
  about, but you also need the marks for mark-merge.  As has been noted by
  Thomas in another email, the problem with resurrection isn't with
  finding the node-id, it is with being able to get the marks when you
  later do the merge.  At the moment we don't keep the marks when we drop
  a file.

 With suturing + copying, as I'm envisioning, we don't need to keep them.

Yes, we do need them, that's pretty much sure (or, at least, we need to 
reconstruct them on demand, as William suggests). They are needed for killing 
DieDieDie. You can always (without having resurrection in the extended, 
copy-like sense!) go back to an old revision, where the file was still alive, 
make a new child (changing the file maybe) and merge that with current head. 
Currently, this won't bring the file back, but it should. And for this to 
work, we need the markings.

Note: This is a basic problem to be solved independently and probably not 
related at all to the discussion we are having here.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-07 Thread Thomas Moschny
Patrick Georgi wrote:
 Couldn't resurrection be done with a revision item like

It's not about how to encode the resurrection action, but about recording the 
fact that a node is dead in a revision, and where it was killed. The latter 
is the important thing. If you simply omit that information, then, if you 
merge that revision with another revision that _has_ the node, you don't know 
whether to keep it in the merged node or not. It could have been added or 
resurrected on the one side and deleted or simply not yet be born on the 
other side. We want to use our standard *-merge algorithm, which clearly 
indicates whether the node is to keep or not, based on (i) the scalar value 
('aliveness') on both sides and (ii) the markings for that scalar on both 
sides. (i) is easy (node is there or not), but (ii) is what we have to care 
about. 

In general, we decided to cache markings for the interesting scalars (path, 
content, and attribute changes as well as births) together with the actual 
values (path, content, attributes) for each node of the revision graph. That 
is what we call a roster. Again, it's a cache, and could completely be thrown 
away and reconstructed from the changesets.

The death markings ((ii) from above) can also be easily reconstructed, but 
this would impose a perfomance penalty. That's why we have to think about way 
of also caching that information, be it as part of the roster, or as a 
separate graveyard, or whatever.

 [...]
 but:

   0 file a exists
  / \
 1   3   file a is changed (differently in both 1 and 3)

 2   4   file a is deleted (both in 2 and 4)
  \ /
   5

   6 file a is resurrected

 Which version should mtn resurrect? (it could ask the user, but we
 don't do that for other non-content issues, so what would be the
 default?)

This is the well-known problem of delayed content-conflicts arising on file 
resurrection. It *is* a content-conflict, and must be propagated to the user. 
In your example, there are only two changes conflicting, but you can easily 
imagine a case with N conflicts having suddenly to be solved.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-07 Thread Thomas Moschny
Markus Schiltknecht wrote:
 Thomas Moschny wrote:
 A   B
/ \ /|
   |   X |
   |  / \|
   | C   D
   |/
   E
 
  Suppose A has add foo, B has add foo, D is a simple merge, so
  D contains a single sutured file name foo. Suppose also that C
  has rename foo bar, and E is a simple merge, so E has two files
  foo and bar.
  Now, I merge E and D.  What happens?
 
  If D actually dropped both 'foo' nodes and created a new one 'foo' node
  with merged content, merging D and E would be a clean merge: drop 'foo'
  from A and drop 'bar' (being 'foo' from B), and add the new 'foo'. No
  conflict (with or without DieDieDie, in that example).

 Hm.. no, we cannot let drop merge cleanly with suturing. 

Agreed, but in the example, this is not the case anyway. The only thing I said 
was: *If* we implemented suturing as drop,drop,add (all within D), and not 
cared about the relationships between the newly created file and its 
predecessors, then there were no conflicts at all while merging D and E.

*But*, I changed my mind, and now think that we must care about file identity 
relationships. What we really want, is this: Pretend we could go back and 
give both 'foo' nodes in A and B the very same node identity. The whole 
monotone merging machinery would work as expected.

However, we simply can't do that. We can't go back and treat two different 
file identities as a single one. Well, we can do it, locally, but only *as 
soon as we know about the users wish to do so*. And the user in turn cares to 
tell us only when ncc conflicts arise. And that's the point with Nathaniel's 
example: D knows about the problem, but E does not, so in E we have two 
nodes, and a delayed (=not yet resolved) content conflict popping up when we 
merge D and E.

  In *that* case,
  there would be aliveness conflicts (and probably also a chain of content
  conflicts following) for old 'foo' and 'foo' aka 'bar' nodes, like
  Nathaniel described.

 Uh.. why does marking aliveness state influence the amount of content
 conflicts?

  But that probably shouldn't scare us anymore after we have learned
  how to control resurrection and the content conflict chains arising
  there.

 I've completely lost you here, sorry.

Let me put it in other words: Killing DieDieDie and implementing suturing 
properly will both yield merges where we are confronted with a series with 
more than two content conflicts on the same file.

 Yeah, I'm aware of that problem. However, I don't think suturing (nor
 copying) has much to do with file resurrection.

They do, see above. 

  That's why I am still thinking we need a new storage scheme that allows
  easily access to relevant parts of a roster - as we already do for
  restricted log and annotate, but in a cleaner fashion.

 Hm.. you mean splitting the aliveness information from rosters, as we
 have split height information? Or what do you have in mind?

No, no. Height information is also a cache, but at the level of revisions, and 
totally unrelated here.

Rosters are caches carrying per-revision, per-node information (see my other 
post), but are currently accessible per-revision only. All I'm saying is that 
we should break this up and allow access to node-specific parts of a roster.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-07 Thread Thomas Moschny
Markus Schiltknecht wrote:
 You might even have renames, so that the file to be resurrected isn't
 currently visible. How's the user supposed to resurrect the file then?

Now I lost you ;) Resurrection is about bringing dead files back to live, so 
it will always be invisible before resurrecting it, no?

 Doesn't the user rather want to resurrect a file from a specific
 revision (possibly with a new target filename). That would make
 resurrection a simple copy, and we wouldn't need to carry on node ids
 forever.

That he can do already, without need for implementing something: Simply use 
mtn cat and create a new file with old contents, poor mans copy. Works for 
deleted and non-deleted files. That's not what we are talking about.

All three problems (resurrection, suturing, and copying) will need to 
establish some sort of connection between node identities in the graph 
(resurrection: 1-1, suturing: N-1, copying 1-N). We currently don't have 
(a) a mechanism to achieve that and (b) only a small clue of what problems 
will arise afterwards. Don't let us confuse and/or intermix these two steps.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-07 Thread Thomas Moschny
Markus Schiltknecht wrote:
 Thomas Moschny wrote:
  However, we simply can't do that. We can't go back and treat two
  different file identities as a single one. Well, we can do it, locally,
  but only *as soon as we know about the users wish to do so*. And the user
  in turn cares to tell us only when ncc conflicts arise. And that's the
  point with Nathaniel's example: D knows about the problem, but E does
  not, so in E we have two nodes, and a delayed (=not yet resolved) content
  conflict popping up when we merge D and E.

 Correct. Anything wrong with that behaviour?

No, nothing wrong. This is a case however, our ui currently can't handle, 
because when merging D and E, possibly two conflicts have to be solved for 
the same file, because we have three versions to be merged into one.

 I've been concentrating on suturing, here. That one must conflict with
 drop and rename.

Agreed.

 How do you expect to run into a series with more than two content
 conflicts on the same file given only suturing as an additional feature?

Well, that was what njs' example was all about, and what I tried to explain 
(again) above. When merging D and E, you we have to suddenly merge three 
versions of the same file. This is what I call a series with more than two 
content conflicts on the same file. 

 You were still assuming nodes could change their aliveness state on one
 branch and be sutured on another branch and still merge cleanly.

No, I don't. I already said that I consider it reasonable to mark the 
aliveness state when changing, renaming, or maybe suturing nodes. The effect 
of this is that dropping in another branch would conflict with these 
operations, and thus I think I agree with you on that point, but simply 
expressed it differently.

- Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-07 Thread Thomas Moschny
Hi Markus,

Markus Schiltknecht wrote:
 Can you please be more specific? Which three versions of the same file
 are you referring to? I only see two [...]

Ok, here's the graph again. But be warned, we need a lot of characters ;)

   A: 1,foo,v   B: 2,foo,w
/\  /\
   /  \/  \
  |\__/\
  |  / C: 12,foo,x
  | /\
  |/  \
  |   D: 2,bar,y   \
  |__/  |
  E: 1,foo,v|
   \ 2,bar,y|
\___|
 F: ???

It looks more complicated, but it isn't. I just added sort of a manifest to 
each revision, with the following format: REV: node_id,path,contents.

A and B create foo independently, with different contents. D renames the one 
from B to bar and changes its content. E is a simple merge, no magic. It 
contains both files, foo and bar with different contents. Now, in C suturing 
takes place, denoted by the node_id '12' (whatever that means). In C also a 
content merge took place.

Now, consider F, merging E and C. How does its manifest look like?

I think there are two possibilities: F: 12,foo,z or F: 12,bar,z. In both 
cases, there are three contents to be merged: x, v, and y, and thus two 
content conflicts to be solved.

Another variant would be: F: 12,foo,u; 2,bar,y, i.e. F containing two 
files. In *that* case there would indeed be only a single content conflict: 
merge x and v into u.

What do you think F should look like in that scenario?

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-06 Thread Thomas Moschny
On Tuesday 06 May 2008, Markus Schiltknecht wrote:
 To be symmetric, suturing will have to drop both source files and create
 a new destination node. Only that way you can resurrect any of the two
 files later on, for example.

 I'm thinking of suturing as an atomic delete two, add one operation.

Like that idea, and I think it would solve Nathaniel's problematic example:

        A   B
       / \ /|
      |   X |
      |  / \|
      | C   D
      |/
      E

     Suppose A has add foo, B has add foo, D is a simple merge, so
     D contains a single sutured file name foo. Suppose also that C
     has rename foo bar, and E is a simple merge, so E has two files
     foo and bar. 
     Now, I merge E and D.  What happens? 

If D actually dropped both 'foo' nodes and created a new one 'foo' node with 
merged content, merging D and E would be a clean merge: drop 'foo' from A and 
drop 'bar' (being 'foo' from B), and add the new 'foo'. No conflict (with or 
without DieDieDie, in that example).

*Unless*, of course, we (after killing DieDieDie) decide that changing a 
file's content or changing it's name causes it's aliveness state being marked 
for the respective revision (in the sense of *-merge)[1]. In *that* case, 
there would be aliveness conflicts (and probably also a chain of content 
conflicts following) for old 'foo' and 'foo' aka 'bar' nodes, like Nathaniel 
described. But that probably shouldn't scare us anymore after we have learned 
how to control resurrection and the content conflict chains arising there.

 Hm.. maybe you need to outline your graveyard concept a little better.
 Last I've heard about file resurrection, we should simply add a boolean
 flag for alive or dead. That hardly carries any extra information, but
 could be merged the same as other attributes.

The problem is, that the all deleted files will have to stay in the rosters 
forever. This is not so much a problem storage-wise, because we only store 
leave rosters in full, and deltas for old rosters. Nevertheless it may have a 
serious impact on speed as we still (at least temporarily) construct a lot of 
full rosters for old revisions during common operations, e.g. pull.

That's why I am still thinking we need a new storage scheme that allows easily 
access to relevant parts of a roster - as we already do for restricted log 
and annotate, but in a cleaner fashion.

Regards,
Thomas

[1] Which might be reasonable: When I do change a file's name or it's 
contents, I'm surely making a statement that I want this file to be alive.


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] resolving name conflicts; file suturing vs drop

2008-05-05 Thread Thomas Moschny
On Monday 05 May 2008, Ludovic Brenta wrote:
 It seems to me that, if the node ids were content hashes, it would solve a
 lot of problems. For one thing, creating two identical files would yield
 the same node id. For another, creating two different files with the same
 name on different branches would become a simple content conflict.

What do you think the hash should be based on? Initial file content? While 
this may sound appealing, I don't think it is a good idea to use hashes 
instead of node ids at all. Because then to easily two files, which happen to 
have the same contents at birth time will erroneously (and magically, from a 
user's pov) get the same file identity. So we would then run into problems 
again. Also, think of directories, they don't have content of their own to be 
hashed.

What we really want here, is suturing.

- Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] Re: [Monotone-commits-nodiffs] Revision 63a44f0a3ebbed02b4426db2edd700c5a7b03a2f

2008-04-30 Thread Thomas Moschny
You wrote:
 Thomas, can you elaborate on the state of this http/json webservice you
 are refering to here:

 [EMAIL PROTECTED] wrote:
  First version of the plugin using the http/json webservice instead of
  spawning a mtn automate process itself. Some things still have to be
  fixed though.

 It sounds very interesting, but I don't currently understand how is it
 related to the trac plugin. 

It's simply that I realized that forking off and talking to a monotone 
subprocess from within the trac plugin is not the best thing to do, for 
several reasons:

- Depending on how trac is deployed (e.g. if mod_python is used), it might 
happen that we create multiple mtn subprocesses, which will put unnecessary 
(memory) stress on the server and increase the chances for locking issues.

- Monotone used via automate stdio currently outputs some of its error 
messages on stderr. But properly receiving everything from stdout *and* 
stderr, without blocking on stderr, is not easy (read: a big mess) to do in a 
portable way. You need either a non-blocking read(), or create your own 
eventloop, or use threads, or whatever.

This is when I decided to look at twisted, which promises to exactly do that. 
But even using twisted, things work best if done in a stand-alone application 
and not in a plugin somehow executed by the webserver. That's why I created 
that daemon. As I currently only use it from the plugin, it lives in the same 
branch.

 It's based on twisted, right?

Yes, it is.

Currently, it is read-only and tries to use a simple url schema. Information 
is fetched from an mtn subprocess via automate stdio, parsed and then sent to 
the client as json encoded data.

 Can I run a standalone http/json service?  

Yeah, sure. There is some usage information at the top of 
twisted/plugins/mserv.py. Feel free to test it and send me comments or 
suggestions about it.

Regards,
Thomas


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


Re: [Monotone-devel] interface version / command matrix

2008-03-29 Thread Thomas Moschny
On Saturday 29 March 2008 Thomas Keller wrote:
 Whether or not we're doing the cap.-bits thing it would surely be useful
 to define once and for all what should actually be an incompatible
 change. I haven't heard much of the other voices yet on this issue.

One criterion could be, whether there exists (or could exist) any client using 
that part of the interface in the normal way (as intended by the 
interface's developers), that needs to be fixed to continue using that part. 

This is - of course - very vague.

- Thomas




signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] url schemes

2008-03-29 Thread Thomas Moschny
On Saturday 29 March 2008 Philipp Gröschler wrote:
 To become more technical again: when in some distant future these URL
 features become available, would it then be possible for just any
 application to connect to a running 'mtn serve' process via network,
 issue one or more HTTP requests and get the relevant answers, without
 the need for this application to speak netsync?

The (experimental) nvm.nuskool branch already provides something similar: You 
can, via scgi, connect a mtn process to a webserver and it will serve 
json-over-http requests. This is bidirectional: you can query for revisions, 
files and file deltas, and you can send new ones back. The new gsync command 
(also in this branch) syncs a local database against such a server.

Meanwhile, I wrote a (quick'n'dirty) twisted plugin. It serves mtn content 
(read-only, for now) via http and json, over a tcp or a unix domain socket. 
Here, the requests are not coded as post-data in json, but directly in the 
url, very similar to those mentioned in the thread. I think I'll use that for 
tracmtn, so it will show up in a branch soon.

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] url schemes

2008-03-29 Thread Thomas Moschny
Markus Schiltknecht wrote:
 Hm.. sounds very similar to what I've been trying... nice to hear you
 also like twisted as much :-)

 Do you mind enclosing the URL scheme you are using here? I would very
 much like to get something together, which would serve many use cases
 (i.e. dumb servers, an automate API, nuskool, maybe even xmpp..).

Of course. However, I retain the right to change them if they turn out to be 
not as useful as I thought :) This is what is currently working (modulo bugs, 
of course).

  /revision/REV_ID
  /manifest/REV_ID
  /certs/REV_ID
  /file/FILE_ID (raw)
  /branches
  /tags
  /revisions/leaves
  /revisions/roots
  /revisions/parents/REV_ID
  /revisions/children/REV_ID
  /revisions/ancestors/REV_ID
  /revisions/descendants/REV_ID
  /revisions/select/SELECTOR
  /ancestry
  /version
  /cmd/COMMAND/ARG1/ARG2/... (raw)

Everything not marked with (raw) is served using a json response. Slashes in 
the SELECTOR (and the ARGs) have to be url-escaped (%2F).

The /cmd/COMMAND url simply passes through automate commands, mainly for 
debugging and easy access to mtn content using a browser. It cannot handle 
options, and is likely to disappear again.

Note that while the urls are easy changeable, actually thoughts also have to 
be put in the design of the json responses that replace the basic_io output 
of mtn (for revisions, manifests, certs, etc.).

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] url schemes

2008-03-29 Thread Thomas Moschny
Markus Schiltknecht wrote:
 Very nice. Really similar to what I have in mind. With the revisions, I
 remember doing something more like:

   /revision/$REVID/manifest
   /revision/$REVID/ancestors

There is not something like a REST standard, but as far as I understood, URLs 
for a restful service should start with a noun denoting what is returned by 
that URL, and followed by some id (or, in the case of returning a set, some 
other arguments to further confine that set).

So in my scheme, /revisions/... (plural) returns a list of 
revisions, /revision/... (singular) the contents of a single 
revision, /manifest/... returns a manifest, and so on.

 And I started with:

   /branch/$BRANCHNAME/heads

That in fact can be done with a selector, so I didn't provide an URL for it.

  Note that while the urls are easy changeable, actually thoughts also have
  to be put in the design of the json responses

 Right.

  that replace the basic_io output
  of mtn (for revisions, manifests, certs, etc.).

 Replace? You mean you would completely replace the basic_io format with
 a json based one? Or are you speaking of the format for transmission
 exclusively?

Instead of returning basic_io, my service returns json for everything besides 
file contents (and raw output in case of the backdoor /cmd/...).

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] interface version / command matrix

2008-03-28 Thread Thomas Moschny
Stephen Leake wrote:
 Which means we probably should use two digits for the minor number;
 we'll probably have more than 10 backward-compatible changes before
 the next incompatible change. 

This is generally not a problem if you use some sort of natural sorting order 
for comparing revision numbers, so the parts before and after the dot are 
compared separately.

- Thomas




signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] interface version / command matrix

2008-03-28 Thread Thomas Moschny
Thomas Keller wrote:
 Stephen Leake wrote:
  With your proposal, the automate interface version is not changed
  until just before the release, so my solution no longer works (for
  future changes).

 interface_version is not designed to support such things, because it
 would make it too complex to handle them. An easy solution to your
 problem could be: if you work with hand-compiled development versions
 of monotone, disable the version check in your application unless you
 work with a release version.

Which brings me to the question: Why don't we abandon this serial 
interface-revision number at all, and replace it with a keyword-based 
capabilities string resp. list?

This would work with a development version: together with, or directly after 
adding an automate function or a backwards compatible change, add the 
respective keyword to the list of capabilities. Each client could test on 
that keyword (capability) and instantaneously use the new function.

If a backwards-incompatible change is made, remove the old keyword and replace 
it with a new one.

It even works in case some other tool wants to provide a (subset of) mtn's 
automation interface. The subset case is (if it doesn't match that of an 
earlier version of 'original' monotone) impossible to announce with a single 
serial interface number.

There's a drawback: The list of capabilities can become quite long. And, you 
could argue, in most cases, it doesn't provide more information than you 
could get by simply trying to call an automate function, and catching the 
error returned saying that this function doesn't exist. But then, such a list 
is fetched only once, so its size probably doesn't matter.

- Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] interface version / command matrix

2008-03-28 Thread Thomas Moschny
Thomas Keller wrote:
  Which brings me to the question: Why don't we abandon this serial
  interface-revision number at all, and replace it with a keyword-based
  capabilities string resp. list?

 Hrm... you left out a proposal how such a keyword-based list should look
 like and how human errors can be prevented when compiling it. (Yeah, I
 know we could just make it commandname-sequence_no and raise the
 latter on each change, but still, this would be hand-compiled, unless we
 figure out something tricky and expand the automate command class by a
 version field.)

These are two questions. First, I /don't/ think there should be some number 
added to a keyword, or at least it shouldn't have a special meaning.[1]

Again, in my proposal, for a backwards compatible change or a new method, a 
new keyword should be *added*, and for a non-compatible change (client needs 
to be changed if it used that functionality), a keyword should be *removed*.

No versioning of keywords, because that (recursively) leads to the same 
problems we are discussing for the current interface_version.

- Thomas


[1] So (feature-1 != feature-2) but not (feature-1  feature-2)


-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Re: mtn:// sync

2008-03-26 Thread Thomas Moschny
Markus Schiltknecht wrote:
 No, seriously, what's the problem you want to solve fundamentally? Are
 you saying you never want to download revision without it's certs?

Yes (...without /all/ of its certs).

I know that certs are loosely coupled to their respective revision. 

Nevertheless, it is unexpected to get, during a sync, a revision, and all its 
other certs, but not its branch certs (which in turn shows, that there must 
be some logic explicitly blocking them, because they are, in principle, not 
different from the other certs that are transmitted).

Regards,
Thomas



signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Re: mtn:// sync

2008-03-26 Thread Thomas Moschny
Derek Scherger wrote:
 Markus Schiltknecht wrote:
  Hi,
 
  Thomas Moschny wrote:
  Ok. I vaguely had in mind that there also was a non-technical reason.
 
  I don't know any non-technical reason.

 I believe it's a consequence of the invariant enforced by the database
 that no revision will be stored unless it's parents are also stored.
 This ultimately requires that all ancestry for a revision is in the
 local database before the revision can be stored.

This is clear. But the question was, is there a non-technical reason to not 
sync the branch certs of these ancestor revisions?

Regards,
Thomas


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Time to think about a release?

2008-03-25 Thread Thomas Moschny
On Friday 21 March 2008, Markus Schiltknecht wrote:
 Between 0.39 and now, nvm.experiment.encapsulation has landed, which has
 been discussed around the time of that release.

Would you mind adding some words to NEWS about this, and especially about any 
positive (or negative?) impact this might have on the end user or on clients 
using the automation interface? Will all or some of the locking issues go 
away in 0.40?

Regards,
Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Time to think about a release?

2008-03-25 Thread Thomas Moschny
On Tuesday 25 March 2008, Markus Schiltknecht wrote:
 Thomas Moschny wrote:
  Would you mind adding some words to NEWS about this, and especially about
  any positive (or negative?) impact this might have on the end user or on
  clients using the automation interface? Will all or some of the locking
  issues go away in 0.40?

 Thanks for the reminder, I will do -right after fixing the
 schema_migration test...

 For the end user, this change should not have any noticeable effect,
 except mtn being a tiny bit faster and the database taking somewhat less
 space. Every other difference in automate or locking behavior should be
 considered a bug. :-)

How can the changes in nvm.experiment.encapsulation make the database take 
less space?

And why would would you consider changes in the locking behavior a bug?

In fact, the current behavior is buggy (imho), because mtn acquires 
coarse-grained write-locks to the database, so e.g. concurrent access via 
automate and mtn serve is not possible. And to me it seemed the efforts in 
nvmee were part of the plan to overcome this issue.

Regards,
Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Re: mtn:// sync

2008-03-25 Thread Thomas Moschny
On Tuesday 25 March 2008, Markus Schiltknecht wrote:
 Thomas Moschny wrote:
  Any time this comes up, I wonder again, what was the argument for
  including revs that are ancestors of revs you want to sync, but at then
  excluding their branch certs? I always found this counterintuitive.

 I think that's just an effect of how netsync works, with its separate
 merkle tries for certs and revisions.

Ok. I vaguely had in mind that there also was a non-technical reason.

  So to me, making net.venge.monotone mean net.venge.monotone.*, does
  look like an ugly hack to match user's expectations here without
  addressing the real issue.

 Making net.venge.monotone mean that branch and all of its children
 would result in fetching the associated certs as well, because all child
 branches were included. Thus I even think that would fix the silly issue
 you pointed out above, no?

Exactly, but that's why I said it looks like an ugly hack. It fixes the 
problem accidentally, ...

 (For the common case of syncing net.venge.monotone, that is).

... and for a common usage pattern, but not fundamentally.

Regards,
Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Time to think about a release?

2008-03-25 Thread Thomas Moschny
On Tuesday 25 March 2008, Markus Schiltknecht wrote:
 Does it make sense to include all those internal
 changes there? Hm.. probably mentioning it shortly, as I did, does not
 hurt, does it? What do you think?

Imho NEWS isn't solely intended for the end users, but also for the 'devs'  
who do not following each and every commit, but want to stay up-to-date with 
the general picture.

- Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] mtn:// sync

2008-03-20 Thread Thomas Moschny
On Thursday 20 March 2008, Richard Levitte wrote:
 Peter Stirling [EMAIL PROTECTED] said:

 peter Is using '' a good idea

  is the standard parameter divisor for parametrised URLs, so you
 can't get away from that without getting trouble...

We could have a path-like syntax, i.e. using '/' as the divisor. This seems to 
be not too uncommon for web applications.

Regards,
Thomas

-- 
Thomas Moschny  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


  1   2   3   >