/srv/irclogs.ubuntu.com/2009/08/26/#bzr.txt

lifelessI've added (and its landing now) an earlier cache of revision trees, but that doesn't help here because its not a revision tree00:00
lifelessand as the tree is modified it seems to me it will be doing the wrong thing - this could be exacerbating up-thread/down-thread/update conflicts as well, if I understand it correctly.00:01
abentleylifeless: I don't understand jam's change, but it looks wrong in two ways.00:05
lifelessok; I'll file a bug about this, as its not 'just a locking issue' then.00:06
abentleylifeless: You shouldn't call set_base_revision if you don't want to set the base tree, and you shouldn't set base_rev_id for the revision-id of a WorkingTree.00:06
abentleylifeless: For working trees, Merger does know about a basis revision, e.g. Merger.this_basis and Merger.other_basis.  There's no corresponding variable for base trees, but that's what he would want to set.00:07
abentleylifeless: The smallest change that would get this working would be to set Merger.base_rev_id directly instead of calling set_base_revision.00:09
abentleylifeless: Confirmed, that passes.00:10
lifelessabentley: thank you. It could have fall out elsewhere though?00:10
abentleylifeless: It's conceivable.  Most likely in a test case where we had coded it to expect the wrong behaviour.00:11
lifelessok. I was doing this locking stuff as a warmup, so I'll put this bug in for now, and come back to it later.00:11
lifelessdo you have a diff of that change you just made?00:11
=== beuno-afk is now known as beuno
abentleylifeless: http://pastebin.ubuntu.com/259556/00:14
lifelessthanks00:22
lifelesswin 8300:38
lifelesssorry about bug noise on 30500600:59
lifelesstrying to get lp to do what I need ><00:59
lifelessigc: when you get here01:22
lifelessigc: my faster commit was broken; it should have been faster; fixed and landing now01:22
lifelessigc: so you may want to retest it speed wise :)01:23
igcmorning02:04
igclifeless: shall do02:04
josh_kanyone want to point me in the right direction for using bzr to merge two heretofore unrelated files?02:05
josh_khm02:07
josh_know that i say that out loud, I don't see how it would reasonably be possible02:07
josh_khand-merge, here we come...02:07
lifelessigc: its landing at the moment02:08
igclifeless: excellent. well done!02:08
lifelesshttp://pqm.bazaar-vcs.org/02:08
igclifeless: as soon as I wake up this morning, I'll give it a spin :-)02:09
lifelesskk02:09
lifelessit wasn't using specified_files in iter_changes02:09
lifelesswhich is why 'partial commit' was only as fast as full commit02:09
=== kiko is now known as kiko-zzz
igcpoolie: my focus today will be on reviewing critical/high patches and ...02:11
igcpoolie: announcing explorer 0.7 + fastimport 0.902:12
igchopefully james_w or someone can get those uploaded to karmic in time02:12
poolieigc, that sounds good02:17
pooliemine is to merge the 2.0b1 branches and get that out02:17
lifelessigc: its landed02:30
igclifeless: sweet02:34
igclifeless: so IIUIC, shelve/unshelve now work correctly on Windows?02:35
lifelessigc: yes02:35
igclifeless: landed?02:35
lifelessor rather02:35
lifelessunit tests say they do02:35
lifelessyes, landed.02:35
igclifeless: wow, you rock!02:35
lifelessalso pushing locally02:36
lifelessthere are now no tests that should fail due to locking interactions on windows that represent things users can do02:36
lifelessthere are a few that we use to test race conditions02:36
igclifeless: you may want to email the bzr-windows list calling for testing on this02:36
lifelessI've a branch up for review that guards those tests on windows more aggressively02:36
lifelessigc: I'm not on the windows list - could you send such a mail?02:36
igclifeless: sure02:37
igclifeless: that's mega cool because I'll now get some interest in someone writing qsheve/qunshelve02:37
lifelesswe can of course still collide between separate processes02:37
lifelessbut same process stuff should be rock solid02:37
igclifeless: as long as they weren't working on Windows, there was limited interest02:38
igclifeless: pulling the 2.0 branch doesn't show your commit changes, nor the shelve-related changes02:40
igclifeless: are they only in trunk or is lp mirroring to blame?02:40
lifelessonly trunk02:40
lifelesslanding a big batch to 2.0 later02:40
igcok02:41
poolieok time for brunch, or whatever it is :)02:42
AfCpoolie: it's not a weekend, so I think yes, you need to have brunch before noon. Weekends you're ok until 13:30 :)02:44
lifelessigc: my testing shows - 1.3 seconds for commit w/out iter_changes, 0.25s for commit w/iter_changes 0.36s to commit the full tree03:00
lifelessigc: (alll with a single file changed)03:00
igclifeless: which project?03:00
lifelesssamba in 2a03:00
lifelessthe first two times are 'commit  README', the last one is 'commit'03:00
lifelessspiv: ping03:13
lifelessIncompatibleRepositories: CHKInventoryRepository('chroot-97810960:///stack-on/.bzr/repository/')03:13
lifelessis not compatible with03:13
lifelessKnitPackRepository('chroot-97810960:///to/.bzr/repository/')03:13
lifelessdifferent rich-root support03:13
lifelessthats what I'm generating at the moment03:13
lifelessspiv: this isn't ideal, but AFAICT its roughly what we do elsewhere03:13
lifelessand its at least in the category of 'class of thing we already have to fix'.03:14
lifelessspiv: seem ok to run with this?03:14
spivlifeless: ugh03:20
spivWhat's the benefit we'd trade this against?03:21
lifelesswell at the moment its an UnknownSmartServerError03:21
lifelessthe client hasn't ever opened 'stack-on', so it can't translate it without going to the network.03:21
lifelessand 'to' doesn't exist because the server is aborting a 'create foo for me' operation.03:22
lifelessso in terms of benefits; it will error about 600ms faster03:22
lifelesspossibly my unit tests are not representative of what launchpad itself will do03:23
spivI'm not really fussed about making that error faster :)03:23
spivI think we need to fix the server to return relpaths fairly soon.03:23
lifelessspiv: note that I'm going to be catching this in cmd_push *anyway*03:23
lifelessthis is 'bzr push a 1.9 branch somewhere with a stacking policy that points at a 2a branch'03:24
lifelessa precondition on that is that I can catch the error; so my motivation here isn't 'make this error nice', its 'make it typed rather than 'unknown''03:24
spivIncompatibleRepositories can occur on other operations, although I agree that's the most common.03:25
lifelessthey can, and at the moment - well see above - unknown smart server error.03:25
spivWhat does the error serialisation look like?  I'm wondering if it will be reasonably easy to replace the useless in-proc URLs with relpaths later without disrupting old clients.03:25
lifelessI argue that what I've done so far is an unqualified improvement, even if its not an ideal end-state.03:26
lifeless('Incompa..', str(err.source), str(err.target), str(err.detail))03:26
spivYeah, I agree it sounds like an improvement.03:26
lifelessbut as the client doesn't process at all it would be easy to change later03:26
spivThe crummy URLs are essentially the same issue as in the lock contention message, I guess.03:27
lifelessyes03:28
spivI'm satisfied that this is an improvement.  I'm a little worried it'll be an impediment to doing something better later.03:28
lifelessthere are two cases03:28
lifelesseither we need more fields, or we need to change the serialised value of fields03:29
lifelessthe client doesn't care about how many fields03:29
lifelessso we can add some (including adding different representations of existing fields)03:29
spivOk, if you leave that wiggle room in the client that sounds ok.03:29
lifelessand the client doesn't parse the fields, so we can change fields if we want- knowing that the client will just show the strings it receives03:29
spivi.e. effectively reserving some fields for future use.03:30
lifelessits no worse than03:32
lifelessUsing default stacking branch /~bzr/bzr/trunk at lp-45211856:///~lifeless/bzr03:32
lifelessI feel you're very concerned about a special case of a pervasive problem.03:32
lifelesswhich is a bit odd.03:32
spivOh, it is pervasive.03:33
spivThat doesn't mean we should spread it even further without thought :)03:33
spivActually, that particular message is extra crummy.03:34
spivIt's actually emitted on stderr by the server process!03:34
lifelessthe incompatible one?03:34
spivOh, actually, not that one.03:34
lifelessmerge review request sent.03:34
spivI'm thinking of the 'Source format doesn't support stacking' one.03:35
lifelessas we've discussed, I figure you've just volunteered to review ;)03:35
lifelessspiv:03:45
lifelesshttps://code.launchpad.net/~lifeless/bzr/bug-393677/+merge/1071003:45
lifelessspm: whats the url configured in pqm's bzr config for 2.0 ?03:48
lifelessspm: ping04:08
lifelesspoolie: whats the url for submitting to 2.0?04:08
igclifeless: I'll kick off that benchmark now while I grab some lunch04:09
* igc food04:09
lifelessigc: its going to be awesome04:09
spmlifeless: similar to the 1.17 & 18: bzr+ssh://bazaar.launchpad.net/~bzr-pqm/bzr/2.004:11
lifelessspm: thanks04:11
lifelesswe need to doc this better. /me adds a yak to the list04:11
pooliespiv, hi, shall we catch up?04:20
poolielifeless: do you think https://code.edge.launchpad.net/~ian-clatworthy/bzr/faster-dirstate-saving/+merge/7537 is good to merge now? igc says you read a previous version04:20
lifelesspoolie: the last one I read looked like it could cause confusion about the internal state; jam's comments were along those lines and I agreed.04:22
lifelessI don't know if its been improved since then; and while its a functional improvement it is a risky area of code.04:22
poolieso it needs to be reworked?04:22
pooliejml: regarding the test suite04:23
pooliei don't think running it twice from pqm is, um04:23
poolielikely to be actioned very fast04:23
poolieso, i'd rather rely on buildbot, which is apparently now working ok04:23
lifelesspoolie: do you mean 'lifeless: regarding the test suite' ?04:24
jmlwell, it is being run twice from PQM right now04:24
poolieno :-P04:24
pooliejml: now that we have a buildbot and are getting results from it i propose to just remove the second run from make check04:24
poolieand get vila to do that on a slave somewhere04:25
jmlpoolie, that sounds fine04:25
lifelesspoolie: I have been watching carefully since we last discussed this04:25
lifelesspoolie: I haven't landed any utf8-related patches to see if it helps or not :P04:25
pooliei loked through all my recent pqm mails and didn't see any failures in ascii tests04:26
pooliebut that may be unrepresentative because people tend to work in different areas04:26
lifelesspoolie: right, but what fraction were ... exactly04:26
poolieanyhow i'm not going to do it now04:26
lifelessanyhow, I've voiced my opinion - to keep it - before. I don't think the gain is worth the pain if something slips through.04:26
poolieor not today04:26
lifelessbut I won't try to stop the change, if I can't convince you, the arguments aren't convincing04:27
poolieso, i respect your opinion, and i'm open to changing it back, but i think we should try changing it04:27
pooliei'm sure we get more breakage across platforms or distro versions04:27
poolieso we need buildbot to work well for that coverage04:27
poolieso i'd be ok relying on it for that too04:28
poolies//for lang=c too04:28
lifelessI get that. OTOH we've known about windows breakage for ages. It got fixed when it became possible for us to test it locally and quickly.04:28
lifeless[locking specifically]04:28
lifelessMy experience with fix-later environments is that they are consistently lower quality than fix-before ones.04:29
lifelessBut as you say, open to trying the change and measuring.04:29
poolieso eventually it might be nice to test them all synchronously but in parallel04:31
lifelesspoolie: what url did you give pqm to land bialix's patch?04:32
lifelesson 2.004:32
pooliei didn't04:32
lifelessspm: whats the public address configured in the pqm conf?04:32
pooliei think vila sent it04:32
* lifeless hunts yaks04:32
spmlifeless: http://bazaar.launchpad.net/~bzr-pqm/bzr/2.004:32
lifelessspm: thanks04:33
* lifeless submitifies04:33
pooliehow about https://code.edge.launchpad.net/~jameinel/bzr/2.0b1-402645-fragmentation/+merge/1062104:37
lifelessspm: can you just paste me the stanza please..04:39
lifelesseconfused04:39
lifelesspoolie: jam and I don't agree about the short term fix04:39
spmlifeless: https://pastebin.canonical.com/21499/04:39
lifelessI'm worried about unordered being pathological because of whats out there already; he's worried about preventing existing branches getting worse04:40
lifelessits not a strong difference04:40
lifelessbut as we rather have to fix this properly (IMO) for 2.0 to be released, I don't feel a strong urge to land a bandaid: users of 1.16/1.17/1.18 are already plentiful04:41
lifelessspm: can you check if there is a pqm job in process on there? (not via the web UI... I suspect I may have tickled a bug)04:42
lifelesspoolie: bug 418998 is probably the symlink dereferencing bug04:43
ubottuLaunchpad bug 418998 in bzr-svn "bzr crashes when adding .vim/* from my home directory" [Undecided,New] https://launchpad.net/bugs/41899804:43
lifelesspoolie: rather than bzr-svn04:43
lifelessthe 'didn't add files' aspect will be the 'silently ignores subtrees' bug in bzr core04:44
spmlifeless: technicall yes a job is running; but isn't a bzr one - if you ken what I'm not saying :-)04:44
lifelessI do04:44
lifelesscan you check the log for requests from me04:44
spmaye04:44
poolieoh ok04:44
lifelessspm: actually.04:44
lifelessspm: cron spam!04:45
spmha04:45
lifelessbzrlib.errors.ConnectionReset: Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist.04:45
lifelessPermission denied (publickey).04:45
spm(*^%)@*(#&$^)@#*(^%()*!&@%$_@#$&*())@*(#&$^@(*&^!!!!!!!!!!!!!!!!!!04:45
lifelessspm: please be fixing that file, that file you love so well.04:45
lifelesspoolie: I replied asking if it was a symlink, that will tell us04:45
pooliespiv, tell me things?04:46
spmlifeless: pls to try try again04:46
lifelessbombs aaway04:46
spivpoolie: heading out to lunch in a sec.  I've been responding to jam's review of my groupcompress batching branch.04:48
lifelessarjenAU: hi04:48
lifelessarjenAU: when are you in sydney?04:48
pooliespiv, so how is it overall?04:49
lifelessspm: no go?!04:49
* lifeless tries with http <-> http04:49
arjenAUlifeless: 7-9 Sep (7pm on the 6th)04:50
lifelessarjenAU: I'm going to try to swing past the mechanics school04:50
arjenAUlifeless: hmm?04:51
lifelessaren't you giving a talk?04:51
lifelessat SMUG?04:51
spivpoolie: he saw some possible holes in the batching/caching interaction.  I think I've fixed that up, although it's perhaps a little bit more complex now.  It's looking good; I'll submit it for re-review by jam just in case, but I expect it'll get a thumbs up.04:52
lifelesspoolie: http://pqm.bazaar-vcs.org/ will hopefully land all the cumulative fixes from bzr.dev. If it fails, they are pushed to lp:~lifeless/bzr/2.0 so that people can tweak.04:53
lifelessI don't expect failures - but theres > 10 patches in the set so it may find something to bail on04:53
lifelessarjenAU: http://www.pythian.com/news/3728/sydney-mysql-user-group-meetup-9-in-depth-mysql-with-arjen-lentz specifically ;)04:55
arjenAUlifeless: oh right! sure04:55
lifelessbut if you want to get together and chat bzr/lp stuff before/after/some-other-timeslot that would be cool too04:56
jamlifeless: so the code as it stands now only makes things worse and never better. Why wouldn't switching to 'unordered' be a reasonable short term fix?04:59
lifelessjam: I'm concerned that it will also make things worse, just differently, as it will apply to all fetches too. And its a chance for more bug reports while we're doing the longer term fix.05:00
spmlifeless: well I guess one positive - that file is back. So I suspect we know where it's coming from...05:00
lifelessspm: wheres that then ...05:01
jamlifeless: so.. if the source has been packed (ever) then at least we preserve that05:01
lifelessmy using lp: as the source for the merge, I'd suspect05:01
lifelessjam: I'm mainly coming from paranois :)05:01
jamit doesn't effect Packer05:01
lifelessI need food05:02
lifelessback shortly- jam, land if if you're quite sure we won't have fallout while we develop the longer fix.05:02
spmlifeless: that was my guess, yes.05:02
lifelessspm: so, what happened when we tried an empty file?05:02
jamlifeless: given that we've been fetching pack => pack 'unordered' for a while....05:02
spmlifeless: kaboom05:03
lifelessactually, I don't want to know. I want to debug it with you tomorrow and file copious bugs05:03
spmheh05:03
lifelesswe can't reliably switch to lp until thats fixed.05:03
spmright05:03
lifelessarjenAU: but if you want to get together and chat bzr/lp stuff before/after/some-other-timeslot that would be cool too05:05
lifelesspoolie: EOD(); suspend();05:05
poolieok05:06
pooliei'm going to get as many of these things merged as we can then do a beta05:07
poolieunless something comes up05:07
arjenAUlifeless: we'd be done at 5pm, barack st in city.05:07
lifelesssounds good05:07
lifelessI'll tee it up with you next week05:07
lifelesspoolie: http://pqm.bazaar-vcs.org/ is good so far05:08
lifelessjml: after work today can you do me a small favour. subunit progress review-or-rubber-stamp05:10
jmllifeless, sure thing05:10
thumperabentley: pipeline ping05:45
pooliespiv, back?05:50
spivpoolie: yeah05:54
pooliei guess rather than nagging i want to know05:54
pooliewhen i should do 2.0b05:54
poolieso can you tell me either when you have nothing more to do with it, or alternatively05:54
poolieif there's anything i should be doing, or if it's pear-shaped05:55
lifelesspoolie: if 2.0b means 'we think we're done', in a few days05:55
lifelesspoolie: if it means 'get a snapshot of where we are at' - well anytime really.05:55
lifelessmy backport of the last weeks progress looks like it will land05:56
lifelessin 30-40 minutes05:56
poolieit means we think there's no more critical bugs05:56
lifelessok, well I don't think we're going to be there today05:57
spivSo I'm currently working on the fix for bug 402657, by doing the last tweaks from jam's review.  I'm going to ask him to re-review it, though, because he's touched this more than I have and I'd like to be cautious with this.05:57
ubottuLaunchpad bug 402657 in bzr "2a fetch over dumb transport reads one group at a time" [Critical,Fix committed] https://launchpad.net/bugs/40265705:57
spivWhich means I expect it to land tomorrow morning.05:57
jamwell, if you submit it right now05:57
jamI might get to it :)05:57
pooliethat would be much better05:58
spivHmm, I'll see how quickly I can take care of the last little bits :)05:59
pooliethanks06:02
=== thumper is now known as thumper-cooking
=== thumper-cooking is now known as thumper
=== thumper is now known as thumper-cooking
lifelesspoolie:  '(mbp) fix IndexError printing CannotBindAddress'06:20
lifelessthats in my branch thats landing06:20
lifelessmight want to ask spm to cancel your merge06:21
pooliehm06:21
pooliewhy is it in your branch?06:21
lifelessbecause I did what I said I would do earlier06:21
lifelesswhich is to cherrypick all the 2.0 candidates from trunk06:21
poolieah, ok06:22
pooliei understood you meant you'd do one merge with all of your changes06:22
poolieso spm would you please cancel my pending pqm job?06:22
lifelesshave a look at http://pqm.bazaar-vcs.org/ at my commit message :P06:22
spmpoolie: cancelled06:28
poolieoh thanks06:28
jamspiv: I'm going to bed now. So better to do a good job then a fast one.06:31
jamI'll try to review first thing when I wake up06:31
lifelesssleep well jam06:31
jamnight all06:31
jamthx lifeless06:31
lifelessspm: please tell me you didn't cancel the running job06:33
lifelessspm: (and mean it!)06:33
spivjam: g'night06:33
spivd'oh, missed him.06:33
spmlifeless: I didn't cancel the running job. ??06:34
spivJust pushing it up now, anyway.06:34
lifelesswhew06:34
spmlifeless: rm patch.1251263587 ==> star-merge http://bazaar.launchpad.net/~mbp/bzr/prepare-2.0 http://bazaar.launchpad.net/~bzr-pqm/bzr/2.006:34
lifelessah found it06:34
lifelesspoolie: its all landed06:34
pooliespiv, so what now?06:37
spivpoolie: Well, the review reply with a fairly small incremental diff (+68, -45) has been sent and I think addresses jam's concerns.06:43
poolieso..06:44
spivGar, wireless dropout.06:45
spiv(on wired for the moment)06:45
lifelesspoolie: btw, record_entry_contents has exhaustive permutation tests.06:53
pooliedo they pick up the case where it shouldn't record a new text?06:54
lifelessyes06:54
lifelessthey pin it down very very precisely.06:54
lifelessthey assumed that the interface they were building on returned accurate data.06:54
lifelessgrep for unchanged in bzrlib/tests/per_repository/test_commit_builder.py06:55
=== vila-dinner is now known as vila
vilaow, almost crossed jam...06:57
vilahi all :)06:57
igchi vila!07:01
lifelesspoolie: Its my contention that only explicit tests for the problem would have exposed it - be they integration tests or unit tests of the interface.07:02
lifelesspoolie: I don't think it is a lack of tests on the record_entry_contents interface though; given accurate data it will behave well and is tested to do that.07:03
lifelessgiven bogus data I think its extremely likely to misbehave - but thats why we have tests for the behaviour of tree :)07:03
pooliehttps://bugs.edge.launchpad.net/bzr/+bug/418931 spiv07:03
ubottuLaunchpad bug 418931 in bzr "AssertionError: _remember_remote_is_before((1, 18)) called, but _remember_remote_is_before((1, 15)) was called previously" [High,Confirmed]07:03
lifelesspoolie: I guess I'm trying to say that you're very unlikely to be able to create a test that when given valid data the api does the wrong thing07:11
lifelesspoolie: because I spent a bunch of time trying to make the interface tests as defensive as possible07:11
igcpoolie: reviewing that cf patch now and have some questions ...07:31
poolieok07:32
igcpoolie: in repository.py, why the new exception wrt nested tree07:32
igc?07:32
pooliemore context?07:32
igcdid that fall out of tests?07:32
igclines 98-10007:32
igcsee https://code.edge.launchpad.net/~mbp/bzr/415508-content-filtering/+merge/1064007:33
poolieit came out of testing it07:33
poolieit should never be hit, but trapping it here gives a more meaningful message07:33
igcok07:33
igcpoolie: also the docstring in workingtree4.py ...07:34
igccode doesn't seem to match?07:34
igcwell match precisely07:34
pooliethat it holds the hash and size?07:34
pooliei thought it did :/07:35
lifelessigc: how did the perf test go?07:36
lifelessdid it rock?07:36
lifelessigc: also, all the stuff for windows users is in the 2.0 branch now.07:36
igclifeless: the one over lunch sucked because the lp mirror wasn't up to date :-(07:36
igclifeless: I kicked off another test 30 minutes ago07:36
lifelessigc: ah, shame. eta?07:36
igclifeless: *this* time with your code :-)07:37
poolielifeless: so, possibly with the test_commit_builder tests, i just want to add a new one asserting that it copes ok if the size and hash are null07:37
poolienone*07:37
poolieand if the size is none but the hash is known07:37
poolieand maybe for both those cases, with the case that the file actually either has or hasn't changed07:38
lifelesspoolie: So unknown I'd expect to be covered (I'd have to check though). But unknown size was not conceived of in the original interface definition.07:38
lifelesspoolie: so I definitely adding tests to cover the change to the interface is appropriate.07:38
igclifeless: full test is still running but the number you want just popped on my screen 10 seconds ago ...07:39
lifelesss/adding/think &07:39
igc1.2 seconds07:39
igcdown from 73+ seconds07:39
lifelessigc: and full commit is?07:39
igc1.96 seconds07:39
lifelessbooyah!07:39
igc:-)07:39
pooliei guess it returns an indication of whether something was recorded07:39
lifelessigc: that 0.7 seconds is 'status on the rest of the tree'07:39
igcright07:39
lifelesspoolie: yes, we also check that the inventory gets the right last-modified value for that entry.07:40
lifelesspoolie: remembering that this is an awkward interface we are deleting, so don't go overboard :)07:40
lifelesspoolie: 'rm the interface' is not-all-that-far-away.07:40
lifelessigc: If you recally, I was expressing concern that that overhead would be substantial vis-a-vis layering on iter_changes rather than changing iter_changes.07:41
poolieso i've sent that thing for merge07:41
lifelessigc: you can see why now, I hope.07:41
pooliethere's a bug open about adding more tests but i'm not very motivated to do it now07:41
lifelessI think thats fine; I'd be inclined to close the bug wontfix07:42
lifelessdiminishing returns07:42
poolieif i'm going to do more here it would be primarily07:42
poolieadding integration tests07:42
poolieor trying to refactor it into a clearer layer that does filtering07:43
poolieigc, tell me about bug 374735?07:44
ubottuLaunchpad bug 374735 in bzr "Plan and UI for upgrading multiple stacked branches " [High,In progress] https://launchpad.net/bugs/37473507:44
igcpoolie: one sec07:45
igcpoolie: so the issue is ...07:47
igccould the Upgrade Guide recommend a less complex upgrade recipe for branches stacked on LP?07:48
igcpoolie: iiuic, thumper thinks no07:48
poolieso, um07:49
igcpoolie: I'm happy to document whatever we agree on07:49
pooliei suppose what i want to know now is, what's the implications for the 2.0 release? should i be doing something to unblock it, or should we considering that it might block 2.0?07:49
igcpoolie: maybe we need a conference call with thumper, lifeless, you and I to resolve it07:49
igcpoolie: I think the current recipe and doc is acceptable07:50
igcpoolie: I agree it *could* be better one day but I don't think it's a blocker07:50
igcpoolie: my personal opinion is that making shared repository upgrades easier is more important07:51
igcby upgrading branches in that repo implicitly07:52
igcmy patch for patch got some love last Friday but hasn't moved since07:52
poolieright07:52
igcs/for patch/for that/07:52
poolieso that's only weakly connected to the issue of upgrading stacked branches?07:52
poolielike technically unconnected, just in the same area?07:52
igcmy patch is currently unconnected from stacked btranches07:53
igcan earlier cut tried doing them in a certain order but ...07:53
igcI backed that out because it didn't apply ...07:53
igcstacked branches aren't supported in a shared repo at all07:54
pooliei'm thinking about narrowing down the 2.0-targeted bugs to just things that we must or nearly must fix07:54
pooliejust for easier thinking07:54
igcright07:54
jmlthe best kind of thinking!07:54
igcI think the Upgrade Guide is fine for 2.007:54
igcafter all, it actually works07:55
igcI wish the Data MIgration Guide (fastimport) had reached that lofty state07:56
lifelesspoolie: jml: spiv: I wonder if making scenario application do a shallow copy would be safe. It looks like it might be substantially faster.07:56
lifelesswe'd probably want to change some static parameters to factories.07:56
poolieshallow copy of what?07:56
igcpoolie: btw, just approved that content filtering patch07:56
pooliethanks07:56
pooliei already sent it :)07:56
spivlifeless: of the test case, vs. a deep copy?07:56
lifelessyes07:57
igcpoolie: ok, so approving it makes me feel better, if not adding any value otherwise :-)07:57
spivlifeless: I imagine it would be faster... I wonder if perhaps there should be an option for deep vs. shallow?07:57
lifelessapply_scenarios is ~ 100% of the time of 'test_test_suite'07:58
spivI don't have a very strong opinion on the safety of it.  I think using copy/deepcopy is a bit of a rough approximation for the semantic that we want.07:58
lifelesstest.clone() would be better.07:58
spivRight.07:58
pooliewell, add a .copy() method and then it can be modified07:58
* lifeless adds another yak.07:58
poolieexactyl07:58
* jml is agreeing so far07:58
jmlshallow will work, I think.07:58
spivWell, there's __deepcopy__ already ;)07:58
pooliedid you ever have yak butter tea? i once did in montreal.07:58
pooliekiwis might like it :)07:59
* lifeless makes it shallow07:59
lifeless50% faster08:00
lifelessand another second off loading the regular test suite.08:00
lifeless3.3 seconds being reported by selftest selftest now.08:03
lifelessalmost down to tdd speeds again08:03
poolienice :)08:03
pooliewant to do my selftest --debug-failure feature request too? :)08:04
lifelesspoolie: yes, but I won't08:04
lifelessI want to drive this thread to the ground08:04
lifelessand I haven't yet figured out how to fork() myself08:05
lifeless_check_safety_net08:05
lifelessthis is kindof slow.08:05
pooliehm, i don't know what to do now08:07
lifelessI have been wondering if thats what you were doing:) [figuring out what to do]08:08
lifelesspoolie: if you don't have anything specifically for 2.0, you could pick one of [brain food, manage someone, something useful even if not 2.0 specific]08:08
pooliei need to merge 415508 to 2.0 and then i guess look at john's bug 402645 fix08:09
ubottuLaunchpad bug 402645 in bzr "fetch for --2a formats seems to be fragmenting" [Critical,In progress] https://launchpad.net/bugs/40264508:09
poolieand then do a beta release08:09
vilalifeless: _check_safety_net *intent* is to ensure we don't fallback to a shared repo, it's more problematic when one set TMPDIR under his $HOME than the default under /tmp,08:10
vilathat being said, the *implementation* can be changed as you see fit08:11
lifelessvila: yes, but opening a working tree 20K times is a lot of work.08:11
lifelessvila: I'd rather make sure we error when someone reads from that dir08:11
lifelessvila: by using the branch open hook. For instance.08:11
vilalifeless: yup, that will work too, we discussed it with poolie long ago, but I never found the time to fix iit08:11
vilamaybe just chmod'ing may be enough (but may not work on windows)08:12
vila*but* I'm a bit scared by a too tricky impl. that some tests may defeat08:13
lifelessvila: so, a few thoughts08:13
lifelessa test could go above it anyway.08:13
vilaanyway, a good test for that is to create a standalone branch and then do TMP_DIR='.' :-)08:13
lifelessso we can't be perfect.08:13
lifelessAs we can't be perfect, we get to choose just where we put the line.08:14
lifelessI suspect that a python callback * 20K will be much cheaper than open_wt + get_last_revision * 20K08:14
lifelessthe only tests that could bypass that are those that actually run bzr externally.08:14
vilaa few thoughts too: I'm pretty sure some tests already escapes the current jail (some cxxxpolicy tests actually use the local branch settings)08:14
lifelessso roughly:08:14
lifeless - make a subclass (e.g. ExternalBase :P) be the only test class with run_bzr_subprocess()08:15
lifelessgive that subclass the current safety net check08:15
vilaExternal must die08:15
vilaExternalBse must die08:15
lifelessactually, I think it should live, for this and only this.08:15
vilaIt's the one in blackbox right ?08:15
vilabe aware that it isn't used by all blackbox tests then08:16
lifelessand remove the current safety net creation and check in the base class with the replacement of a bzrdir/branch open hook to catch library attempts to use that area.08:16
lifelessvila: when i delete the method from the base class, they will show up pretty fast.08:16
vilaoh, by running selftest -s bb you mean ?08:17
lifelessbroadly, yes08:17
vilaalso, some tests escape the safety net by accessing only the config files if I remember correctly08:17
lifelessyes, thats why we change HOME08:18
lifelessI plan to add hooks to file() and open() to catch them08:18
vilaI'm pretty sure some tests still access the local branch if TMPDIR is set08:18
poolielifeless: that still makes me a bit unhappy08:18
pooliei'd really rather you use a readonly directory08:18
lifelesspoolie: I want to get away from disk IO completely for tests that think they are only testing functions.08:19
pooliei agree too08:19
vilaI'm sorry I don't have more precise info there, it's all from experiments I made long ago and could never finish, the point is, we have some minor isolation problems that I saw long ago with the TMPDIR trick,08:19
lifelesspoolie: I don't see making a directory, readonly or otherwise, as being compatible with that goal :(08:19
lifelessvila: I hope that I'll flush these out eventually.08:19
vila*but* they never show up again with --parallel=fork, so may be some have been already addressed08:19
pooliewhy?08:20
vilaand the long term plan is to catch them by running them one by one when I'm able to work on coverage again08:20
lifelesspoolie: because it requires mkdir(), either per-test, or a global variable and per-test-run08:20
lifelessthe former is expensive, and the latter is also aesthetically displeasing08:20
vilalifeless: indeed, that's why I try to inherit from TestCase as much as I can :)08:20
vilapoolie: run selftest -v -s xxx (limited to 20 tests or so) and you quickly get the feeling08:21
pooliewhich feeling?08:22
vilathat's TestCase tests are faster than TestCaseInTempDir08:22
pooliebut doesn't even the base class get a tmpdir?08:22
pooliehm, ok08:23
pooliei guess it may stop us reading anything08:23
pooliei kind of suspect it will break things but it's worth a try08:23
vilapoolie: no, that starts with  TestCaseWithMemoryTransport08:24
pooliedid any of you have an opinion about john's groupcompress fragmentation patch https://code.edge.launchpad.net/~jameinel/bzr/2.0b1-402645-fragmentation/+merge/1062108:25
vilapoolie: we had a long discussion with jam yesterday regarding gc fragmentation, did you talk to him since then ?08:28
vilaor did you read the logs ?08:28
pooliei did see it but i haven't read them exhaustively08:28
poolieso i'd rather if you could summarize?08:28
vilahmm08:29
poolie /should i stay or should i go now?/08:30
vila1) gc groups can't be fetched as a whole, we need to split them08:30
poolieor more specifically is it a good idea to merge08:30
vilaI think it's good to merge in the short term08:30
vilawow, you wanted a really short summary :)08:31
poolieyeah08:32
vila... but the commit messages of the mp summarizes perfectly the situation: best we can to do in the short term, but there are far better alternatives for the long term08:34
vilathe discussion was about these alternatives08:34
vilagrr, damn lp:mad, this jam's mp is really a one-liner !08:36
vilapoolie: ow, you approved it, ok08:36
poolie'ow'?08:40
vilapoolie: no need for me to review it then, but no worries :)08:42
lifelesssorry about the formating08:44
lifeless{'TimeStandard': 0.001, 'TimeWithMemory': 11.399999999999878, 'TimeWithTransport': 13.820999999999875, 'TimeBzr': 2.1129999999999911, 'TimeWithDir': 14.200999999999917}08:44
vilas/9//08:44
lifelessthats 1000 tests, time summed08:45
lifelessStandard is unittest.TestCase08:45
poolieso close, so far away08:45
lifelessyou can see that tests.TestCase is about 2000 times slower than unittest.TestCase, and ~1/5 to 1/7th the speed of the richer test cases08:45
vilalifeless: s/Time/bzrlib.test.Test/ ?08:45
vilaok08:46
lifelessyes, TimeWithMemory = a noop TestCaseWithMemoryTransport test08:46
vilafully match my mental model08:46
vilabut what is TimeBzr ?08:46
lifelesshttp://paste.ubuntu.com/259705/08:46
lifeless+class TimeBzr(tests.TestCase):08:47
lifeless+08:47
lifeless+    def test_time(self):08:47
lifeless+        pass08:47
vilaoh, ok08:47
lifelessbzr's 'regular' TestCase08:47
=== thumper-cooking is now known as thumper
vilahaa, costs a bit, well, cleanEnv I presume08:47
lifelessmkdir()08:47
lifelessand rmdir()08:47
lifelessI'm pretty sure TestCase does the chdir and set HOME08:48
vilalifeless: for tests.TestCase ?08:48
lifelessyes08:50
vilaI don't think so, since home is under the TEST_ROOT shared by WithMemory08:50
vilastartLog instead08:50
vilawhich seems wrong as many tests won't need it08:51
vilaI mean, it shouldn't be there or fail if we try to log anythinh08:51
vilaI mean, it shouldn't be there or fail if we try to log anything08:51
vilathat whole test/log interactions needs an overhaul anyway :-D08:52
vilasee the XXX in _get_log()08:52
vila:-D08:53
vilahttp://instantrimshot.com/08:56
vilaone more regression caught early by the test farm08:56
vilaFAIL: bzrlib.tests.blackbox.test_filesystem_cicp.TestMisc.test_status08:57
poolienice one08:57
vilaAssertionError: not equal:08:57
vilaa = 'added:\n  CamelCaseParent/\n  CamelCaseParent/CamelCase\n  lowercaseparent/\n  lowercaseparent/lowercase\n'08:57
vilab = 'added:\n  CamelCaseParent/CamelCase\n  lowercaseparent/lowercase\n'08:57
pooliei'm kind of tired and i want to stop, but i want to make 2.0b1 today08:57
vilalifeless: I bet it's related to one of your latest changes but you can't run on case insensitive fs ?08:57
poolievila, do you think you could make a source tarball when pqm finishes grinding?08:57
poolieoh also i was going to mention bug 40971708:58
ubottuLaunchpad bug 409717 in bzr "ExternalBase class is redundant" [Low,Confirmed] https://launchpad.net/bugs/40971708:58
vilapoolie: certainly08:58
poolieand maybe ping james_w when you do?08:58
vilapoolie: it seems like lifeless will disagree/is working on 40971708:59
poolielifeless: bug 403360 is the report that the tests didn't clean up08:59
ubottuLaunchpad bug 403360 in bzr "tests don't clean up until they're all done" [Medium,Confirmed] https://launchpad.net/bugs/40336008:59
pooliei haven't looked into it08:59
pooliei haven't done anything about 40971708:59
vilapoolie: i.e. make a tarball from the 2.0 branch, upload it to lp and tell james_w about it ?08:59
vilapoolie: and let you do the announce email09:00
pooliei wouldn't say we should certainly remove ExternalBase, but there is some misalignment09:00
poolievila, well, follow the process in the 'releasing' doc09:00
poolieincluding bumping the version number etc09:00
poolieand then send mail to bazaar@09:00
poolieit doesn't take that long but it does block on waiting for pqm to finish these two branches09:00
poolieassuming they all pass09:01
poolievila re ExternalBase, I think that just being able to run external commands doesn't need to be in a subclass09:02
pooliesaying "I need a temp directory" possibly does09:02
vilaI agree that cleanup is strongly needed09:03
lifelessvila: I don't have a case insensitive machine handy; would a loopback vfat fs on linux work to test that ?09:03
garyvdmHi vila, lifeless09:04
vilalifeless: in principle, but I'm pretty sure we use sys.platform to infer case sensisititotovity (sp? :)09:04
poolielifeless: wine would probably work :)09:04
lifelesspoolie: good point09:04
lifelessvila: I'll see about playing around tomorrow in brain time to look at that09:04
garyvdmvila: is it possible to download builds that your buildbot creates?09:04
lifelessvila: unless you can track it down:)09:05
vilalifeless: and I wasn't throwing stones, rather I wanted you to say,: "Oh yes, definetly, st output doesn't includes some parents anymore" :-D09:05
vilalifeless: I'm tracking right away once Xchat stop ringing that is...09:05
poolieok09:07
pooliethat's enough for me then09:07
vilagaryvdm: not yet, but that's planned, I have a web page opened describing the necessary plumbing in buildbot, I need to solve some minors naming issues and more importantly get some freee time to do that09:07
pooliegood night09:07
lifelessvila: oh no; uhm, not sure.09:07
lifelessvila: I thought you meant it was a testing cleanup09:07
garyvdmvila: ok - thanks09:07
vilalifeless: ok, no worries, I'll investigate09:08
lifelessif you want to binary search, start with the iter_changes patch09:08
vilaMy point was: the buildbot test farm caught a *single* test failing ! Now, *that's* defect localisation :-D09:08
vilagaryvdm: to explain a bit more: you can't download from a slave, but a slave can upload to the master and from there we may fond a way to allow you to download09:09
poolievila, the two branches, in case they fail09:10
poolieare09:10
pooliehttp://bazaar.launchpad.net/~spiv/bzr/gc-batching-2.009:10
poolie http://bazaar.launchpad.net/~mbp/bzr/prepare-2.009:10
vilapoolie: ok09:10
=== e-jat is now known as ejat
* igc dinner09:19
vilalifeless: ok, the test output was actual/expected instead of expected/actual so the question now is: "Did you make a change that will make status displays *also* the parents when adding  children ?"09:53
vilalifeless: again, no worries if you can't answer, just a general feeling09:53
lifelessyes09:54
lifelessif the parent is changed09:54
Spabbyhi folks, my local tree appears to be borked, whenever I try and do anything  I get the error "bzr: ERROR: exceptions.AssertionError: name u'signapps_central_user.sqlite.THIS'  already in parent"09:57
vilalifeless: oh right, 4649 NEWS entry is pretty clear :) In that specific case, the operation is a first 'bzr add' so I presume creating the parent counts as modifying it :)09:57
=== Leonidas_ is now known as Leonidas
james_wpoolie, vila: I would also need to know compatible versions of plugins10:12
james_wI feel like I should just upload 1.18 today rather than running around like a headless chicken trying to beat the deadline for 2.0beta10:12
vilawell, I think we use betas to *know* which plugins are compatible :)10:13
james_wtrue :-)10:14
james_wI won't make many friends if I upload something that breaks other things on the final day before FF10:15
vilaFirefox ? :-D10:15
vilajames_w: well, I'm not aware of any API changes at least, so I don't expect a lot of plugin breaks either10:16
james_wuploading is not the way to find out though10:17
vilaand if *you* don't upload, nobody (or nearly) can find right ?10:17
lifelessvila: it does10:18
vilalifeless: context ? 8-}10:18
lifeless18:57 < vila> lifeless: oh right, 4649 NEWS entry is pretty clear :) In that specific case, the operation is a first 'bzr add' so I presume creating the parent counts as modifying it :)10:18
vilaha :)10:18
vilalifeless: test running10:19
vilalifeless: so that's a canonical example of the benefits of the test farm: nobody can run all tests in all configs (I know we can improve things, but yet, the principle remains), the test farm caught a failure (splendid one, single failure), the NEWS entry for the offending revision gives an explanation related to the failure10:21
* vila takes picture, put on wall10:22
lifelessvila: I think build farms are wonderful10:22
vilalifeless: kudos to you for that by the way :)10:22
vilalifeless: Oh I know I'm preaching the choir, I just wanted to share the pleasure :)10:23
lifeless:)10:23
fullermdCrazy people, those bzr folks.  They get excited when tests _fail_.10:28
vilaouch, traceback while ttryinh to pull the 2.0 branch :-/10:30
vilawhat's the flag to disable apport ?10:31
vilahmm, weird, 'bzr pull' failed in a bound branch but 'unbind, pull, push, bind' worked :-/10:34
lifelessvila: read only transport?10:35
lifelessvila: iz bug with url normalisation10:35
vilano, toomanyconcurrentrequests, the branch is pretty new (yesterday) so url norm is ruled out I think10:36
james_wvila: ideally someone (possibly me) would *try* the plugins and make a best effort to check what was compatible, but that's what I mean by running around on the last day10:37
james_wnow, lots of us run bzr.dev + plugins, which is a good start10:37
vilahmm, interesting, I have another one with almost the same setup, the difference being one has bazaar-cvs.org as parent while the other has lp:bzr/2.0 as parent,10:37
vilaso it may be that :parent and :bound being on the same server triggers the bug, no time to check yet though10:38
vilajames_w: ha ok, yes, I have a patch pending review that will allow me to include whatever set of plugins we decide in the test farm....10:38
james_wnice10:39
vilaso far, it's running with --no-plugins (ashes on my head but the one who never sinned throw me the first stone :-)10:39
james_wI'll get 1.18 in first, and if there is a beta tarball today then we can see if there is time to squeeze it in as well10:42
* lifeless hands vila a stone to throw at himself10:45
vilalifeless: nice try :)10:46
bialixlifeless: still here?11:15
lifelessyes11:15
bialixdo you think it's possible (for me) to cherrypick your shelve fix back to 1.18?11:15
lifelessyes11:15
bialixI'll try11:15
lifelessand the one for push ../newbranch11:16
lifelessboth are easy11:16
* bialix not ready for --2a as default11:16
bialixok, I'll try to cherrypick both11:16
bialix(dreaming: will be nice to have them as 1.18.1)11:16
lifelessbialix: go for it11:17
lifelessI totally support you doing that :)11:17
bialix1.18.1?11:17
lifelessyes11:17
bialixok11:17
bialixI'll publish it shortly11:17
lifelessif you ahve them in a branch of your own etc and it works11:18
lifelesswe can easily merge it to the 1.18 branch on launchpad - you should ahve access to do that yourself via pqm11:18
bialixyes, this is my plan11:18
lifelessworst case its a windows only release; but I think its important for windows users to have these fixes.11:18
bialixyes11:19
lifelesswhich is why I did them now that the problem was accessible to me :)11:19
bialixyou're using vila's farm or use windows machine?11:20
bialixsorry11:21
bialixlifeless: are you using kerguelen/vila buildbots or working on fixing this on native windows machine?11:21
vilabialix: I think the devil is using wine :)11:23
bialixlifeless: I should cherrypick from bzr.dev revno.4635 and 4650 only?11:24
* bialix hopes so11:25
bialix4635 applied cleanly11:26
bialix4650 has conflict (in NEWS -- surprise,eh?)11:26
* bialix found bug in replay :-/11:31
bialixapparently I was wrong. There is a lot of conflicts while cherrypicking 463511:32
=== JaredWigmore is now known as JaredW
bialixlifeless: I'm unable to cherrypick 4635. Is it possible part of this fixed was already merged to 1.18 branch?11:37
bialixpart of this fixes11:37
bialixthe same for 465011:38
bialixit seems my bzr is totally broken11:38
bialixsome plugin... with --no-plugins I've got sane results11:40
spivpoolie, vila: pqm tells me gc-batching-2.0 landed on 2.0 ok :)11:41
vilaspiv: yup, marked fixed released too :)11:43
bialixoh, there is several non-trivial conflicts in tests, so I'm not sure how to cherrypick this cleanly11:46
=== cha0s_ is now known as cha0s
lifelessbialix: I don't know if 1.18 had the thisFailsStrict.. stuff12:38
lifelessbialix: if it *doesn't* you can probably discard most of the test changes12:39
lifelessbialix: or mail me/the list the conflict and I'll help you out tomorrow12:39
lifelessbialix: vila: Neither; jam landed a patch to allow emulation of windows locks in the test suite.12:39
vilawow, I didn't see that 8-/12:40
lifelesswhich meants that a) I knew precisely which tests were failing, and b) I could use my standard productive environment to debug and fix12:40
vilaor may be I did but didn't realize the implications ...12:40
lifelessso I was able to slide it in.12:40
lifelessin brain-food time12:40
vilabrain-food ? Means short time here I presume but what is the general sense ?12:41
lifelesswell, food is something you need and consume12:41
lifelessand for the brain12:41
lifelessjust bits and pieces, like first thing in the morning to warm up and get into the zone12:42
vilaI see, strangely nothing like that exists in french12:44
lifelessits not a standard english idiom12:45
lifelessits a robertism12:45
vila:)12:45
beunojames_w, hi13:03
james_whi beuno13:03
beunodid you maange to work out all the bzr-gtk problems?13:03
james_wbzr-gtk problems?13:04
vilabeuno: bzr-gtk problems ?13:04
beunojames_w, weren't you having problems with bzr-gtk to upload all the latest bzr stuff to karmic?13:04
* beuno is secretly interested in loggerhead13:05
james_wbeuno: bzr-svn13:05
james_wI thought you might be13:05
james_wI'm working on it right now13:05
james_wI used bzr-svn 0.6.413:05
* vila relaxes :)13:05
beunoright, that other jelmer thing  :)13:05
james_wthere was a report of it working, and any changes in trunk post that release didn't look to be compatibility fixes13:06
beunojames_w, so we're good for feature freeze?13:06
james_wshould be13:06
beunoawesome13:06
james_wif people stop asking me things :-p13:07
vilajames_w: What do you want me to stop asking you today ?13:08
beuno:)13:08
james_wbeuno: was the loggerhead release done from a release branch or trunk?13:08
vilajames_w: by the way, 2.0 tarball available13:08
james_wvila: great, thanks, I'll add it to the back of the queue13:08
vilajames_w: sure, it's not as if I asked anything right ?13:09
vila:-D13:09
james_wheh13:09
vilacourtesy url https://edge.launchpad.net/bzr/2.0/2.0rc113:09
beunojames_w, I pushed a release branch13:09
beunoand tagged trunk13:09
beunohttps://code.edge.launchpad.net/~loggerhead-team/loggerhead/1.1713:09
james_wnice13:10
lifelessjames_w: we still have patches we consider critical for 2.013:10
lifelessjust FYI13:10
james_wsure13:10
james_wbut I was asked to get a beta in to karmic13:10
lifelessyup yup13:11
bialixvila: ping13:11
lifelessjust wearing my cautious hat; I doubt bzr-* that are version locked will play nice, for instanc.e13:12
lifelessjames_w: but while we're speaking of packaging, bzr-loom has some fixes in trunk not packaged yet, I think.13:12
vilalifeless: I thought about that too, but generally they check the API and we didn't change that13:13
bialixvila: if/when I cherrypick lifeless patches back to 1.18, may I ask you to run tests on win32 buildbot for me?13:13
james_w"fixes" -> "talk to me next week"13:13
james_wor even tomorrow13:13
lifelessjames_w: sure; its packaged as snapshots I think, FWIW13:14
vilabialix: no, I suspended tests on kerguelen because 1) they didn't finish so we still don't know how many failures we have, 2) they run under cygwin which isn't our main target, 3) they were a nuisance for jam to build the windows installer13:14
vilabialix: that being said, I still plan to install a local windows for my own needs and run the tests there until we migrate from kerguelen13:15
bialixmay I know more details about 1, 2 and 3?13:15
bialix2 is fixable I guess?13:15
vila1) blows up on CantCreateThread13:15
vila2) Needs a local setup to understand the issues13:15
bialix3) does jam build installers every night?13:15
vila2) is an related to buildbot13:16
=== kiko-zzz is now known as kiko
bialixbuildbot won't work on native windows?13:16
vilaWe *still* build the installers, we just don't run the tests :-/13:16
bialixlifeless: I'm planning to cherrypick your patches without tests changes where I see conflicts13:17
vilait works but the way the *service* is installed doesn't fit...13:17
bialix:-/ :-/ :-\13:17
bialixno means no13:17
vilabialix: ?13:18
bialix[15:14]<vila>bialix: no, I suspended tests on kerguelen...13:20
bialixno means no13:20
vilahaa, yes :)13:20
bialixI can live without tests13:20
vilawell, I didn't like doing that, but 1) kerguelen has limited memory and the tests were eating more than half of it, 2) 9 hours everyday to confirm that we still don't know how many tests fail was a bit too high a price :-/13:22
bialixyep13:22
bialix9 hours is a bit too much13:23
alex-weejhi13:26
alex-weeji really like the way i can use "git checkout feature-x" to change my working directory to a new branch and continue testing my web app13:26
alex-weejis there any way i can do the same with bzr?13:27
alex-weejor will i have to manage some symlinks with my own scripts?13:27
bialixno, you only need shared repo + lightweight checkot in bzr and then bzr switch between branches13:28
bialixI guess there even was mini-tutorial on such setup13:28
alex-weejthere was nothing on the git user guide13:29
luksI guess they don't mention much about bzr there :)13:29
alex-weejbtw is a shared repo one that is created by "bzr init-repo"?13:29
alex-weejluks: i meant http://bazaar-vcs.org/BzrForGITUsers13:29
alex-weej:P13:29
bialixalex-weej: his page out of date (last changed 2007/09/28)13:30
alex-weejaw13:30
lukshttp://doc.bazaar-vcs.org/latest/en/user-guide/index.html#switching-a-lightweight-checkout13:30
alex-weejthank you13:31
alex-weejluks: so is this a good workflow in your opinion? i don't mind changing my workflow with bzr if there are better ways13:32
luksI use it for every larger project in bzr13:32
lukssometimes I have more than one working tree13:32
luksbut almost never as many as branches13:32
Ddordawhen i try to pull a project i get an error message. what could be the reason? http://ddorda.pastebin.com/d7d9fbc3813:36
luksthat your SSH key doesn't match the key on launchpad13:38
james_wbeuno: loggerhead uploaded13:38
beunojames_w, THANK YOU13:38
james_wno, thank you13:38
Ddordaluks: how can i fix that?13:38
bialixDdorda: go to your personal page on LP and click on edit pen around your SSH keys; add your curent public  key there13:40
luksanother possibility is that your username is wrong13:40
=== abentley1 is now known as abentley
luksso try bzr launchpad-login first13:41
vilapoolie: I think I'm done with releasing 2.0rc1, please check :-)13:41
lukswow, 2.0rc1 already and 1.8 is not even released?13:41
bialix1.18 was secret release13:42
bialixhttps://launchpad.net/bzr/+download13:42
luksheh13:43
vilaluks, bialix : They share the same RM :)13:43
bialixthey?13:43
luksso you are now at 0 days release cycle?13:43
vila1.18 and 2.013:43
luksthat's super-fast development13:43
vilaluks: 1.18 is about to be released, 2.0 is only at the rc stage13:44
bialixvila: but announce for 1.18rc1 was never made13:44
vilawe need a 2.0beta into karmic13:44
vila1.18rc1 was announced, I just copied the mail to announce 2.0rc1...13:44
vila1.18 is yet to be announced13:45
bialix1.18rc1 -- I never seen announce13:45
luksah, couldn't you get 2.0 it in without this "cheating"?13:45
vilathat's because we've changed the process a bit so that installers can be ready when the announce is official13:45
vilaluks: that's not cheating, that the way it was planned13:45
vilakarmic is not released either see ?13:46
luksvila: it just feels weird13:46
vilaluks: do you use Ubuntu ?13:46
luksyes13:46
vilawhich version ?13:46
luks8.0413:46
bialixluks: new evil plan is to release once at 6 months, so 1.17 was release in June, so 1.18 will be around new year :-D13:46
luksthat's cool13:47
vilaluks: yet, many people are running 9.04 and some are already running 9.10...13:47
james_wbzr-gtk uploaded13:47
vilajames_w: yes by me, yesterday13:47
james_wno, by me today, to karmic13:47
james_w:-)13:47
vilajames_w: yes by me, yesterday including karmic, sync ?13:48
luksvila: I know, but seing two releases in the same day is pretty rare13:48
james_wI think that's all in order to get us a consistent stack for 1.1813:48
vilajames_w: forget me, I was talking about ppas13:48
james_wah13:48
vilajames_w: hence my 'builddeb rocks' yesterday,13:49
james_wah, cool :-)13:49
vilajames_w: if you find I made a mistake, please, please, report, I added jaunty and karmic, stop producing for gutsy and feisty, without any real discussions, so any feedback will be warmly welcomed (no urgency though, you have enough to do :)13:51
james_wI think that's a good plan13:51
james_wthey are EOL anyway13:51
james_wnot worth the effort13:51
=== abentley1 is now known as abentley
vilajames_w: I'm unclear about deleting the remaining packages for edg, feisty and gutsy in https://edge.launchpad.net/~bzr/+archive/ppa13:59
vilaI can't imagine who will need them, but ignorance happens everyday :)13:59
james_wvila: there's little cost to having them there, but then there is little benefit, so I don't really have an opinion14:01
vilajames_w: ok, I lightly prefer having a clean plate so nobody wonders why that's the only package for these distros...14:02
james_wyeah14:03
=== abentley1 is now known as abentley
* vila enjoys the silence brought by DOWNgrading its graphic card to a fan-less one ...14:18
vilaNow, only --parallel=fork starts the fans :-D14:19
* pygi sets some fire near vila's house...14:21
vilapygi: hehe, I still have the laptop.... which just became the noisiest around here when the fan speed is above 4000rpm...14:26
pygivila, ^_^14:27
=== ja1 is now known as jam
emmajanebeuno, ping?15:30
beunoemmajane, good morning15:30
emmajanebeuno, morning! :)15:30
emmajanePM?15:30
jamvila: morning15:33
jamI just submitted: https://bugs.edge.launchpad.net/launchpad-code/+bug/41925215:33
ubottuLaunchpad bug 419252 in launchpad-code "merge proposal threads have different headers" [Undecided,New]15:33
jamI was wondering if you could confirm the email headers I'm seeing.15:33
vilamorning jam !15:33
vilaI replied via the web15:34
vilabut my threading is perfect :)15:34
jamdo you see different mail headers?15:35
jamsubject lines15:35
vilajam: wow, rectification: *my* threading is broken too of course, see comment on bug15:46
jamah, so it is probably reply-to-comment versus add a review sort of thing?15:47
jamvila: thanks for helping track it down15:47
jamI've seen it before, and it is quite annoying15:47
vilait's higly misleading indeed, I have no idea where the subject is coming from for *my* mail !15:48
vilajam: Oh, I see we make the same jokes in addition to making the same reviews :)15:50
jamvila: so why did we go with rc1 rather than b1 ?15:56
vilajam: :my mistake ?15:56
vilajam: I followed releasing.txt and missed a part ? Missed a reference ?15:58
vilacycle.txt mentions 2.0rc1, rats, I used 2.0rc1 released instead of available :-/15:59
vilawell, still haven't been a true RM haven't I ? :)15:59
vilabut I think that 2.0beta1 will be *released* later anyway so I wasn't wrong on the naming, or was I ?16:00
vilajam: ^16:00
jamvila: it would be 2.0beta1-rc1 in that case16:01
jambut we are switching to the 'new' layout, I thought16:02
jamwhere we don't do rc's for beta releases16:02
vilathen I goofed :-/16:02
jamvila: question about mainline parent ghosts and merge_sort16:03
jamif you have ghost => A => B16:03
jamshould A be revno 1 ?16:03
jam(that is the best I could come up with...)16:04
vilastrictly speaking you know it *can't* be one since there is a ghost...16:04
vilaso it should be 216:05
vilajam: I'm unclear about deleting the remaining bzr-gtk packages for edgy, feisty and gutsy in https://edge.launchpad.net/~bzr/+archive/ppa16:06
vilawhat do you think ?16:06
jamvila: I wouldn't delete packages16:07
vilajam: ok, sold, I didn't but was unsure, james_w agree with you, 3/0, they stay, my only problem is that it's a bit unclean as we don't have corresponding bzr packages to go with16:08
jamvila: then obviously someone else doesn't agree with not deleting packages16:09
jam:)16:09
vilaerr, no we all agree to keep the packages16:10
vilaor are you just joking ? :)16:10
jamwell, I'm guessing that poolie deleted the old packages16:11
jamso he obviously would disagree (at least a little)16:11
jamso.. I wouldn't delete them *yet*16:11
jambut we should think about it16:11
vilaha !16:11
vilaok, get it :)16:12
vilaNow that you mention it, I seem to recall poolie talking about deleting them, so we'll see if he read the highlights in the IRC logs :)16:12
jamvila: what is the branch in lp?16:15
vilalp:bzr/2.0 ?16:15
jamk16:15
* jam wonders how we'll do it with on-going beta branches, etc.16:15
jamand the final stable branches16:15
vilaI'd say betas will come out one at a time from lp:bzr/2.1 and lp:bzr/3.016:16
jamvila: that isn't how we do it today... but perhaps16:17
jamI kind of like having a separate branch per official release16:17
vilawe don't have a lp:bzr/1.18rc1 AFAIK16:17
jambut I guess we aren't planning on doing point releases from any of the betas16:17
jamvila: rc != beta16:17
vilajam: look at cycle.txt may be ? It sounds that a single branch is enough for each serie16:18
vilaI'm talking about the scheme in the Schedule section16:18
hnoA little question related to the 2.0rc1 release. Will there be a bzrtools release matching this shortly, or do the 1.18.0 bzrtools release work with 2.0rc1 as well?16:32
hnoand related to this, is bzr 1.18 released or not? It's uploaded in launchpad, but bazaar-vcs webpages and this channel topic seems to say it's not released..16:34
jamhno: we have a new policy of not making the official announcement until all plugins/installers/etc have been built16:37
hnojam: that's regarding 1.18 right?16:39
jamhno: yeah. I'm pretty sure it is 'all released' but last night not all the packages had been made16:40
hnojam: So it should be fine if I go ahead and get it packaged for Fedora I guess.16:41
jamvila: also, you seem to have sent the announcement to 'bzr-announce' which I thought we were waiting for packages to do16:41
jamhno: the tarball is the 'official' release, yes16:41
jamConsider it "gone gold" versus "at the publishers"16:42
vilareleasing.txt :16:42
vila   For release candidates, this is sent to the ``bazaar-announce`` and16:42
vila   ``bazaar`` lists.  For final releases, it should also be cc'd to16:42
vila   ``info-gnu@gnu.org``, ``python-announce-list@python.org``,16:42
vila   ``bug-directory@gnu.org``.  In both cases, it is good to set16:42
vila   ``Reply-To: bazaar@lists.canonical.com``, so that people who reply to16:42
vila   the announcement don't spam other lists.16:42
jamhno: and bzrtools 1.18 will explicitly not work with 2.0. abentley has code in bzrtools that checks the version string and refuses to run if they don't match16:42
jamvila: 1) this wasn't supposed to be an rc16:43
vilarats, forgot the reply-ti :-(16:43
jam2) I think we are changing that policy16:43
jamat the minimum, though, we aren't sending "announce" until we have packages16:43
igcvila: new docs built, packaged and uploaded for 1.18 and 2.0rc116:44
igcvila: the current bot is called igc til we get an RT request done :-(16:44
vilaigc: bot ?16:45
igcwell 'cron job'16:45
vilahaaaa16:45
hnojam: So the 2.0rc1 isn't an rc?16:45
igcanyhow, time fro bed16:45
=== deryck is now known as deryck[lunch]
igcnight all16:46
vilasleep well igc, I'm almost EODing myself16:46
jamhno: so.... in *my* opinion, rc1 means we expect 0 changes before turning this code into -final16:46
jamand I don't think the current release is at that point16:46
vilawhen jam had finished listing all my mistakes in that 2.0rc1 release :)16:46
jamMaybe Martin decided otherwise overnight and told that to vila without telling me16:46
vilajam: nope, martin told me: I'm tired but I want that relase to be out today, can you help16:47
jamvila: so... I can't package the windows installer until the plugins have updated to 2.0-X, which means we should 'announce' the full release until after everything has been brought up to date16:47
jamso we should make an bazaar@ posting that the code is frozen and available16:47
vilayes, we should release 1.18 first16:47
jamand get people to catch up, build installers, etc.16:47
vilaI understand we needed 2.0 to enter karmic asap16:47
vilaso let's forget about 2.0 until the *official* RM for both 1.18 and 2.0 clears my mistakes :)16:48
hnoThe window for Fedora-12 is also relatively short (weeks).16:48
vilahno: we're talking days or hours here, the RM is in AU TZ16:48
* vila chuckles AU RM TZ, how about obscuring via acronyms...16:49
hnowasn¨t obscure to me.16:49
vilahno: I was thinking about an outsider trying to catch up the thread... poor guy :-/16:50
jamvila: and he is in EST (AEST) which doesn't help16:50
jamEST == New York time, *and* Australian Eastern (sydney) time.16:50
fullermdIt's not a REAL timezone unless it has a 15 minute offset...16:50
jamfullermd: I'm pretty sure AU has one of those, too16:50
jamAIUI, they have 9 different timezones in the summer, and 5 in the winter16:51
vilajam: who is in EST ?16:51
=== beuno is now known as beuno-lunch
fullermdYah.  AU and somewhere in SE Asia I think.16:51
jamvila: The official abbreviation for the time zone in Sydney is "EST"16:51
hnoSE is here... don¨t think we have an Asia region in SE.16:51
jamthough for sanity purposes, Martin calls it AEST16:51
jamI think it might be Eastern Standard versus Eastern Seaboard or something silly like that.16:52
jamvila: Google just claims Sydney == UTC+10: http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=lY0&q=time+zone+sydney&aq=f&oq=&aqi=g716:53
jamhowever:16:53
jamhttp://www.timeanddate.com/worldclock/city.html?n=240 says "EST"16:53
jamvs16:53
jamhttp://www.timeanddate.com/library/abbreviations/timezones/na/est.html16:53
jamwhich also says EST and is New York (ish)16:53
Takimo the only reasonable abbreviation for timezones is UTC+-N16:54
hnoTak: +/-NNNN in such case...16:55
jamTak: given that there are 15min offset timezones...16:55
TakI meant to indicate N as a number, rather than as a character ;-)16:56
vilaUTC+4h1516:56
jamvila: UTC+4.2516:57
vilajam: tsk tsk, too easy16:57
hnojam: UTC+0425 usually...16:57
jamhno: 0415 actually16:57
jamit is base 60 not 10016:57
hnoright.16:58
hnowhoever came up with base 60 for time... most of us have 10 fingers..16:58
jamvila: UTC+4.4h ?16:58
jam2*3*4*5 = 6016:58
jamit is the smallest number that is evenly divisible by 2,3,4,5,616:59
lfaraoneHey, a git import in launchpad failed with this traceback: http://launchpadlibrarian.net/30852208/rainbow-olpc-mstone-trunk-log.txt16:59
lfaraoneIs this a bzr bug?16:59
jamI personally prefer base 12, but its never caught on16:59
jamlfaraone: most likely a bug in bzr-git, but I don't really know for sure17:00
lfaraonejam: mkay.17:00
vilaI recently read a funny explanation for base 60: you count 12 via 3 points on each finger (can find the english word for french phalange) and then 5 fingers on the other hand17:00
hnobzr 1.18 will hit Fedora-11 testing tomorrow I hope.. still building.17:01
jamvila: interesting.17:01
vilaof course bases 12 and 60 are far more useful than 10 because you can divide by 2/3/4/5/6 (well not 5 for 12 but you get the idea)17:01
jamI've usually counted to 10 on one hand17:01
jamusing the thumb as a pointer for >517:01
jamwhich makes it pretty easy to count to 100 on two hands17:01
jamI've never really successfully counted in binary to get to 102417:02
jamfingers just don't bend that way easily :)17:02
jamvila: yeah, it is a shame we weren't born with 12 fingers :)17:02
jamIt actually was the one thing that is somewhat nice about the US inches to feet.17:02
jamIt is very easy to cut 1 foot into 3rds17:03
jamWhich I've done far more often than cutting into 5ths17:03
jam1/2 and 1/5ths is all metric is really good at, without getting repeating decimals :)17:03
vilathere were other articles about the romans counting up to hundreds of thousands with various finger gestures17:04
vilaand some others about base 20 being popular using fingers and toes...17:05
jamvila: I can count in the hundreds of thousands. just not with 1 digit precision :)17:05
vilajam: they had a way to express such numbers with all digits in several gestures, but they didn't use positional numeration (sp?) so they had special gestures for higher numbers17:06
vilawhat surprised me was that I thought they couldn't go higher than M, were in fact, even in the written form, they could17:07
vilaoh, and another funny one was about the chinese having special ideograms for bank accounts to fight counterfeiting (sp ?)17:08
jamvila: https://code.edge.launchpad.net/~jameinel/bzr/2.0rc2-419241-merge-sort/+merge/10755 if you get a chance17:08
vilanot today, I'm crashing :-)17:09
jamvila: hmm.. I wonder about finger positions for roman numerals17:09
jamvila: critical segfault in the  2.0 release17:09
jam'bzr log lp:~jameinel/bzr/2.0b1-stable-groupcompress-order -n0 -r -20..-1' segfaults17:09
vilayou ran 'make' ?17:09
jamvila: I wrote the code17:10
jamI know the segfault17:10
jamfixed in attached17:10
jamthough there is still a critical regression, at least it doesn't segfault17:10
vilajam: couldn't you be more daggy than 2.0 ?17:13
hnoOk. I won't package 2.0rc1 today17:13
jamvila: for what purpose? The code is only in 2.0 or trunk17:14
jamwasn't in 1.1817:14
vilaok, wasn't sure17:14
vilajam: the only worrying line is the deleted parents = self._original_graph[node_name]17:15
vilajam: reviewing online I miss the context17:15
jamvila: parents is passed into the function17:16
jamit was a bit bogus to re-read it from the dict17:16
vilaok17:16
jamI've been meaning to clean that up for a while17:16
vilaapproved then17:16
jamargh...17:17
jamrobert's fix for "bzr selftest -s bt" isn't in 2.017:17
vilaI'm sure we can backport that one :)17:18
jamI just sent in the MP so that we don't forget about it17:20
vilajames_w: I love that feature :)17:20
vilaerr, sorry james_w that was for jam :-/17:21
vilastupid xchat17:21
vilajam: hehe, not all things went wrong finally, my message to @announce is waiting approval :)17:32
vilajam: was waiting, cancelled now :)17:32
* vila really EODing17:33
jamvila: ok. I'll have another patch for the rest of the regression, but that can be handled by Martin et al17:35
mthaddonanyone able to tell me how do to figure out how many packs and indices a branch has (per https://bugs.edge.launchpad.net/launchpad-code/+bug/416990/comments/3)?17:46
ubottuLaunchpad bug 416990 in bzr "Memory usage of codehosting processes is excessive" [High,Confirmed]17:46
mthaddonnm17:47
=== beuno-lunch is now known as beuno
cellofellowI was just wondering if there was a way to put the bzr revision number into the code, in a comment particularly.17:48
jammthaddon: ll .bzr/repository/{packs,indices}17:48
jamshould be even able to do that over http17:48
mthaddonthx jam17:48
jammthaddon: I suppose the most accurate is to check .bzr/repository/pack-names in case some packs aren't referenced17:49
jambut that depends on the branch format17:49
jam(older formats is just 'cat', newer ones 'bzr dump-btree --raw .../.bzr/repository/pack-names')17:49
jamwell repo format i guess :)17:50
=== deryck[lunch] is now known as deryck
beunoigc, spelling mistakes have not been fixed because I'm using up the designers time to do design changes18:42
beunoemmajane can pick it up after we finish with the graphical part of it, and tweak18:42
emmajanebeuno, I just got back in from lunch and am reading backwards in time. :)18:42
emmajaneigc, yeah. No worries about the spelling mistakes. That's easily fixed.18:43
emmajanebeuno, I think the shuffling that is being suggested would be remedied if the banner had more breathing room and there was a more obvious "in" for each of the top four sections.18:44
emmajanebeuno, In my response I think I'd recommended that the list of links be reduced to a single button or graphical entry point to those four topics?18:44
beunoabentley, a single button for all the links?18:44
* emmajane blinks.18:45
emmajanethat was for me?18:45
abentleybeuno: I throw my blind support behind the Canadian.18:45
emmajaneLOL18:45
beunoargh18:46
beuno:)18:46
emmajaneabentley, thanks :)18:46
beunodamn18:46
beunoemmajane, yes18:46
beunotab FAIL18:46
emmajaneabentley, I owe you beer :)18:46
abentleyemmajane: Sure, we can hang out with William next time you're in the T dot.18:47
emmajaneabentley, that'd be most excellent!18:47
beunomwhudson, btw, while you where away, I did an emergency release of Loggerhead18:47
beunoto get it into karmic18:47
emmajanebeuno, yeah, a single button that leads to essentially a second "home" page for each of those topics.18:47
beunoemmajane, wireframe?18:47
emmajanebeuno, there's *so*much* right now on the front that it doesn't direct the eye to click *somewhere*18:48
beunoit's the fastest way to communicate  :)18:48
emmajaneah18:48
emmajaneok.18:48
beunoemmajane, remember when I said taht it was too much information?18:48
* beuno is a sucker for "I told you so"'s18:48
beuno:)18:48
emmajanebeuno, but I said the list of links could be dropped to a single icon into a page BEFORE you started with the designer.18:48
emmajanebeuno, then I said it as feedback.18:48
beunoah18:48
beunook18:48
beunoI take it back then18:49
emmajanebeuno, you're just ignoring me so taht you can be right. ;)18:49
emmajaneCan I save stuff on the web version of http://www.balsamiq.com/?18:49
beunomy brain tends to do that18:49
emmajanehehehe18:49
beunoemmajane, I don't know. But if you can export the bmml file, I have a full version18:50
* emmajane gives it a try.18:50
emmajanebeuno, http://pastebin.ubuntu.com/259976/ see if that works?19:03
emmajaneit's just "above the fold"19:03
* beuno tries19:04
emmajane(if I'd had more time the boxes would ahve been the same size)19:04
emmajaneI was just trying to mash out something to see though :)19:04
emmajanebeuno, not sure if that worked?19:13
jjack86are there any known issues with using the bzr server across linux / windows?  I'm having a heck of a time getting going -- I can "bzr checkout bzr://yadda-yadda" just fine from linux to linux, but my windows machines seem to just hang with the same command19:18
emmajanejjack86, any chance the windows machine has a port closed or some other weird windows-specific restriction?19:20
beunoemmajane, it did19:21
beunothanks19:21
beunoI'll get another revision with this cahnge19:21
jjack86i turned off my firewall to no avail, don't know where else to look (windows 7)19:21
emmajanebeuno, do you want me to follow up to igc's email as well?19:21
beunoemmajane, please19:21
emmajanebeuno, will do right now.19:22
emmajanejjack86, hrm. I'm not entirely sure. I haven't used Windows in a while.19:22
LarstiQjjack86: does networking to the server work at all?19:22
jjack86I can ssh with putty to the bzr server just fine19:23
jjack86and bzr checkout doesn't work from a windows xp machine either, fwiw19:23
Takbzr co WorksForMe on windows (bzr 1.17)19:25
emmajanejjack86, you said it just hangs?19:26
Takthis is with lp, sftp, bzr+ssh, and bzr-svn19:26
emmajanejjack86, is there anything on the server side that shows an incoming request?19:26
LarstiQjjack86: does the bzr.log provide any helpful info?19:26
jjack86yeah, it hangs, and when I break off the connection, the server throws some 'error connection closed' messages -- can you tell me where the log file is located by any chance?19:27
LarstiQjjack86: bzr --version should mention that19:27
jjack86ty19:28
LarstiQjjack86: both server and client have a log, but I meant the windows client in this case (doesn't hurt to look at the other one too)19:28
=== cprov is now known as cprov-afk
emmajanebeuno, sent! hopefully that makes more sense... :)19:44
awilcoxHello.  I was wondering if anyone has ever successfully versioned /etc in a Bazaar repo.  I have tried but I'm still relatively new to Bazaar and I haven't been successful.  I've also googled around and found nothing.  I would appreciate pointers?19:54
emmajaneawilcox, do you know about etckeeper?19:55
emmajaneawilcox, It does exactly that. :)19:55
emmajaneawilcox, http://joey.kitenet.net/code/etckeeper/19:55
awilcoxemmajane: I have read about etckeeper but I would like to keep *all* my servers' (I have about 15) /etc's in one central repository.  (In fact I have made an (approved) repo called "servconf" on the central code server.)  It didn't look like etckeeper did that; it seemed to make /etc a repo itself.19:57
emmajaneonce you have one server using etckeeper you've got a bazaar branch that you can share with other machines...19:59
awilcoxI'm also using FreeBSD while this looks very linux-specific.19:59
Takone place I worked had all the /etc on an nfs mount19:59
emmajaneawilcox, Bazaar is "just" python. anything that can run python can run Bazaar.19:59
awilcoxemmajane: I meant etckeeper.19:59
emmajaneawilcox, it will version any folder you tell it to.20:00
awilcoxMy code repo is on FreeBSD :)  I also do my development on OS X and Windows in addition to FBSD20:00
emmajaneawilcox, it'll even do /user/home if htat's what you want20:00
lifelessmoin20:39
mwhudsonbeuno: i saw that, thanks a lot!20:53
mtaylorlifeless: you wake up entirely too early in the morning21:16
lifelessI do I do I do I do...21:18
lifelessjam: you'll have to explan to me why you say commit doesn't have tests about the file graph21:20
jamlifeless: it obviously didn't have a test under the particular circumstances...21:20
lifelessjam: it did the right thing given the data the api gave it21:21
jamlifeless: record_iter_changes behaved reasonable wrt path_content_summary21:22
jamcommit was still wrong21:22
lifelessrecord_iter_changes doesn't use path_content_summary21:22
jamrecord_entry_contents21:22
jamsorry21:22
jamlifeless: so can you point me to the test that asserts only X texts have been added?21:22
lifelessI must be missing something here21:22
jamI'm happy to verify21:22
lifelessper_repository.test_commit_builder - grep for 'unchanged'21:23
lifelessthose tests assert that the inventory entry gets the original last-modifying revision id21:23
lifelessin non merged, merge-collapsing etc corner cases21:23
lifelessthey build on the assumption that the tree api isn't damaged21:24
lifelessI'm not sure that passing in a damaged path_content_summary tuple could be expected to do anything other than record_entry_contents did21:24
jamlifeless: so... perhaps I'm wrong, but _commit_check_unchanged looks to be doing a no-op commit and asserting that nothing has changed21:25
jamit doesn't seem to be an edge case21:25
lifelesstest_last_modified_revision_after_converged_merge_dir_unchanged21:25
lifelessetc21:25
jamrev1 = tree.commit(); rev2 = mini_commit(), rev1.inventory[file_id] = rev2.inventory.file_id21:25
lifelesstest_last_modified_revision_after_converged_merge_file_unchanged21:26
lifelessyes, no op commit is one of the corner cases21:26
lifelessremember that record_entry_contents hits every entry, so its entirely possible to have it spuriously record the entire tree21:26
lifelessif not tested21:26
WurblzapHey there... I don't seem to get Bazaar's --fixed functionality to work. I added a bugtracker_xyz_url line to branch.conf, but I keep getting my commits with "--fixed=xyz:123" refused because of "Unrecognized bug". Do you have a pointer for me?21:29
jamlifeless: I'm trying to figure out if this line is a bug:21:30
jam        def _check_graph(in_tree, changed_in_tree):21:30
jam            rev3 = mini_commit(in_tree, name, 'new_' + name, False,21:30
jam                delta_against_basis=changed_in_tree)21:30
jam            tree3, = self._get_revtrees(in_tree, [rev2])21:30
jamshouldn't that be tree3 = ...[rev3] +21:30
jam?21:30
lifelesslet me look21:31
jamalso, the way you do "expected_graph" isn't quite right21:31
lifelessWurblzap: hi, uhm.21:31
jamyou pass it the tip you want it to expect21:31
jamand then make sure that things are correct21:32
jamhowever, if you were to add (file_id, rev3) to the graph21:32
jamwe wouldn't know21:32
jambecause it wouldn't be an ancestor of (file_id, rev2)21:32
lifelessWurblzap: try putting it in bazaar.conf21:32
* Wurblzap tries21:32
lifelessWurblzap: it may be a bug in how we find the config21:32
jam(I'm not saying that the code would have been able to catch the issue. I *am* saying that it doesn't seem to actually be asserting that we didn't create a new node.)21:33
lifelessWurblzap: did you put in the {id} bit?21:33
WurblzapYup21:33
WurblzapDon't start bug hunting just yet, I'm using 1.11rc121:33
lifelessoh ok.21:34
jamWurblzap: I assume you got this from "bzr help bugs" ?21:34
WurblzapNo, from doc/en/user-reference/bzr_man.html21:34
jamWurblzap: k. I think that is taken from the other anyway21:34
lifelessjam: so, these tests got quite archaic, its entirely possible there are bugs. They have caught bad graph output from commit many times for me though.21:35
lifelessjam: re: adding file_id, rev3 - we don't care if thats added do we? as long as its not referenced by the entry it won't get copied...21:35
jamlifeless: seems like a good way to introduce bugs21:36
jamlike the one where we reference a text that isn't referenced by the original inventory21:36
WurblzapYeah, lifeless, it works if it's in bazaar.conf21:36
lifelessjam: how do you mean?21:36
jamlifeless: having a text key in the repository that is pointed to by the index doesn't seem like a good thing21:37
lifelessWurblzap: you might like to try bzr 1.18, and if that doesn't work in branch.conf file a bug.21:37
jamit doesn't seem critical if it isn't referenced21:37
jambut it may not be referenced in X, but *is* referenced by Y21:37
jamand we just didn't think to check both21:37
WurblzapAll right. Thanks, lifeless.21:37
jam(say in the dirstate cache, but not in the committed revision inventory)21:37
jamso I sort of do care that it isn't written to the repo21:37
jamas then I'm more sure that it won't be referenced anywhere without that location blowing up21:38
lifelessjam: so, I think that if we care if its written we have other bugs - design ones even21:38
lifelessAll we should care about is the reference that is made by the commit code - other people only get references from commit21:38
jamlifeless: I would care if every commit generated a new text for every file in my tree that was just never referenced21:41
lifelessjam: If the disk store that that environment had was a git layout, you wouldn't care21:41
lifelessbecause those references would be to the hashed unchanging versions21:41
jamlifeless: if it wrote new blobs I would21:41
jamand it still bloats the index severely21:41
jamwhich is the whole problem that caused Frits to even really notice21:41
jam700k entries in an index for 20k changes isn't a good thing21:42
lifelessI may be unclear on something21:42
lifelesswere his inventory entries bogus?21:42
mthaddonjam: can you talk me through the process of debugging the command run against one of these lp-serve processes that you describe in the bug?21:42
jamlifeless: I'm saying that bloating the indexes is bad, regardless of whether it is referenced from the inventory21:42
jammthaddon: I'm honestly not sure how to do the debugging in your environment, but I can gi21:43
jamgive some ideas21:43
beunoemmajane, the tabs on your mockup, don't need to be tabs, do they?21:43
lifelessmthaddon: you don't want to do this on a live server21:43
emmajanebeuno, nope21:43
lifelessmthaddon: it will freeze the process while you do it and may cause disconnects21:43
jamlifeless: consider that we changed 'pack' to always copy all references from the index21:43
mthaddonlifeless: ah, okay21:43
emmajanebeuno, I was just looking for the shape that meant what I said.21:43
jamwhich means that these don't go away21:43
beunoemmajane, cool. Just handed over the changes, crossing my fingers21:43
mthaddonlifeless: in that case, I think I'll leave it to one of the lp-bzr devs21:43
emmajanebeuno, thanks :)21:43
lifelessmthaddon: we should simply be using these questions as things to get codehosting logging. (And I filed bugs in this space some time back)21:44
mthaddonlifeless: since they now know which branch it is, should be able to reproduce21:44
beunoemmajane, and we'll probably want to take it to the public list from now on21:44
emmajanebeuno, that's fine.21:44
lifelesswhat I'd like to know is what format its being pulled into21:44
lifelessdoing data-conversion on the fly is a likely candidate for that footprint IMO21:44
lifelessjam: well, pack with no revspec always copied all indexed items.21:45
jamwhy am i seeing 3 calls to get_tags_bytes() .....21:45
jamlifeless: sure.21:45
lifelessjam: fetch() however was never meant to copy all index items.21:45
jamwhich means... it would be carried around21:45
lifelessjam: and IMO its a pretty bad bug that it does because it means private data can be exposed21:45
mthaddonlifeless: how would you know what format it's being pulled into?21:45
jamso... to say "I don't care" is false21:45
jamI don't care a lot about a small amount of extra21:46
jamI care a lot about a *lot* of extra21:46
lifelessjam: were his inventory entries bogus?21:46
jamlifeless: bogus in what sense?21:46
jamrev1.inventory[file_id] == rev2.inventory[file_id] except for last-modified-revision21:46
jamso the inventory referenced a text key which was added to the repo21:47
lifelessjam: the tree3=...[rev2] thing isn't a bug, but its horribly unclear21:47
lifelessjam: ok, so the inventory entry was wrong21:47
jamlifeless: why do you commit rev3, but never look at it?21:47
lifelesswhat line are you looking at21:48
jamlifeless: 106521:48
jamrev3 = mini_commit(...)21:48
lifelessk21:48
jamand rev3 is never mentioned again21:48
jamlifeless: in your hpss streamlining work, did you notice that get_tags_bytes is being called repeatedly and getting the same result each time?21:50
lifelessyes21:50
jamin poking around at mthaddon's stuff, I just noticed that21:50
lifelessbranch lock being dropped to zero21:50
lifelessdiscards the cache21:50
lifelessgot pulled over to the 2a crunch though before fixin21:51
jamsure21:51
jamas long as it isn't something new I'm finding21:51
lifelesscan be the client too21:51
jamlifeless: bzr.dev + bzr.dev for my testing21:51
lifelessok21:51
garyvdmHi all21:52
lifelessso, I'm struggling to explain rev2 there21:52
* garyvdm is looking for bialix21:52
lifelessI'll poke at this21:52
jamgaryvdm: I don't think bialix is usually on at this time... but you might get lucky21:52
lifelessjam: its a bug;21:53
lifelessjam: but only on that line; the rest of _check_graph is correct21:53
jaminterestingly, during the fetch, memory consumption is pretty steady until 375s into the fetch, when it starts growing, and it grows until the fetch completes at 560s. (from 75MB to 178MB.)21:53
lifelessas we're testing it didn't add an entry21:53
jamlifeless: right, so  I think you are trying to test that tree3.inventory[file_id].revision == rev221:54
jamand that the graph ancestry of rev2 is correct.21:54
jamthough I almost think you are trying to test that the graph ancestry should also not have a rev3 in it21:54
jambut can't test that easily, because you can't use it if it isn't there...21:54
jamI do wonder if assertFileGraph should be using iter_ancestry()...21:55
jamlifeless: anyway, back to the original question. I didn't realize that there was at least some level of this testing. Which is good to be wrong about. :)21:55
jamthough they are pretty hard to read and understand tests...21:55
lifelessyes21:56
lifelessthis was written when we had a merge convergence bug many years ago21:56
lifelessI was 'dammit I'm going to stomp this out'21:56
jamlifeless: the flip-flopping issues, etc?21:56
lifelessyes21:56
lifeless"failure to converge"21:57
lifeless[think Mao]21:57
lifelessjam: so, back to the commit issue22:01
lifelessI agree that adding huge numbers of unreferenced objects is undesirable; however thats not what happened here.22:01
lifelesswe added huge numbers of referenced objects22:01
jamlifeless: right22:02
lifelessI don't think we should pin down at the *interface level* whether unreferenced objects are used or not.22:02
jamyou said "do I care if unreferenced data gets writteN"22:02
jamI care if *lots* of unreferenced data gets written22:02
lifelessI'm totally open to writing non-interface tests about unreferenced data being written.22:02
lifelessBut I don't believe its part of the contract22:02
jamlifeless: it would seem to be part of the contract for all currently-implemented formats...22:03
lifelessjam: which contract22:04
lifelessI'm talking about the interface, which bzr-svn also implements22:04
jamlifeless: all currently implemented repository formats don't add unreferenced text nodes to the index22:04
lifelessI don't think its appropriate to test *at the interface level* that that is the case22:05
jamlifeless: and bzr-svn doesn't pass per-repository tests anyway22:05
jamlifeless: And I would bet that we wouldn't want to write a new format that *does* do that22:05
lifelessI should have the freedom to drop in an implementation that does things radically differently and passes22:05
jamso it seems a bit weak to say it isn't an valid interface contract22:05
jamlifeless: I think a reasonable part of the contract is that I won't grow grossly out of the order of actual content that you are versioning22:06
lifelessjam: I'm not saying we shouldn't have [some] tests, I'm saying I don't think its part of 'the inventory entries generated by commit are X, Y and Z and have valid references' contract.22:06
jamit is sort of a hard-to-pin down statement22:06
lifelessadd to that that its proving a negative22:07
jamsure22:07
jamwhich is part of the problem22:07
lifelessA misbehaving implementation could add newrevid-RANDOM nodes to the index22:07
jamwe have a lot of aspects that we don't test...22:07
lifelessand not reference them22:07
jamlifeless: you could check that the index only has 3 nodes22:07
lifelessthey could make a new index22:07
jamlifeless: so we have some holes when it comes to our testing wrt negatives...22:08
jamlike not fetching 5MB when you should only fetch 10k22:08
lifelessjam: if we wanted to write a test that all our built in repositories don't write (fileid,NEWREVID) for these cases, I'd be fine with that.22:08
jamI realize that the particular circumstances with content filters is fairly specific, and hard to predict ahead of time22:09
lifelessjam: btw 1.9 to 1.9 fetching, does it use the generic codepath now?22:09
jamlifeless: I don't believe so22:09
jamthat would have been spiv's change, though22:09
jamnot mine22:09
lifelessjam: my assertion about content filters is that it was testing coverage with the tree interface that lacked22:09
jamhmm....22:10
lifelessjam: if we'd insisted on a parameterised version of per_workingtree for content filters - which would be a time consuming change - we would have caught this easily.22:10
jamlifeless: after the transfer has completed, the process still has 230/299MB of in-use ram.22:10
lifelessand realised we need to make 'size able to be None'22:10
lifelessand then gone to the test_commit_builder tests and tested that combination22:10
jamlifeless: sure, though stacked branches suffered a lot of similar issues22:10
lifelessyup22:10
jamin that we don't have a 'per' on them22:10
lifelesshindsight in both cases22:10
lifelessI'm trying to formulate something I can be stubborn about with the next orthogonal-but-not-really feature22:11
lifelessto help us prevent this sort of surprise22:11
jamlifeless: where do you think would be good to make "Repository.get_stream" a little less opaque22:12
jamright now if I use -Dhpss22:12
jamI get about 4 lines22:13
jam0.428  hpss call w/body: 'Repository.get_stream'22:13
jam15.000     result:   ('ok',)22:13
jam554.473  creating branch22:13
jammake a request22:13
jamit returns in 15s22:13
jamand 500s later I'm ready to create the branch22:13
lifeless-Dhpssdetail22:13
jamrather opaque22:13
thumperabentley: ping22:14
jamlifeless: doesn't add much. Or are you saying that if I add debug statements I should use that category?22:15
lifelessjam: hmm, it should be reporting all the items22:15
jamlifeless: there are other bits22:15
jammy point is that get_stream( ) is 500 / 510s22:15
jamand it only merits about 3 lines22:16
lifelesshpss_detail should be printing22:16
lifeless              %d byte part read', len(bytes_part))22:17
jamjust that it is streaming something for the bulk of the time22:17
jamugh22:17
jamnetwork glitch22:17
lifelesshpss_detail should be printing22:17
lifeless              %d byte part read', len(bytes_part))22:17
jamsure I do see that22:17
lifelessI'd also consider -Dfetch22:17
lifelessif you want details on the bits inside the stream22:17
lifeless[you may need to patch stuff up for that one]22:18
jam grep -rnI "fetch.*debug" bzrlib/22:18
jamreturns nothing22:18
jamso I'm pretty sure -Dfetch isn't going to help (yet) :)22:18
lifelessit used to :P22:19
lifeless-Dstream too22:19
lifelessthat should be s/stream/fetch IMO22:19
jamof course, I'm more interested in the server than client side...22:21
jamlifeless: something seems wrong with -Dstream22:27
jam15.046  inserting substream: revisions22:27
jam15.048  inserting substream: revisions22:27
jam15.049  inserting substream: revisions22:27
jam15.049  inserting substream: revisions22:27
jam15.049  inserting substream: revisions22:27
jam15.050  inserting substream: revisions22:27
jam15.050  inserting substream: revisions22:27
jam15.050  inserting substream: revisions22:27
jam15.051  inserting substream: revisions22:27
jam15.051  inserting substream: revisions22:27
jam15.052  inserting substream: revisions22:27
jam15.052  inserting substream: revisions22:27
jam15.052  inserting substream: revisions22:27
jam15.053  inserting substream: revisions22:27
lifelessI think that shows the point :P22:27
jam15.053  inserting substream: revisions22:27
jam15.053  inserting substream: revisions22:27
awilcoxsomeone hit paste...22:27
jamsorry about the spam22:27
lifelessits getting lots of little substreams22:27
lifelessprobably the batch size of knit reads22:28
abentleythumper: pong22:29
jamlifeless: http://paste.ubuntu.com/260064/ would lead me to believe that every record is being treated as a separate stream22:30
thumperabentley: I wanted to talk to you about pipelines again22:30
thumperabentley: I'm in a similar situation to last time22:31
abentleythumper: It's not a good time right now.  Making supper.22:31
thumperabentley: ok, will talk later22:31
lifelessjam: thats possible22:32
beunojam, lifeless, while branching LP locally into a shared repo, I'm getting the CPU thrashed, as well as ~500mb of CPU usage22:41
beuno70.735  creating new compressed block on-the-fly in 0.000s 2645 bytes => 428 bytes22:41
beunothat's the last output, something like 2 minutes ago22:41
lifelessbeuno: do you have the C extensions22:42
beunolifeless, I'm using people.canonical.com22:42
beunoso I'm guessing yes?22:42
lifelessplease not to be guessing22:42
beunook, how do I verify?22:42
lifelesswhich bzr [check its a system one]22:43
beunoyes22:43
beuno/usr/bin/bzr22:43
lifelesspython -c 'import bzrlib._groupcompress_pyx'22:44
beunoreturns nothing22:44
lifelessthen you do22:44
beunook, it's still not giving me output, and using up a lot of CPU and RAM22:44
jamlifeless, spiv: So it does, indeed, seem that every knit-ft-gz is getting sent as a separate 'substream'....22:45
beunoit's currently running if you want to ssh in and fiddle  :)22:45
beunothis is bzr 1.17, and 2a format22:45
jambeuno: it is also possible that it is just taking a lot of time to create a working tree, and that it has nothing to do with the last log message22:46
jamI don't see why it would be 500MB, though22:46
beunoI've been having problems at the office with 2a as well, mainly for a bug repo (1.6gb), making the PC unsable when trying to push, and resulting in a traceback (haven't filed a bug yet)22:46
beunodeepjoy,22:46
beunojam, [#########\          ] Fetching revisions:Get stream source22:46
beunoit's stuck like that22:46
beunoaha22:47
beuno649.908  creating new compressed block on-the-fly in 0.000s 4063168 bytes => 36 bytes22:47
pooliehello beuno, jam, lifeless, abentley22:47
beunohiya poolie22:47
lifelessjam: thats undesirable but shouldn't cause memory or serious perf issues22:47
beunojam, https://pastebin.canonical.com/21528/22:47
jamhi lifeless22:48
jambeuno: it is always stuck like that22:48
jamno progress with the new stream code22:48
lifelessjam: ITYM hi poolie :P we've been chatting for hours?22:48
lifelesshi poolie22:48
poolieeasy mistake to make :)22:48
jamlifeless: apparently the tab key hits at weird times22:48
jambeuno: that branch isn't sharing a repository22:49
jamit is fetching between 222:49
jam'file:///home/beuno/db-devel/.bzr/repository/' to 'file:///home/beuno/launchpad/.bzr/repository/'22:49
jambeuno: what made you think it was inside a shared repo?22:50
beunojam, correct, it's being branched *into* a new shared repo22:50
beunohttps://pastebin.canonical.com/21529/22:50
beunoit's taking a VERY long time to do so, and a lot of CPU22:50
=== arjenAU2 is now known as arjenAU
jambeuno: k. So you just finished transferring revisions, as near as I can tell. Which is the new "lots and lots of fragmentation" issue22:51
jamthat said, 650s to get to that point is pretty crazy22:51
lifelessbeuno: we know the cause :P. We're working on it - jam has landed some mitigation stuff and spiv has landed more mitigation, but we still need to fix up 'does not compress on combining packs/streaming'22:52
beunoperfect22:52
jamlifeless: I don't think we know why it took 650s before it started copying "inventory" texts22:52
jamthat is 650s spent copying Revision texts22:52
pooliejam, so i wonder what happened, did vila make a beta tarball?22:52
* poolie opens mail22:52
jampoolie: he made an rc1 tarball22:52
poolierc!22:52
pooliereally22:53
jam... which I think was a mistake22:53
pooliei think so too22:53
jamhe called it 2.0rc122:53
jamwe chatted about it a bit22:53
jamhe also sent it to bzr-announce, though it got cancelled while it was pending22:53
jametc22:53
jamso the release process docs seem to need a bit more polish22:53
jamsince he felt he read them and was following what they said22:53
jambut he seemed to do a lot that doesn't fit what we were looking for22:54
beunojam, it's all on rookery, if it's of any use to you. logs, repos, all of it22:54
lifelessbeuno: what url did you pull from?22:55
beunolifeless, originally, http://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel/22:55
jamlifeless: he pulled from launchpad originally, but the current fetch is a local to local one22:55
beunocorrect22:55
lifelessjam: my top candidate for the 650 seconds is the 'walking the full graph for fetching into a local repo is slow' bug22:55
lifelessbut direct graph access would tend to argue against that22:56
jamlifeless: well, it still isn't super fast to query for missing revisions when the target repo already exists22:56
jamso it could be the problem22:56
lifelessbeuno: new repo?22:56
jambzr init-repo --2a .; bzr branch ../other22:57
lifelessjam: an empty repo is _very_ fast to query :>22:57
beunolifeless, yes, completely22:57
jamlifeless: but not as fast as when you create one from scratch and it does 0 queries22:57
lifelessjam: thats true, but it won't be hitting disk22:57
jamyour code to use AncesterOf rather than _search_missing_revisions22:57
lifelesssomething like 6 function calls per graph depth22:57
lifelessspivs, but yes. it is better22:58
jambeuno: can you run 'bzr --version' again real quick?22:58
jamhmm... that doesn't put it in .bzr.log22:58
jamlifeless: it is using python2.4 if that matters...22:59
jam0.029  looking for plugins in /usr/lib/python2.4/site-packages/bzrlib/plugins22:59
beunosure22:59
lifelessI wouldn't expect that dramatic a change22:59
beunoBazaar (bzr) 1.1722:59
beuno  Python interpreter: /usr/bin/python 2.4.322:59
poolieemmajane: thanks for keeping the website moving, i'm replying now23:00
jamlifeless: so yeah, as near as I can tell it is using the compiled extensions, so that isn't strictly a reason23:00
beunoFWIW, branching /devel from HTTP into the new shared repo, blazing fast23:01
beunobut that initial operation was murder23:02
jam1068s according to the log23:02
jam18min23:02
beunoright, to branch locally23:02
beunoand the CPU was angry at me in the meantime23:02
jambeuno: on the plus side you saved 1421 => 1068 = 6 minutes versus branching from remote...23:03
beuno:)23:03
jambeuno: any particular reason why you felt you *needed* to do this?23:04
lifelessjml: you should subscribe yourself to 'https://code.edge.launchpad.net/~jml/testtools/trunk'23:04
lifelessbeuno: I hear that launchpad.net can host branches23:04
jamanyway.... EOD for me.23:04
beunojam, yes. I got db-devel and wanted devel as well23:04
beunoto run a script against that branch23:04
jambeuno: but why two repos23:04
jamanyway23:04
lifelessjml: and/or fix the bug that reviewers are not treated as implicitly subscribed. Its really the most frustrating thing.23:04
jamI'm off to pick up my son23:05
beunojam, there shouldn't be a shared repo on the first one23:05
jambeuno: there still is *a* repository23:05
beunojam, I realized that I wanted a shared repo *after* I had branched intially23:05
lifelessbzr bind lp:launchpad/db-devel23:05
lifelessbzr switch devel23:05
lifelessbzr switch db-devel23:05
lifelessno repo, should be fast, thanks :)23:05
beunoyes, that's another way of doing it23:05
beunothis week is "don't learn new tricks week"23:06
jamlifeless, spiv: so as near as I can tell, bzrlib.smart.repository._stream_to_byte_stream does indeed intend to create a separate substream for each record23:07
jamwhich doesn't seem to match all the gyrations that _byte_stream_to_stream does to try and get multiple records per substream23:07
jamfor substream_type, substream in stream:23:08
jam  for record in substream:23:08
jam  pack_writer.bytes_record(serialised, [(substream_type,)])23:08
lifelessso,23:08
lifelessknit-* should all down to serialised = ...get_bytes_as()23:09
lifelessand for the additional records, that returns None or '' (I don't remember which)23:09
lifelessso we'll yield one substrea, for the entire group of IO that knit did back to disk23:09
lifelessthe revisions vf is a bit special, because it only uses full texts23:10
jamlifeless: I see exactly the same for inventories and texts23:10
lifelessjam: what precisely are you seeing23:10
jam3.323  accepting bytes: 'B341\ntexts\n\nknit-del...'23:11
jam3.323  substream_type texts, record_bytes: 'knit-delta-gz\nTREE_R'...23:11
jam3.323  inserting substream: texts23:11
jam3.323                294 byte part read23:11
jamover and over again23:11
jamanyway, 1 substream per record is... abusive but not specifically harmful23:11
jamI suppose it makes it easier for me to debug exactly when memory goes wacko23:11
jam /away23:11
lifelessexpected for revisions23:11
lifelessnot for others23:11
lifeless(revs and sigs)23:12
lifelessjam: knit-delta-closure and knit-delta-closure-ref23:13
lifelessjam: in the server you should see lots of the first, and many more of the second23:13
lifelessknit-delta-closure-ref's are not serialised23:13
lifelessand it should be using LazyKnitContentFactory23:14
lifelesspoolie: lunch?23:24
lifelessjam: I'm sorry the selftest bug hit 2.0, I thought I'd cherrypicked around it23:40
lifelessjam: or rather, I'm pretty certain I had23:40
pooliejeez you are getting up early23:51
poolieigc, did we get an os x mailing list? i can't remember23:54
pooliejam, lifeless, i'm going to merge 2.0 back to trunk23:57
poolieif we want to back out jam's changes, let's explicitly back them out23:57
pooliethough i'd be inclined to leave them the same as 2.0 until we fix the bug if any properly23:58

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!