New submission from Zooko <[EMAIL PROTECTED]>: Darcs is now unusable for my co-worker Rob. He has started using rsync to transfer between systems. There's always the possibility that he will go back to using SVN. Much of the analysis below is suspect because this happens only on Windows as far as I know.
--Z <zooko> [11:32:35] [EMAIL PROTECTED]: push's been running for 10 min. <zooko> [11:32:46] [EMAIL PROTECTED]: I wish it were over. <zooko> [11:32:51] zooko2: The #darcs folks want to know what's the message that it prints out. <zooko> [11:32:54] zooko2: Something about copying a file. <zooko> [11:33:14] zooko2: They are investigating. <zooko> [11:33:28] [EMAIL PROTECTED]: this message? <zooko> [11:33:29] [EMAIL PROTECTED]: darcs4b3406 | 0 kB | 1.0 kB/s | ETA: 00:00:00 | 100% <zooko> darcsf8004a | 0 kB | 0.2 kB/s | ETA: 00:00:00 | 100% <zooko> darcs726601 | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100% <zooko> darcs4ee832 | 6 kB | 6.9 kB/s | ETA: 00:00:00 | 100% <zooko> darcs2dd35b | 1 kB | 1.8 kB/s | ETA: 00:00:00 | 100% <zooko> darcs1a8291 | 1 kB | 1.5 kB/s | ETA: 00:00:00 | 100% <zooko> darcs2eeb7e | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100% <zooko> darcs2bdb50 | 0 kB | 0.2 kB/s | ETA: 00:00:00 | 100% <zooko> darcs1ad51c | 0 kB | 0.3 kB/s | ETA: 00:00:00 | 100% <zooko> darcs1cf758 | 1 kB | 1.1 kB/s | ETA: 00:00:00 | 100% <zooko> <zooko> [11:33:35] [EMAIL PROTECTED]: pages and pages of it. <zooko> <zooko> Note that the number of lines grows apparently linearly with how long we've been adding patches to our project. <zooko> So it runs slower every day for Rob. <kowey> huh... that's ssh that's doing that, i think <kowey> normally, when darcs calls ssh, we send the output to /dev/null <kowey> s/ssh/scp/ in this case <zooko> Yes. <zooko> So apparently darcs calls ssh O(n) times where n is the number of patches. <zooko> scp I mean. <kowey> ok, so it's not the output that's the problem, but the fact that it's doing all these scp - right? <zooko> Right. <kowey> ok... so i think i've got an analysis for the problem -- this doesn't mean i want to fix it, but maybe we can write this in a bug report <zooko> Ok. <kowey> the thing is that darcs push has to get (minimally) a list of patches from the other side, some of the patches (i don't know which, and why) in order <kowey> to make a comparison as to what patches the other guy has and what patches you've got <kowey> to do this, it calls read_repo, which does 2 things <kowey> 1) it reads the inventory <kowey> 2) in a NON-LAZY fashion, it fetches all the patches in _darcs/patches <arjanb> it should need only the inventory for the comparison part.. <kowey> maybe... instead of calling read_repo, we can call lazily_read_repo (or just fetch the inventory) <kowey> does the local end have to do any commutation type stuff? i doubt it... i thought push was just sending the stuff over and asking the other side to do apply? <zooko> As far as I know. <zooko> It should just (a) figure out which patches to prompt the user about, <zooko> (b) interact with the user, <zooko> (c) send those patches (including required patches that the other side lacks) over to the other side. <kowey> the problem is that (a) is harder than it looks, i'll bet <kowey> maybe it is impossible to tell what patches you and the other side have in common without actually getting the patches themselves <zooko> Hm. <kowey> (i hope it isn't, of course) <zooko> Ah yes. <zooko> This is the part of darcs basic architecture that I don't like. <zooko> It computes this kind of metadata -- which patches depend on which -- at runtime, from the patches. <zooko> Rather than at patch-creation time and then storing the metadata as metadata. * kowey suspects that the metadata is often in the interaction between patches <kowey> and not the individual patches themselves <kowey> that being said, we might be able to store such metadata as well... a bit like chart parsing <zooko> No, the question of "On which other patches does this patch depend?" can be answered using only information present at the time the patch is created. <zooko> What patches I have in my repo, later, when pulling, cannot change the answer to that question. <zooko> At least in my idealized world. ---------- messages: 572 nosy: droundy, tommy, zooko status: unread title: Windows: darcs pull takes longer and longer when there are more and more patches ____________________________________ Darcs issue tracker <[EMAIL PROTECTED]> <http://bugs.darcs.net/issue150> ____________________________________ _______________________________________________ darcs-devel mailing list darcs-devel@darcs.net http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel