Re: [Monotone-devel] sutures [Re: Time for a release]

2008-12-26 Thread Pavel Cahyna
On Fri, Dec 26, 2008 at 09:43:17AM -0500, Stephen Leake wrote:
 Pavel Cahyna pavel.cah...@matfyz.cz writes:
 
   I am asking mainly because they could fix a really annoying problem
   with pluck IIUC: that if you pluck a revision which introduces a
   file, monotone does not recognize it as the same file as the
   original one and subsequent pluck which modify this file will fail.
   See
   http://lists.gnu.org/archive/html/monotone-devel/2007-08/msg00159.html
  
  I don't see how file suture would solve that; there are not two
  files being sutured. 
 
  OK, suturing applies only to files, not directories?
 
 In the current implementation, yes, but there's no signficant reason
 for not suturing directories; I just wasn't working on it.
 
 I still don't see how suturing helps here. Perhaps you could repeat
 the example, and add fictional suturing commands that would solve it.

I am not sure how would fictional suturing commands look like
in general, but basically I mean that the directory a added by the
first pluck should be sutured with the directory a added by the second
pluck because they are actually the same. The same with the file f in
the file-based example.

 (...)
  It seems to me that f created by the first pluck and the one patched
  by the second are really files to be sutured, because they are actually
  the same file but monotone does not know that.
 
 That makes sense, since the user originally only created one file 'f'.
 
 However, I don't think they should be sutured; mtn should recognize
 them as the _same_ file; they have the same node id in the database.

Can it? I thought that files added by pluck are as if added
independently. Are you sure they have the same node id in the database?

 
  with the new file-based example:
 
  mtn: conflict: duplicate name 'f' for the directory ''
  mtn: added as a new file on the left
  mtn: added as a new file on the right
  mtn: conflict: file 'f' dropped on the left, changed on the right
  mtn: error: merge failed due to unresolved conflicts
 
 These two conflict messages are conflicting; one says there are two
 new 'f' files, the other says one was dropped. So mtn is confused.
 (which is just an example of how much work there is to do on this
 branch)
 
 
  How to use suturing in your branch? 
 
 There is not (yet) a user command to suture. See the various
 'tests/resolve_duplicate_name_conflict*' tests for the conflict
 resolutions that are implemented; one of them probably handles this
 case.
 
 It appears that 'pluck' introduces a whole new set of conflicts that
 need resolution. Although as I said above, I think 'pluck' should be
 intelligent enough to know that the two 'f' files are in fact the same
 file in this case.
 
 On the other hand, 'pluck' is a somewhat dangerous command in the
 first place. Can you give a high level description of why you are
 using it? In particular, using it twice?

Well, if you cherrypick a selected change from one branch to another and
this change creates new file(s), it is likely that later you will need
other changes/fixes to them so you will pluck again a changeset which
patches those newly created file(s).

My example is a bit artificial bcause it shows two successive plucks. In
reality it would look more like:

pluck from branchA to branchB, creates file f
hack on branchB
later:
note that branchA has interesting fixes for the file f, pluck again -
conflict

There are already two tests for the directory variant of the bug: 
pluck_directory_bug_1 and pluck_directory_bug_2. The first has a commit
between the plucks so is closer to a realistic situation, while the second
does not have any commits between just like the one I showed here.

Pavel


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


Re: [Monotone-devel] sutures [Re: Time for a release]

2008-12-26 Thread Pavel Cahyna
On Fri, Dec 26, 2008 at 04:28:53PM -0500, Stephen Leake wrote:
 Pavel Cahyna pavel.cah...@matfyz.cz writes:
  On the other hand, 'pluck' is a somewhat dangerous command in the
  first place. Can you give a high level description of why you are
  using it? In particular, using it twice?
 
  Well, if you cherrypick a selected change from one branch to another and
  this change creates new file(s), it is likely that later you will need
  other changes/fixes to them so you will pluck again a changeset which
  patches those newly created file(s).
 
 This is normally handled by branches, and merging the _whole_ branch.
 You are implying that there are other changes in the source branch
 that you _don't_ want. 

Sure, I said cherrypick a selected change, implying that I don't want
the others.

 
 So the general solution is to design your branches better, so pluck is
 not necessary.

This is not feasible as a general solution, because it would require
knowing in advance all the conceivable future uses of the branching scheme
at the time one commits a revision. I.e. it would require knowing in
advance what changes will anybody ever want to merge separately from the
others.

Consider sources with a main (developement) branch and release branch(es).
You don't want to merge the whole main branch to a release branch, ever.
One just carefully selects bugfixes and minor new features from the main
branch and applies them to a release branch. pluck would be the way to do
it if it DTRT. I do not see how better one could design this branching
scheme...

BTW - does monotone itself have release branches? I.e. are bugfixes
merged to a stable branch instead of requiring everybody to update to the
fixed version of the development branch?

 
 If you don't have sufficient control over the branching policies, I
 can see how pluck might be part of a useful workflow.
 
  There are already two tests for the directory variant of the bug: 
  pluck_directory_bug_1 and pluck_directory_bug_2. The first has a commit
  between the plucks so is closer to a realistic situation, while the second
  does not have any commits between just like the one I showed here.
 
 The current pluck implementation builds three rosters, does
 a merge, computes a changeset from the 'from' revision to the merged,
 and applies that changeset to the working tree.
 
 I don't understand why it doesn't just apply the 'from to to'
 changeset to the current working directory, as the description of the
 command implies. The description goes on to say using a merge allows
 pluck to intelligently handles renames, conflicts and so on; this
 case demonstrates otherwise :).

Maybe it intelligently handles the case when a file common between the two
branches is renamed in one of them before the pluck?

 It would be interesting to test the none-merge approach and see if it
 solves this current problem and those tests.
 
 Interestingly, the existing test pluck_basics demonstrates the same
 conflict, but implies it is the correct/desired behavior.
 
 I suspect there isn't a way to make 'pluck' do what everyone wants of
 it.

I think that making it work like cvs up -j does would be an improvement,
even if it proper rename tracking were lost in exchange.

Pavel


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


[Monotone-devel] sutures [Re: Time for a release]

2008-12-16 Thread Pavel Cahyna
Hello,

On Sun, Dec 14, 2008 at 09:22:10AM -0500, Stephen Leake wrote:
  A few things have to happen before, though:
 
  * Had anybody beside the implementor taken a deeper look and tried the
  new mtn conflicts functionality? Is this ready to ship as is?
 
 not to my knowledge; one person used it and aggreed it was an
 improvement over the current conflict resolution process (which is
 still there).

What is the status of the planned file sutures? Are they related to the
new conflicts functionality? I am asking mainly because they could fix a
really annoying problem with pluck IIUC: that if you pluck a revision
which introduces a file, monotone does not recognize it as the same file
as the original one and subsequent pluck which modify this file will fail.
See http://lists.gnu.org/archive/html/monotone-devel/2007-08/msg00159.html

Pavel


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


[Monotone-devel] Re: Re: Future of monotone

2008-01-28 Thread Pavel Cahyna
On Mon, Jan 28, 2008 at 08:51:18PM +0100, Markus Schiltknecht wrote:
 Hi,
 
 Thomas Moschny wrote:
 Maybe. I wrote it that way for brevity. As some certs may have more logical 
 value fields then others, but should all be put in the same SQL table, you 
 would have to stuff some valued into the same field (from the tables pov), 
 no?
 
 Yes, all the information which can be different from cert to cert. That is: 
 'tag', 'branch', the test result information.
 
 But IMO not: 'signer', 'author', 'date', and 'comment'
 
 There's something missing. Where would you put the 'comment', 'branch', 
 'tag' 
 and 'value' data from the table above? 
 
 Oops, yeah, I forgot about the comment field. Let's try it again:
 
 
 CREATE TABLE new_revision_certs
 (
 hash not null unique, -- consistency checking hash
 rev_id not null,  -- joins with revisions.id
 name not null,-- name of the cert
 date not null,-- timestamp of the cert
 comment,  -- optional comment on the cert
 value not null,   -- the tag name or test result value
 author not null,
 signer not null,
 signature not null
 );
 
 With that table, we would have a reduction to the following certs:
 
  - 'commit(-message)' certificate  (where changelog - comment and
 branchname - value)
  - 'tag' certificate   (tagname - value)
  - 'test-result' certificate.  (test result - value)
 
 
 Every cert, even private ones, would then be required to also have a date 
 and 
 an author. Optionally also a comment.
 
 In a way, this certainly complicates matters. And I'm not quite convinced, 
 that 
 the above scheme is better than what we have now. However, I certainly agree 
 that we should maintain the connection between the current 'author', 
 'branch', 
 'changelog' and 'date' certs, which are mostly created in one atomic step.

I thought that monotone philosophy is different and branch certs are
independent of commits and mean review/approval - mtn approve.

Pavel


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


[Monotone-devel] Re: Re: Re: Re: Re: monotone on alpha, possibly only Debian (was Re: ikiwiki monotone support)

2008-01-17 Thread Pavel Cahyna
On Thu, Jan 17, 2008 at 05:54:06PM -0500, Jack Lloyd wrote:
 On Thu, Jan 17, 2008 at 11:42:53PM +0100, Pavel Cahyna wrote:
 
  It compiles; ./check output is attached. I interrupted it after 7 minutes
  when it did not seem to make any progress.
 
 If division/modulo is broken as badly as the tests suggest, it's
 highly likely that one of the power_mod algorithms had gone into an
 infinte loop. In particular it looks like it is possible with this bug
 for a % n  n -- that is going to cause problems.
 
 The most likely files to be miscompiled that would break things in
 this way are mp_misc.cpp, divide.cpp, then the other mp_* files, then
 the big_* files (in order of likelyhood).

I compiled mp_misc.cpp with -O0, relinked with the rest and all test now
pass.

Have a look at
http://colabti.de/irclogger/irclogger_log/monotone?date=2007-06-15,Fri#l165
too, there is a talk about other compilers mis-optimising botan.

Pavel


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


[Monotone-devel] Re: Re: Re: Re: monotone on alpha, possibly only Debian (was Re: ikiwiki monotone support)

2008-01-17 Thread Pavel Cahyna
On Mon, Jan 14, 2008 at 05:20:40PM -0500, Jack Lloyd wrote:
 On Mon, Jan 14, 2008 at 10:02:44PM +0100, Pavel Cahyna wrote:
 
  I have tried that, but:
  
  g++ -pthread -Ibuild/include -O2 -finline-functions -mcpu=ev5 -D_REENTRANT 
  -ansi -Wno-long-long -fpermissive -W -Wall -fPIC -c 
  modules/es_unix/unix_cmd.cpp -o build/lib/unix_cmd.o
  /usr/include/g++/cwchar:193: error: '::vfwscanf' has not been declared
  /usr/include/g++/cwchar:199: error: '::vswscanf' has not been declared
  /usr/include/g++/cwchar:205: error: '::vwscanf' has not been declared
  /usr/include/g++/cwchar:222: error: '::wcstof' has not been declared
  *** Error code 1
 
 Argh! Could you do me a favor and confirm/deny that compiling the file
 containing just the lines:
 
 #define _XOPEN_SOURCE 500
 #include string
 
 fails with the same error? (And also provide me with your exact OS
 release and compiler versions so I can test this further and hopefully
 fix whatever it is I have broken).

[EMAIL PROTECTED]:~/test$ cat  string.C
#define _XOPEN_SOURCE 500
#include string
[EMAIL PROTECTED]:~/test$ make string.o
c++ -O2  -c string.C
/usr/include/g++/cwchar:193: error: '::vfwscanf' has not been declared
/usr/include/g++/cwchar:199: error: '::vswscanf' has not been declared
/usr/include/g++/cwchar:205: error: '::vwscanf' has not been declared
/usr/include/g++/cwchar:222: error: '::wcstof' has not been declared
*** Error code 1

Stop.
make: stopped in /home/pavel/test

[EMAIL PROTECTED]:~/test$ gcc -v
Using built-in specs.
Target: alpha--netbsd
Configured with: /usr/src/tools/gcc/../../gnu/dist/gcc4/configure 
--enable-long-long --disable-multilib --enable-threads --disable-symvers 
--build=i386-unknown-netbsdelf4.99.3 --host=alpha--netbsd --target=alpha--netbsd
Thread model: posix
gcc version 4.1.2 20061021 prerelease (NetBSD nb3 20061125)
[EMAIL PROTECTED]:~/test$ uname -sr
NetBSD 4.0_RC3

 I know you are probably not terribly interested in acting as my
 personal buildbot, but if you wanted to work around this problem (and
 hopefully check if this problem with Monotone you're seeing is
 actually a Botan compilation problem vs something else in
 lib3rdparty.a), try:
 
 ./configure.pl --noauto gcc-netbsd-ev5
 
 which will disable all of the platform-specific code except a small
 stub for reading /dev/urandom (I'm assuming here the bad code
 generation, if that is in fact the issue, is in the low level crypto
 code - in the past this has tended to be true, and also much of the
 platform-specific code is excised in the version included in Monotone
 already).

$ ./configure.pl --noauto gcc-netbsd-ev5
 (error): Arch type ev5 isn't known (try --help)

I am using gcc-netbsd-alpha.

It compiles; ./check output is attached. I interrupted it after 7 minutes
when it did not seem to make any progress.

Pavel
Beginning validation tests...
Testing Block Ciphers: 
..
Testing Cipher Modes (Encryption): 
Testing Cipher Modes (Decryption): .
Testing Stream Ciphers: 
Testing Hash Functions: .
Testing MACs: ..
Testing KDF Algorithms: .
Testing S2K Algorithms: ...
Testing Encoders/Decoders: 
Testing BigInt Addition: .
Testing BigInt Subtraction: .
Testing BigInt Multiplication: ...
Testing BigInt Square: ...
Testing BigInt LeftShift: .
Testing BigInt RightShift: .
Testing BigInt Division: .
ERROR: operator/
a = 
1A923B3406CBE81B093CE418F6A73107F504502B2E3D1B200762FCF6062723DE405CAB0AEA
b = 184F03E93FF9F4DAA797ED6E38ED64BF6A1F01
c = 117D3DB34AD005954459BE9ABEDD0E5DEB4EA
d = 117D332B4C2D80B9A71CF054E6B545F07B9EE8E2CAF9A54557C66
e = 117D332B4C2D80B9A71CF054E6B545F07B9EE8E2CAF9A54557C66
ERROR: BigInt Division failed test #3

ERROR: operator/
a = 38643020ACA9585367FC9BAB0D8049169F1C3F7B7183
b = 3
c = 12CC100AE43872C677FEDE8E59D56DB235096A7E7B2B
d = 12CC100AE43872C677FE33E3AF2A185CDFB4152925D6
e = 12CC100AE43872C677FE33E3AF2A185CDFB4152925D6
.ERROR: BigInt Division failed test #4

ERROR: operator/
a = 119F4F0A35F4EB9A107EF0A5743816D711B8D3D69378F
b = D
c = 15B06147A4DEABD14F61282E18E29243C70ADD56DCE3
d = 15B06147A4DE0E4776C300CBA2BB2FCD9FA8672F7A6D
e = 15B06147A4DE0E4776C300CBA2BB2FCD9FA8672F7A6D
ERROR: BigInt Division failed test #5

ERROR: operator/
a = A11E405D5B086A12DFF64F0D4B25631C0FBE6C3C1FC2
b = 5
c = 20394012ABCE7B9D5FFE0FCF756DE09F365948D8D326
d = 20394012ABCE7B9D5FFE0FCF756D13D2698C7C0C065A
e = 20394012ABCE7B9D5FFE0FCF756D13D2698C7C0C065A
ERROR: BigInt Division failed test #6
..
ERROR: operator/
a = 
2A1640FDEBDA73842CF7B19B61F0F8D89AAF836250C2798CD3E0AF43FC9863A6B6BC94AA8F003EAC17E83781E9285273D7E5DE28A857BD84306CD82CFD33D
b

[Monotone-devel] Re: monotone on alpha, possibly only Debian (was Re: ikiwiki monotone support)

2008-01-14 Thread Pavel Cahyna
On Sun, Jan 13, 2008 at 05:45:44PM -0500, Zack Weinberg wrote:
 On Jan 13, 2008 4:32 PM, Pavel Cahyna [EMAIL PROTECTED] wrote:
 
  I use monotone on NetBSD/alpha. The issues I was facing were: 1/ under
  NetBSD 3, monotone did not compile, because gcc 3.3.x had apparently
  completely broken exception support. This works in NetBSD 4 with gcc
  4.1.2. 2/ I had to disable optimizations in botan, otherwise monotone does
  not work.
 
  What gcc has the Debian release you are speaking about?
 
 The problem is with current Debian unstable:
 
 $ gcc --version | head -1
 gcc (GCC) 4.2.3 20080102 (prerelease) (Debian 4.2.2-5)
 
 I'm seeing mysterious testsuite failures when the entire binary is
 compiled with -O2, and fewer, different mysterious testsuite failures
 when the entire binary is compiled with -O1.  See

I had to disable optimizations; -O1 did not work, either.

Pavel


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


[Monotone-devel] Re: Re: monotone on alpha, possibly only Debian (was Re: ikiwiki monotone support)

2008-01-14 Thread Pavel Cahyna
On Mon, Jan 14, 2008 at 01:04:24PM -0500, Zack Weinberg wrote:
 On Jan 14, 2008 3:54 AM, Pavel Cahyna [EMAIL PROTECTED] wrote:
   I'm seeing mysterious testsuite failures when the entire binary is
   compiled with -O2, and fewer, different mysterious testsuite failures
   when the entire binary is compiled with -O1.  See
 
  I had to disable optimizations; -O1 did not work, either.
 
 Just to be clear: you get *reproducible* testsuite failures when the
 entire binary is compiled with -O1, and none when it is compiled with
 -O0?

I haven't run any testsuite. The binary does not work when compiled with
-O1. It works without optimizations and also with
CXXFLAGS=-mcpu=21164a -g3 CFLAGS=-O2 -mcpu=21164a -g3 MTN_CXXFLAGS=-O2

which ensures that only C++ 3rd party libraries are built without
optimizations and everything else is built with -O2. (I was not able to
restrict the scope of disabling optimizations further to include only
botan.)

 If so, that is either a compiler bug indeed, or a place where gcc has
 gotten cleverer with its optimizations and broken an improper
 assumption in the source code.  Either way, the next step, if you're
 up for it, would be to find out which object file has the bad machine
 code in it (start from an -O0 build, and one at a time, swap out .o
 files for ones compiled at -O1, relink and retest; don't neglect
 lib3rdparty.a).

lib3rdparty.a is where the error must be. Unfortunately due to extreme
slowness of monotone compilation I don't think I'll have the patience to
investigate further in the near future. And unfortunately I've deleted the
object files for the compilations to free disk space.

Pavel


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


[Monotone-devel] Re: Re: Re: monotone on alpha, possibly only Debian (was Re: ikiwiki monotone support)

2008-01-14 Thread Pavel Cahyna
On Mon, Jan 14, 2008 at 02:12:38PM -0500, Jack Lloyd wrote:
 On Mon, Jan 14, 2008 at 08:03:55PM +0100, Pavel Cahyna wrote:
 
  lib3rdparty.a is where the error must be. Unfortunately due to extreme
  slowness of monotone compilation I don't think I'll have the patience to
  investigate further in the near future. And unfortunately I've deleted the
  object files for the compilations to free disk space.
 
 I don't suppose you could you try building just Botan and seeing if
 its testsuite passes? (Botan is much less memory intensive to compile
 than all of Monotone.)

I have tried that, but:

g++ -pthread -Ibuild/include -O2 -finline-functions -mcpu=ev5 -D_REENTRANT 
-ansi -Wno-long-long -fpermissive -W -Wall -fPIC -c 
modules/es_unix/unix_cmd.cpp -o build/lib/unix_cmd.o
/usr/include/g++/cwchar:193: error: '::vfwscanf' has not been declared
/usr/include/g++/cwchar:199: error: '::vswscanf' has not been declared
/usr/include/g++/cwchar:205: error: '::vwscanf' has not been declared
/usr/include/g++/cwchar:222: error: '::wcstof' has not been declared
*** Error code 1

Stop.



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


[Monotone-devel] Re: ikiwiki monotone support

2008-01-13 Thread Pavel Cahyna
On Sun, Jan 13, 2008 at 03:14:48PM -0500, Zack Weinberg wrote:
 Incidentally, do you have access to Debian/alpha gear?  The #1
 outstanding problem with the existing monotone packages for Debian is
 that they don't reliably build on alpha.  I *think* this is a compiler
 issue but I can't prove it because I don't have access to alpha
 hardware (debian or otherwise).

I use monotone on NetBSD/alpha. The issues I was facing were: 1/ under
NetBSD 3, monotone did not compile, because gcc 3.3.x had apparently
completely broken exception support. This works in NetBSD 4 with gcc
4.1.2. 2/ I had to disable optimizations in botan, otherwise monotone does
not work.

What gcc has the Debian release you are speaking about?

Pavel


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


[Monotone-devel] Re: cvs_import

2007-11-08 Thread Pavel Cahyna
On Wed, Nov 07, 2007 at 04:53:52PM +0100, Markus Schiltknecht wrote:
 For everybody interested in the inner workings of that beast, I've updated 
 the 
 wiki: http://www.venge.net/mtn-wiki/CvsImport.
 
 There are still some issues, i.e.:
 
  * non-UTF-8 filenames (i.e. as in the NetBSD repository). The tree_walker 
 fails on those.

Uh, where do we have a non-UTF-8 filename?

Pavel


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


[Monotone-devel] merge bug? - silent data change

2007-08-25 Thread Pavel Cahyna
Hello,

could you please look at

http://mtn-host.prjek.net/viewmtn/ufs-trans/revision/info/951b0672754af7e3272775d548c04e3659089bd6

it can be obtained by mtn pull ufs-trans.mtn-host.prjek.net.
look at the diff of sys/dev/wscons/wsdisplay_vcons.c
(http://mtn-host.prjek.net/viewmtn/ufs-trans/revision/diff/6eb5489725a8c1b10bab48b8341fc5b3e57287a4/with/951b0672754af7e3272775d548c04e3659089bd6/sys/dev/wscons/wsdisplay_vcons.c)

it is obviously nonsensical. I think that there is no reason to produce
such a difference so it is apparently a merge bug.

(comparing with the common ancestor
0795cc5f13f244bba69fd77457427d06026413e0, the file changed only on one
side, 6eb5489725a8c1b10bab48b8341fc5b3e57287a4)

two other people checked the merge independently and we always arrived
at the same revision hash, so I think we can rule out some local
corruption.

any ideas?

Pavel Cahyna


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


[Monotone-devel] Re: Monotone fails to detect certain changes in files

2007-08-25 Thread Pavel Cahyna
On Fri, Aug 24, 2007 at 05:03:15AM +0100, Nuno Lucas wrote:
 I believe the problem is that I used a small data conversion program
 that changed the files by mmaping them (it's a small utility to
 convert files with a MS-DOS codepage to ISO-8859-1 and some few other
 simple character table-based conversions), and it seems that use-case,
 with the noatime mount option, doesn't get noticed.
 
 Not sure if it really is a bug or something I should expect because of
 the way my system is setup and the way I work with the mmaped file.

Does your small utility use msync()? Apparently without msync, file
modification change is supposed to be updated at some point in the
future, which might be after monotone checks it.

Pavel


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


[Monotone-devel] pluck failure - successive pluck in the same directory

2007-08-19 Thread Pavel Cahyna
Hello,

I have encountered an annoying problem whit pluck. I try to pluck two
revisions. The first one adds a directory, possibly with some files. Pluck
succeeds. Tse other revision adds a file under that directory. Pluck of
this revision (after the first one) fails with:

mtn: warning: orphaned node conflict on node x, dead parent y, name f
mtn: warning: resolve non-content conflicts and then try again.
mtn: error: merge failed due to unresolved conflicts

Besides the fact that the error message is horribly user unfriendly, this
should in my humble (and naive) opinion Just Work. I guess it Just Works
with cvs up -j... -j...

Attached is a test case as requested on #monotone .

Pavel
#!/bin/sh
mtn db init --db=test.db
mtn setup --db=test.db --branch plucktest.branch plucktest
cd plucktest
mtn add .
mtn diff
mtn commit -m'empty first rev'
BASE=$(mtn auto get_base_revision_id)
mtn mkdir a
mtn commit -m'add a dir'
FIRST=$(mtn auto get_base_revision_id)
touch a/f; mtn add a/f
mtn commit -m'add a file'
SECOND=$(mtn auto get_base_revision_id)
mtn up -r$BASE
mtn mkdir b
mtn commit -m'some other random nonconflicting change'
mtn pluck -r$FIRST
mtn pluck -r$SECOND
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] Re: Re: Re: linus talk on git

2007-05-30 Thread Pavel Cahyna
On Wed, May 30, 2007 at 10:03:31AM +0800, Matt Johnston wrote:
 On Tue, May 29, 2007 at 09:41:05PM +0200, Pavel Cahyna wrote:
  
  I also observe very poor scaling down of the status command. I have a
  workspace with 17507 files. There is a subdirectory with 17 files. In this
  subdirectory:
  
  $ time mtn status .
  (...)
 71.72s real68.37s user 0.81s system
  
  $ time mtn status
  (...)
 91.40s real85.19s user 1.78s system
  
  For comparison: the same 17 files, from a CVS repository. cvs has to
  contact a remote server across the Atlantic.
  
  $ time cvs status
  (...)
  8.70s real 0.14s user 0.09s system
  
  This is lame. Why should status of 17 files take almost the same time as
  status of 17507 files?
 
 Is inodeprints enabled for that workspace? (mtn refresh_inodeprints.)

Yes, I had done this before running the test.

In fact this points to one possible scalability problem: there is a 1.5MB
inodeprints file and monotone has to read the whole file, even if it
needs to know status of only a few files. I doubt this is the main problem
here, though.

 How large are the files/database? 

The database has 65MB and only one revision, which is the import of
everything.

Pavel


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