lifelessjelmer: I wouldn't use chk_map unless you need updatable values00:16
lifelessjelmer: if you just need key:value and they are immutable use BTreeIndex00:16
jelmerlifeless: I need a big path -> tuple map that's different per revision but should have relatively small (line-based) differences between revisions00:17
jelmerlifeless: very much like an inventory00:17
lifelessok for that you want chkmap00:17
lifelessyou may want to look at chk inventories parent_id,basename->child_id map00:18
lifelessas a related use of chk_map00:18
lifelesswe use two maps00:18
jelmerlifeless: What about the Pack container bits from bzr-search, where should i be looking?00:18
lifelessone for paths00:18
lifelessone for the data00:18
lifelessbasically to work with chkmap you need a VersionedFiles object that supports hash naming00:19
lifelessit might be possible to convince knits to do this00:19
lifelessI'm not sure it would be a good idea ;)00:19
lifelessso the layering is:00:19
lifeless(KnitVersionedFiles|GroupCompressVersionedFiles)->(collection of btreeindex + pack files)00:20
lifelessand its that last bit that bzr-search has a smallish implementation of00:20
jelmerthis is all a bit new to me, VersionedFiles are still very much an abstract thing to me00:21
lifelessI think you should learn about the internals here00:27
lifelessits hampering bug fixing00:27
lifelessalso our layers could be better00:27
lifelessgot 20 minutes?00:27
lifelessjelmer: ^00:29
jelmerlifeless: if you can give a quick introduction that might help00:31
lifelessthats my plan00:31
lifelessone sec00:31
lifelessjelmer: ok00:36
lifelessjelmer: so lets start with VersionedFiles00:36
jelmerlifeless: ok00:37
jelmerlifeless: fwiw I'm familiar with the API00:37
jelmerlifeless: just not how it works underneath00:37
lifelessWeaves work by having a thunk class, not very interesting.00:38
lifelessmore interesting is how Knits and Packs work for the KnitVersionedFiles clas00:39
lifelessbring up knit.py00:39
lifelesslook for make_file_factory00:40
jelmerright, I think that's what I'm using right now for the file id map00:40
thumperhi people00:40
lifelessso this creates the two key objects KVF needs to work00:40
pooliehello all00:41
lifelessan index, which is responsible for locating bytes and storing the graph00:41
thumperis there documentation on using the merge sorted graph?00:41
lifelessand an access object, which is responsible for taking index descriptions of content and reading them back, or for writing and returning index descriptions00:41
lifelesshi thumper poolie no00:41
jelmerhi thumper, poolie00:42
lifelessjelmer: so _KndxIndex is the implemenetation of an index based on ,kndx files, and _KnitGraphIndex is the implementation of same building on the 'GraphIndex' interface00:42
lifelesslikewise _KnitKeyAccess and _DirectPackAccess00:43
* jelmer nods00:43
lifelessso, to use chk_map on .kndx and .knit files, we'd create a KVF much like make_file_factory does00:44
lifelessnow if you look at KnitVersionedFiles itself00:44
lifelessthis is the common logic that actually cares about knit deltas, their constraints and needs and so on00:44
mwhudsonthumper: i can probably tell you more than you want to know :)00:45
lifelessso it knows about delta chains (we'd want 0), annotations (0 again)00:45
lifelessit also knows about fallbacks to other VF objects, which is much of how stacking works on the client00:46
thumperwhat is the easiest way to get the revision_id for any mainline (non-dotted) revno?00:46
thumperlifeless: no attribute called ...00:47
lifelessjelmer: ok, I'm not sure where to drill down into; we can look at how _DirectPackAccess and _KnitGraphIndex work00:47
lifelessthumper: its roughly that00:47
lifelessthumper: pydoc and / for the win00:47
thumperlifeless: there are revision_id_to_revno00:47
lifelessjelmer: or we can look at actually wiring up chk_map to .knit files for you00:48
thumperlifeless: but not the other way around00:48
jelmerlifeless: let's look at the latter first00:48
thumpermwhudson: where is your pydoc stuff for bzr?00:48
jelmerlifeless: actually working with this code should help00:48
lifelessdotted_revno_to_revision_id and get_rev_id and00:48
lifelessjelmer: ok00:49
lifelesslets pop over to chkmap00:49
lifelessCHKMap wants a store, root_key and a search key func00:49
lifelessthe search key func is for hashed keys00:49
lifelesswe can ignore that for now00:49
=== abentley1 is now known as abentley
lifelessroot_key is something you need to store elsewhere00:50
lifelessits the 'id' of a given version of a dict stored in a chk_map00:50
lifelessso you'll need someplace to put that. perhaps another knit, or whatever.00:50
lifelessto bootstrap, when you first start, you use from_dict00:51
lifelessso -00:51
lifelessmy_map = CHKMap.from_dict(store, {}) is the minimal call00:51
lifelessthat will get a non-splitting map with single-element tuples as keys00:52
lifelesswhat you probably want is maximum_size=409600:52
lifelessso to wire it up00:53
lifelessstore = get_a_versioned_files()00:53
lifelessempty_map = CHKMap.from_dict(store, {}, maximum_size=4096)00:53
* jelmer nods00:53
lifelessthen you can stash stuff in it.00:53
lifelessyou can individually map() and unmap()00:54
lifelesshowever its much better to use apply_delta00:54
lifelessbecause map and unmap write on each change00:54
lifelessapply_delta applies all the changes and then writes00:54
lifelessthe get_a_versioned_files call should return a VF whose key width is 100:55
lifelessand no graph00:55
lifelessso lets pop back to knit.py00:55
lifelessaccess = _KnitKeyAccess(transport, mapper); mapper=ConstantMapper('myknit'); index = _KndxIndex(transport, mapper, lambda:None, lambda:True, lambda:True)00:57
lifelessYou want ConstantMapper because you want the same .knit and .kndx file for all keys00:57
lifelessthe lambdas are for handling lock/unlock callbacks00:58
lifelessyou should wire them up more carefully00:58
thumperkudos to the bzr developers for making an api even I find easy!00:58
lifelessbefore using with concurrent processes00:59
lifelessthen its just00:59
lifelessstore = KnitVersionedFiles(index, access, annotated=False, max_delta_chain=0)00:59
jelmerlifeless: ok, let me give that a try01:00
jelmermwhudson: btw, I've "fixed" the bzr-git importing strange modes issue01:02
mwhudsonthumper: http://starship.python.net/crew/mwh/bzrlibapi/01:02
mwhudsonjelmer: cool01:02
jelmermwhudson: it just means it won't be able to regenerate the sha map correctly if you remove it01:02
jelmermwhudson: it'll also warn if it hits strange modes01:02
jelmermwhudson: same thing for the XML-invalid characters that are escaped01:03
mwhudsonjelmer: i'm not sure i understand01:03
mwhudsonjelmer: remove what?01:03
jelmermwhudson: git.[t]db01:03
jelmermwhudson: which contains the information of which bzr revid/fileid maps to which git sha01:04
mwhudsonjelmer: ok, but i still don't understand what that has to do with strange modes01:04
jelmermwhudson: git works with shas everywhere01:04
jelmermwhudson: so when we talk to it we need to tell it which shas we have01:04
mwhudsonjelmer: currently, the git.db does not persist between runs01:05
jelmermwhudson: we generate those shas from the bzr data we have by converting to git objects and shaing those01:05
jelmermwhudson: if we can't regenerate the exact same git object we can't find a particular sha01:05
mwhudsonjelmer: ahh01:06
mwhudsonjelmer: so "persisting the sha data between runs" has become a bit more important?01:06
jelmermwhudson: yeah, a bit. previously we would just flat out refuse to import anything with strange file modes, now we just warn01:07
jelmermwhudson: we could store the file modes in revision properties at some point01:07
jelmermwhudson: in which case we could regenerate the sha map correctly again01:07
jelmermwhudson: s/file modes/unusual file modes/ (they're really rare)01:08
mwhudsonjelmer: yes but the kernel is a pretty obvious target, i think we need to support that01:10
mwhudson(ultimately, not necessarily in the next release)01:10
jelmermwhudson: sure01:10
jelmermwhudson: Storing in revision properties should fix this, and keeping the sha map around works around the problem01:11
jelmerthere's only 3 files in the kernel with unusual modes01:11
lifelessjelmer: so how did that work?01:11
jelmerlifeless: still working on it01:15
lifelessapply_delta is real simple01:15
lifelessI'm going to start working on these presentations01:16
lifelessgimme a shout anytime01:16
lifelessjam: wow bvg is very, uhm, brief01:17
jelmerlifeless: Hmm, CHKMap.from_dict() returns the new root key01:20
jelmerlifeless: so I just use CHKMap(store, root_key) to get it out again?01:20
lifelessapply_delta also returns a replacement key01:21
lifeless(from_dict is a shim around apply_delta)01:21
jelmerok, that's working now01:22
jelmerlifeless: in the case of inventories, what do you use the key tuples for ?01:22
jelmerand is there any reason why I might want e.g. the individual directory names in the tuple instead of just a 1-tuple with a path?01:23
lifelessjelmer: size01:24
lifelesswe store inventories as two dicts01:24
lifeless(parentid, child_name)->child_id01:24
lifeless(fileid,) -> serialized_entry01:24
lifelessthe former gives us 'ls /foo/bar'01:25
lifelessthe latter gives us tree.inventory['fooid']01:25
lifelessjelmer: what are you storing01:26
jelmerlifeless: I'm storing unicode_path -> (file_id, revision_id, created_foreign_revid)01:31
lifelessand on only ever lookup on path ?01:32
jelmerlifeless: no, lookup by file id is also possible01:32
lifelessso you'll need two maps01:32
lifelessif you want fast lookup on fileid01:33
jelmerlifeless: but lookup by file id is very rare ("bzr check" uses it)01:33
lifelesscheck is getting overhauled ;)01:33
lifelessthis is for svn ?01:33
jelmerlifeless: You're overhauling bzr-svn's check too ? ;-)01:33
lifelessno, but the api calls bzr makes are being overhauled01:33
jelmerlifeless: yeah, bzr-svn does check too (it checks the consistency of the bzr metadata)01:33
lifelessso the access pattern is going to radically change01:34
lifelessalrighty, we cn ignore it at your risk:)01:34
lifelessdo you need to iterate paths ?01:34
lifelessor is it 'give me data for X'01:35
lifelessamd do you need to do case-insensitive matches01:35
jelmerI mostly need to just look at particular items01:37
jelmerby path01:37
lifelessso if you store every path you'll have a lot of duplicate data01:37
lifelessthe trie will reduce some/much of o that01:37
lifelessbut not all01:38
jelmerduplicate in the sense that duplicate revids are used?01:38
lifelessin particular leaf nodes have the full key of each item to allow finding the thing you asked for01:38
lifelessno duplicate in the sense that foo/bar and foo/gam both have foo/ in the key01:38
jelmerah, right01:38
lifelessso you should zcat your knit and ahve a look, we had some optimisation plans and I don't recall exactly what items jam got to01:39
lifelessand what we deferred/didn't do.01:39
jelmerthat's not worse than what we have now though01:40
lifelessyou could hash the keys (via the key func), you could use two dicts (parent,child)->filed, fileed->(revid, foreignid)01:41
lifelessor you could say 'I'm happy as it stands'01:41
lifelessa more important thing though01:41
lifeless'knits' load the full index always01:41
lifelessthis sucks for doing little operations01:41
lifelessso when you hve this working we should look at backing it onto packs+btree indices01:42
=== luke-jr_ is now known as luke-jr__
lifelessman, I so want to code01:47
jelmerwhat's stopping you?01:48
=== luke-jr__ is now known as luke-jr_
mwhudsonjelmer: thinking about it, i think relying on the sha map persisting is pretty smelly :)01:48
jelmermwhudson: yes, it is. that's why we're warning01:49
lifelessjelmer: presentations to write01:49
jelmerlifeless: ah. uds?01:49
lifelessand bzr and git are hot topics01:50
lifelesslikely ot have a hundred folk, I suspect01:50
jelmerlifeless: uhm, how do I get my data out of a CHKMap?02:24
jelmerother than iteritems()?02:24
lifelessany way you want ? :)02:24
lifelessand iter_changes02:24
lifelessis == __getitem__('path1'), if we had it02:25
lifelesswe don't because its not cheap and the api should reflect the reality02:25
jelmerValueError: Prefix has too many nulls versus width ?02:26
igcmorning (at last)02:33
lifelessigc: just :)02:36
igclifeless: :-)02:36
igcthanks for the review02:36
lifelessno probs02:36
lifelessI think its not much work to do your approach at the right layer02:37
lifelessAnd I agree we can defer really deeply integrating it.02:37
lifelessI do think its important to have tests, and that they are really best written against the right layer.02:37
igcme too02:37
lifelessI hope I suggested a reasonable way to do that02:38
igclifeless: I did02:38
igclifeless: I would really like to leverage the specfiic files masking at the layer below02:38
igcwhile perhaps keeping the parent yielding ...02:38
igcand exclude masking a layer above02:39
igclifeless: but I got a weird error from record_iter_changes when I tried02:39
igcis that fixed by parent yielding do you know?02:39
lifelesspaste the error ?02:40
lifelessGit pull of dulwich: 2.43 MiB  in 0m53.437s02:40
lifelessBzr pull of dulwich: 360KB in 0m36.602s02:40
igclifeless: I'll need to change the code again and re-run. Will do later02:40
lifelessjml: I think jam and I have to rename our talk02:40
lifeless'when bzr became faster than git'02:41
jmllifeless: that's a very nice result.02:41
lifelessigc: so, without seeing the error I can't do much more than guess02:41
thumperlifeless: are those numbers representitive of normal usage?02:42
lifelessthumper: 'bzr branch lp:~lifeless/dulwich/trunk-bbc02:42
lifelessthumper: vs 'git init; git pull git://gitorious.org/dulwich/mainline.git'02:42
jmllifeless: but were it me, I'd leave the talk with the same title and demonstrate its obsolescence with a big bar graph.02:42
lifelessthumper: so, I'd say yes02:42
lifelessjml: yes, I was jesting about the rename02:43
lifelessthe title is nice and contentious02:43
jmllifeless: :D02:43
jmlvery good result though.02:43
lifelessI wanted to paste the result though02:43
* jml is keen to see the results for the kernel02:43
lifelessI was thinking, 'lets get some numbers'.02:43
lifelessand boom.02:43
lifelessthumper: big histories may scale differently. I don't know precisely.02:43
thumperlifeless: very cool02:43
lifelessof course, over http it took 6 minutes to get dulwich bzr02:45
lifelessdon't mention the war02:45
thumperlifeless: but git isn't using http is it?02:45
lifelessgit is using its native protocol02:46
thumperlifeless: so we are still comparing oranges with tangerines rather than oranges to fork lifts02:46
bob2is lp especially aggressive about packing things?02:46
thumperbob2: no02:46
lifelessthumper: yes, both protocols are fruity02:47
jelmerlifeless: nice!02:48
jelmerlifeless: do I explicitly have to remove entries from the chk map or is overwriting them fine as well?02:49
pooliethumper: want to catch up about nested trees sometime?02:57
thumperpoolie: yes02:57
lifelessjelmer: use apply delta03:01
pooliethumper: call me?03:01
johnflifeless: you about?03:02
pooliehello johnf03:02
lifelessjohnf: sure am03:03
johnfpoolie: howdy03:03
johnflifeless: re bug https://bugs.launchpad.net/bzr/+bug/24339103:03
ubottuUbuntu bug 243391 in bzr "TooManyConcurrentRequests during commit" [High,Fix released]03:03
lifelessjohnf: there's this theory I'm paid to do this sort of thing :)03:03
poolieigc: one small chore for you next week: please moderate the mailing list03:03
poolieit gets a ridiculous amount of spam but enough real posts are caught you do need to check it03:03
igcpoolie: sure03:03
johnfI'm getting a similar error when an upstream router returns admin proibited. Would that be fixed or should I file another bug?03:04
lifelessjohnf: bzr version ?03:04
johnfclient 1.14.1 server 1.1303:04
lifelessjohnf: new bug, that was 1.803:04
lifelessjohnf: I take it you've fixed your router though ? :>03:05
johnflifeless: no it's normal. Happens if the VPN is down03:05
lifelessjohnf: so, I suspect this is a variant of 'ssh tells us shit', unless you're committing over http03:06
johnflifeless: this is using bzr://03:06
lifelessjohnf: ok. please be sure to include that detail in your new bug report ;)03:07
lifelessjohnf: root cause will be that we try to perform an operation on the protocol object while its still thinking its busy03:07
johnflifeless:  I think I'll add to this bug as it seems to be the same problem https://bugs.launchpad.net/bzr/+bug/32345603:08
ubottuUbuntu bug 323456 in bzr "TooManyConcurrentRequests when committing and the smart server is offline" [Undecided,New]03:08
lifelessgimme a sec to read it03:08
lifelessyah, do it03:10
lifelessor just metoo the bug03:10
lifelessjelmer: can you suggest a midsize project with history in git and bzr - same history, as dulwich has03:11
lifelessjelmer: I'd like to do a slightly less 'new project' test03:11
jelmerlifeless: I'm using apply delta, but may be overwriting keys without removing the old data at the same key - is that a problem?03:12
jelmerlifeless: hmm03:12
lifelessjelmer: its expected03:12
jelmerlifeless: cool, thanks03:13
lifelessjelmer: you can't have a key repeated in a chkmap03:13
jelmerlifeless: Not sure about other projects. You could use one from gnome that's available in both svn and git03:13
lifelessjam: hi :)03:13
lifelessjam: gathering data for our talk, I found:03:13
lifeless11:35 < lifeless> Git pull of dulwich: 2.43 MiB  in 0m53.437s03:13
lifeless11:35 < lifeless> Bzr pull of dulwich: 360KB in 0m36.602s03:13
lifelessjelmer: I might ask a favour, if you're willing, as you have gitorious etc accounts03:17
lifelessjelmer: put together a similar sample case, but something that is say 10x the size of dulwich03:17
* lifeless binds nose to ooo03:21
igclifeless: is pqm broken? I just tried resubmitting a patch and it fails pretty well instantly grumbling about 'subunit' I think03:24
lifelessigc: forward to me please03:25
lifelessit shouldn't be, as subunit is optional.03:25
igclifeless: I don't get an email either re success or failure as best I can tell03:25
lifelessigc: and to land a patch making it mandatory the patch would have to pass03:25
igclifeless: I'll run the test suite on my integration branch and see if it's my fault03:27
lifelessbug in pqm03:27
lifelessit may be fixed i nwhich case we can just say 'spm please upgrade pqm'03:27
lifelesslets start with that03:27
lifelessspm: please upgrade pqm03:27
poolieigc, abentley, i read through the updated design doc and i have some comments03:29
pooliei know some of my questions on the user doc were answered in the design doc, but i wasn't always asking them for the sake of the answer03:30
pooliemore to say they should be described here03:30
igcpoolie: I'm planning to update the userdoc given the feedback from you and others03:31
* lifeless taps the mic03:31
lifelessspm: ping03:31
lifelessigc: I'm sorry you haven't had feedback from me yet03:31
lifelessigc: feeling the crunch with allhands and 1.1503:31
lifelessigc: your branch is probably faulty btw, I think its a bug in pqm that you don't get told, not a bug in pqm causing it to fail03:32
igcpoolie: but I don't think the userdoc is the critical path given abentley is working from the design doc03:32
igcpoolie: except for how the userdoc impacts the design doc03:33
spmlifeless: sorry was on the phone. couple of minor family hassles atm. so upgrade pqm on balleny? I assume a bzr pull equiv would do the trick?03:34
lifelessspm: yeah, cd ~/source/pqm; bzr pull03:35
lifelessspm: then igc can try again03:35
lifelessand we see what breaks.03:35
spmoki. one sec or more...03:35
spmlifeless: igc: upgraded. go for it.03:43
AfCIs "1.9-rich-root" is the still the current public rich root format, or is there a newer one I should tell someone to use?03:50
lifelessAfC: its what --default-rich-root will create.03:52
lifelessAfC: if you need working tree filters you can use 1.14-rich-root, but only windows users are likely to be desperate for that03:52
lifelessand if you want to help beta test the bbc format you can use --development-rich-root03:53
lifelessigc - thats what you hit in pqm https://bugs.edge.launchpad.net/pqm/+bug/34036103:54
ubottuUbuntu bug 340361 in pqm "bad format usage" [High,Confirmed]03:54
igclifeless: http://rafb.net/p/dMFRc592.html03:57
igclifeless: anything obviously wrong?03:57
igcI trying to use a new integration branch fwiw03:58
igcone on lp as poolie has requested03:58
lifelessigc: your branch url is probably the problem03:58
lifelessigc: two things03:58
lifelessfirstly, ~ianc/bzr/integration would be a better url03:59
lifelessno point having your personal integration branch a team branch03:59
lifelesssecondly, I don't know if balleny can talk to lp03:59
igcwell, except lp fails whether I try to push to ~ian-clatworthy/bzr/ianc-integration :-(03:59
lifelessspm: can you check that pqm user on ballent, outside chroot, can do 'bzr info bzr+ssh://bazaar.launchpad.net/%7Ebzr/bzr/ianc-integration/'03:59
lifelessigc: it does, how ?03:59
lifelessigc: or rather, in what way04:00
igcgrumbles about a read-only transport04:00
igcand breaklock doesn't fix it04:00
lifelesspastebin please04:00
spmlifeless: it can yes.04:01
igclifeless: http://rafb.net/p/gnKmyI33.html04:02
igclifeless: looks like ~ian-clatworthy/bzr/integration has worked though04:02
lifelessmuch nicer url :)04:03
igclifeless: well, except for the vfs noise: http://rafb.net/p/CMcA4E84.html04:03
lifelessigc: yes, bzr is running 1.1404:04
lifeless1.15 will remove that for a simple push04:04
lifelessdunno why you get that lock error04:04
lifelessreadonly transport means that lp thinks *you* can't write to it04:04
lifelessfile a question on launchpad-code04:05
lifelessI suspect a bug04:05
igclifeless: ok, I'll try a http url to that new branch04:05
lifelessigc: bzr+ssh should be ok, spm has confirmed it works04:05
lifelessigc: what commit message were you giving pqm04:06
igclifeless: see http://rafb.net/p/dMFRc592.html04:07
igcmaybe the & is causing an issue?04:07
lifelessI would suspect so04:09
igclifeless: so neither changing to a http URL, nor changing & => 'and' fixed the problem04:20
igcI added 'public_branch:policy' to branch.conf but that didn't help either04:21
igcthe full test suite passes locally04:21
igcI don't have push_location:policy set to norecurse. Is that likely to cause an issue?04:22
lifelessjml - whats up with https://code.edge.launchpad.net/~jelmer/pqm/merge04:22
lifelessjml: I can't access it as 'lp:~jelmer/pqm/merge'04:23
thumperlifeless: that is because there is nothing there04:23
lifelesshttps://code.edge.launchpad.net/~jelmer/pqm/merge/+merge/6122 seemed to find something at some point04:24
thumperlifeless: or broken04:24
lifelessjelmer: ^^^^04:24
thumperlifeless: probably created with bzr send04:24
lifelessisn't that meant to create a working branch?04:25
* igc lunch04:32
bob2no matter how many times I branch dulwich, git takes twice as long04:42
thumperdid I recall seing that bbc branches stack in 1.15dev?04:42
lifelessbob2: :)04:44
thumperlifeless: cool04:44
lifelessor at least, jam has it mostly going and we're aiming for 1.1504:49
lifelessspm: please pull bzr from people.ubuntu.com/~robertc/pqm/trunk04:50
jmlbob2: given that the git version is almost seven times bigger, that's not surprising :)04:54
bob2heh, even after a repack, it's 2x04:54
lifelessjml: 7 times data sent04:54
lifelessbob2: same history04:54
jmllifeless: oh.04:54
lifelessjml: ^ same history04:54
jmllifeless: that's actually quite interesting :)04:55
spmlifeless: balleny pqm update again?04:55
lifelessjml: its why I chose dulwich, jelmer keeps them in sync04:55
lifelessspm: please, from the url above04:55
bob2hm, 5x repo size04:55
spmlifeless: done. ddidn't restart the ui this time, appears unchanged.04:57
lifelessigc: please try again04:57
lifelessigc: I think you managed to have a revision that had a % in it. Odd though that may be. that or your url has a % in it04:58
lifelessigc: and thank you for the excuse to write some code :)04:59
igclifeless: anytime :-)05:21
lifelessigc: so on commit05:22
lifelessigc: I think you should spend say 2 hours just doing it. At any blockage cry for a hand05:23
lifelessif at the end of that it looks like indefinite deferral, stop and I'll cave or something05:23
lifelessOTOH its in your head, and you've already figured out the bits needed.05:23
igclifeless: well, I'm not convinced the layering is right to be honest05:24
igcrecord_iter_changes ...05:24
igcclaims to take the results of iter_changes but it doesn't05:24
igcso you need to do the mssing -> delete dance for example05:24
lifelessby which you mean iter_changes isn't compatible with it ?05:24
igcso I wonder whether ...05:25
igcrecord_iter_changes ought to be handling that, and the parent yielding05:25
igcthe trouble is ...05:25
igcrecord_iter_changes is *5* pages in length05:25
igcnot exactly easy to hack on05:26
igclifeless: I've had terrible pain these last 24 hours and the pain killers aren't working ...05:26
igcso apologies if I'm coming across grumpy05:26
lifelessigc: ouch :(05:26
lifelessnot at all05:27
igcdentist tomorrow but it's prably chemo frug related :-(05:27
lifelessyou raise a good point05:27
lifelessrecord iter changes is long, but mostly clear05:27
igcso, reporting aside, maybe ...05:28
lifelessthe major data-assembly points can be turned into helpers without performance impact; its only the main loop we need to be really careful on05:28
igcfliter_iter_changes needs to move into commitbuilder05:28
lifelesscommit.py needs:05:28
lifeless - reporting05:28
lifeless - awareness of missing->deleted changes so it can update the working tree05:28
* lifeless tries to remember what 'missing' files will do when sent to ric05:29
abentleypoolie: While those changes might improve the userdoc, I don't see that helping us decide how to move forward with nested trees.05:29
lifelessget_file_with_stat will fail05:29
lifelessigc: ok, so ric wants something that is a subset of iter-changes (no 'missing' status) and a superset ('add parents please')05:30
lifelessigc: I think reporting should stay outside05:31
igcme too05:31
lifelessigc: ok, let me rephrase what I really want05:31
lifelessI think its gotten lost05:31
igcand btw, iter_changes needs to do more for commit than it currently does, e.g. unknown checking05:32
lifeless - specific tests for the handling of parent-adding and path-excluding05:32
lifelessgiven that the interface isn't as crystal as I recall, I won't ask that those things be in the iter_changes interface, and certainly not as a rush just before 1.1505:33
lifelessso I'm fine with them outside it.05:33
igcand I'm happy to add those tests but ...05:33
igcI don't think that ought to block my interim patch :-)05:33
lifelessI think its easier to test those things if they are not embedded in Commit05:33
lifelessigc: Given I think your patch has at least one bug which such tests will catch, I think it should05:34
igcI think the parent yielding and excludes can be a decorator as you outlined and tested as such05:35
lifelesswith that done I'll be happy to approve ;)05:35
igcdo you want the missing -> delete dance done in the same decorator05:35
lifelessif you want to move it across, that would be fine with me. OTOH its orthogonal to what you are trying to achieve.05:36
igcdo we know whether a pipeline of decorators is faster than one or vice versa?05:36
igcI know that's ...05:36
igca bit like asking how long a piece of string is05:36
lifelessthere is a cost05:36
lifelessOTOH specific file commits tend to be small anyway05:37
lifelesscommit [list of 4000 files] is rare05:37
igcthat's why I felt pushing the code down wouldn't gain much performance wise05:37
lifelessthe only really-big-list commits we see that people will notice a small percentage point on is first-commit05:37
lifelessoh, pushing it down is about clarity and reuse for 'diff' and 'status', not about further performance wins.05:38
igcand that won't have excludes and specific files most likely05:38
lifelessexclude may gain substantially by pushing into iter_changes05:38
lifeless(consider -x large-directory)05:38
=== awilcox_ is now known as awilcox
lifelesseven an unchanged large directory will be a lot cheaper if you don't stat it at all05:39
lifelessbecause you won't page it in from disk etc etc05:39
igclifeless: so wrt diff and status ...05:40
igcneither take a -x flag do they?05:40
igcand neither care about parent yielding?05:40
lifelessno, because the code is trapped in commit :)05:40
lifelessstatus should show what commit will do; it can't at the moment.05:40
lifelessthis was an oversight when the commit -x support was accepted05:41
igcso, IIUIC, you're arging that status and diff ought to gain -x options once iter_changes supports an exclude parameter?05:41
igcand parent yielding? That still smells like a ric special need to me05:42
lifelessbzr diff foo/bar -> A foo\nRM bar\n05:42
lifelessiter_changes can't generate valid inventory deltas without parent yielding of new parents05:42
lifelessthat sharply limits its reuse in the core05:43
lifelessI appreciate your arguments for doing less, now. But I think the reasons to push these things down to iter_changes at some point are pretty strong and valid05:44
lifelessexclude for performance, yielding new parents for correctness in tools like fast-export, ric itself, various custom bits of code.05:44
igchmm - in some ways, CommitBuilder is the inventory-delta generator05:45
lifelessanyhow - like I say, I've backed off from insisting you do the move to iter_changes; unless you're considering doing it, we're just idly chatting05:45
igclifeless: sorry, just trying to get the right long term layering clear in my mind05:46
lifelessyes, thats a prime component of CommitBuilder.ric05:46
* igc heads back to coding05:46
lifelessigc: thats cool; I didn't want you to be feeling that I was still asking for it, was all.05:47
lifelessigc: have you tried pqm again?05:53
igclifeless: looking much better thanks05:53
igcthanks to spm too05:53
spmigc: us qlder's need to look out for each other. ;-)05:54
igcspm: absolutely :-)05:54
vilahi all07:01
spmmorn vila!07:05
lifelesshi vila07:18
lifelessvila: how did you go with annotate?07:19
vilaI'll really start to day, I was hoping to quickly finish fixing a bug but bmuped on a test coverage hole :-/ Then I prepared a talk for all hands...07:21
vilas/to day/today/07:21
lifelesswhat talk are you giving?07:22
vilalifeless: I don't know if I'm the one who will be giging it, but anyway, it's about mysql users07:25
vilalifeless: but if you have some template around I'll buy it07:26
vilalifeless: perfect, thanks07:35
jnz__Hi, bzr push --create-prefix raised an internal error after I've inserted the password:08:54
jnz__bzr: ERROR: exceptions.AttributeError: 'str' object has no attribute 'get'08:54
=== Kinnison_ is now known as Kinnison
* igc dinner09:20
awilkinslifeless: The HTTP server seems to be broken for me as far back as 1.1209:51
awilkinslifeless: I'm rolling back through versions to see where it starts working again09:51
Peng_Whowhat is broken?09:51
awilkinsPeng_: bzr+http:// server, on Win2k3 server / IIS / PyISAPIe09:51
Peng_Oh. What goes wrong?09:52
Peng_(Not that I can help, but I'm curious.)09:52
awilkinsI'm geting "FileExists" exceptions09:52
awilkinsWhen pushing09:52
awilkinsPulling appears to be fine09:53
awilkinsAlas, different exceptions when I turn on server-side logging09:54
* awilkins cusses loudly10:06
awilkinsI upgraded the server to 1.14 and it stops working. I downgrade it back to 1.9, and it's still not working in exactly the same way.10:06
lifelessawilkins: file bugs10:06
lifelessawilkins: I'm about to start a social event, but I'll comment on them at a minumum tomorrow :)10:07
lifelessawilkins: [of course, debugging it yourself is great too]10:07
awilkinsI don't think it's necessarily a bzr problem10:07
awilkinsYes, I think a few hours with a filesystem debugger and contemplating dark thoughts about people who install antivirus on servers is required10:08
awilkinsIt seems similar to a bug in the atomic rename thing10:08
awilkinsWell, "bug"10:08
awilkinsAs in a "Windows is crap bug"10:08
awilkinsCan you reindex a repository?10:09
awilkinsI'm getting bzr: ERROR (ignored): GraphIndex('bzr+http://w .....10:10
awilkinsBut that's not where it stops10:10
bialixvila: hi10:15
vilabialix: Hi Alexander10:15
bialixbonjour monsieur10:15
bialixI need to test some unicode thing10:16
bialixplease, tell me how you enter accented characters in French?10:16
jmllike in café?10:17
jmlon my computer, I use the Compose key10:17
bialixHm? I don't see compose key10:18
vilau"Cet été au café".encode('UTF-8')10:18
vila'Cet \xc3\xa9t\xc3\xa9 au caf\xc3\xa9'10:18
jmlCompose+' Compose+e10:18
jmlbialix: it's kind of a virtual key, mine is bound to Right Alt10:18
vilajml: compose key on windows ? :-)10:18
bialixvila: I need to test command line behaviour10:18
jmlon Windows... who knows.10:18
bialixmaybe Vincent knows?10:18
jmlon OS X its Option-' e IIRC10:18
vilabialix: I *never* use accented letters from command line, but the trick on windows I remember it via Alt-nnn sequences10:19
bialixoh; I see10:19
vilanow, the sequence for accented letters... you may know better ? :-/10:20
* bialix going to test alt codes10:21
bialixIt seems like french keyboard layout very different from qwerty10:21
vilaoh, yes10:21
jmlI blame Napoleon :P10:21
vilaé is on '2' with a french layou10:22
bialixyes; it is10:23
bialixthis will be enough for me, thanks10:23
vilaok, np10:24
=== fta_ is now known as fta
jnz__Hi, there are some trouble if I use python 2.6 to run bazaar? I see that there are some warning using deprecated lib and an error trying to use `get' method in `str' (that doesn't exist now).10:42
james_wjnz__: what's the full message?10:44
jnz__AttributeError: 'str' object has no attribute 'get' https://answers.launchpad.net/bzr/+question/6980910:45
jnz__it's the same bug I've reproduced10:45
jnz__(but on linux)10:46
jnz__the fact is that I can't remove svn plugin10:47
james_wI thought that had been fixed, but I can't find the bug number now10:48
Peng_That question links to the bug.10:50
Peng_jnz__: The AttributeError has nothing to do with your Python version.10:50
Peng_jnz__: If you're running a recent version of bzr, all of the deprecation warnings and other Python 2.6 issues should have been fixed. If you're still seeing any, they're probably in third-party libraries. In any case, file bugs if they haven't been fixed.10:51
Spazi'm having a problem with loggerhead11:38
awilkins"Error received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'")11:38
Spazi get that on every request.11:38
awilkinsThat's from LP, on doing "bzr branch lp:bzr/1.14" ; oopsie11:38
=== arjenAU2 is now known as arjenAU
Peng_Spaz: What version of Loggerhead?11:47
Peng_Oh, trunk.11:48
Peng_Spaz: As a workaround, you can revert a few revisions; that code was only added recently.11:50
Spazah ok11:50
Peng_(in r335)11:50
Peng_I honestly don't get it. branch_url is a method; it's defined 5 lines above!11:51
Peng_My only guess is that some file, perhaps serve-branches, is from an old version that does something funny.11:51
Peng_Oh, you're using start-loggerhead? I never tested that.11:55
Peng_Hmm. I don't know the start-loggerhead code at all. :\11:55
Peng_branch_url never used to be called, so if it was set to the wrong thing, it wouldn't have been noticed until I started using it in r335.11:56
Spazreverting r335 fixes it11:56
SpazPeng_, ^11:58
Peng_Ah, I see where it goes wrong.12:00
SpazPeng_, you're a loggerhead dev? :p12:01
Peng_Spaz: Allegedly.12:02
Peng_Um, I'm not sure what the solution should be, though. Easiest would probably just be renaming hte "branch_url" method so it won't get clobbered.12:03
Spazoccam's razor :p12:03
Spazthe simplest solution is usually the correct one12:04
Peng_Not necessarily.12:04
Peng_(Well, hence it saying "usually" instead of "always"...)12:04
Spazit's not always, but most of the time it is12:04
Spazat least i like to think so12:04
Peng_The method didn't have a great name anyway.12:05
Peng_Y'know, if you used serve-branches, it wouldn't be broken. ;D12:14
SpazPeng_, start-loggerhead suits my needs better12:15
Spaz1) looks better, 2) extremely small amount of projects12:16
Peng_It looks better?12:16
SpazPeng_, see http://web-bzr.wilcox-tech.com :p12:16
Spazfor one project it looks a lot nicer12:16
Spazoops awos-bzr.wilcox-tech.com12:17
Peng_Oh, nifty.12:18
Peng_But if people use start-loggerhead, I have to figure out how to use it so I can actually test it. :P12:19
Peng_Spaz: I filed bug 375948.12:19
ubottuLaunchpad bug 375948 in loggerhead "loggerhead.apps.config clobbers BranchWSGIApp.branch_url method" [Undecided,New] https://launchpad.net/bugs/37594812:19
jelmerI thought start-loggerhead was going away?12:21
Peng_jelmer: That's the plan.12:21
Peng_jelmer: But start-loggerhead can still do some things serve-branches can't.12:21
=== vxnick_ is now known as vxnick
Peng_Spaz: I've pushed a workaround to lp:loggerhead12:36
Peng_Well, the good news is that from now on I'll test start-loggerhead. :P12:39
Peng_Well, after converting one branch to a stacked branch, I saved 2 MB of disk space, but I can no longer push. Perhaps not worth it?13:04
jelmerlifeless: ping13:06
Peng_What's a simple command I can use that will lock the branch? Without having to use some "python -c 'import bzrlib'" magic?13:07
Peng_(I don't want to leave the lock in place or anything, just see if one can be taken out.)13:08
Peng_Never mind.13:13
Peng_beuno: ping13:14
awilkinsPeng_: I think you just need to create a file in the right place13:15
awilkinslifeless: ping?13:23
awilkinsI found the problem ; it's creating the same pack twice13:23
awilkinsWhich win32 doesn't like because it's renaming a file from "upload" to "packs" but because they are named after their md5, the file is already there and on win32 you can't rename a file to an existing destination13:24
awilkinsDeleting the pack appears to have expunged the problem. Maybe it was linked to the jailbreak thing...13:29
awilkinsMaybe the jailbreak error puts the repo into this state.13:29
=== nevans1 is now known as nevans
beunoPeng_, hi14:36
Peng_Ah, hello.14:38
Peng_beuno: I was just curious, in Loggerhead, what is BranchWSGIApp.branch_link? All it says is that it's only used by LP.14:39
beunoPeng_, I don't remember what we use it for14:39
beunobut I can find the glue code and figure it out14:39
Peng_beuno: Well, it's not important, so you don't have to bother.14:41
beunoPeng_, I think it was something about showing the branch URL in LH14:42
=== Spaz is now known as zSpaz
=== zSpaz is now known as Spaz
=== serg_ is now known as serg
igcnight all15:01
Peng_igc: Good night.15:05
lifelessawilkins: bzr is meant to not do that; ah15:08
lifelessawilkins: bzr hada  stale pack it didn't knowabout anymore15:08
lifelessawilkins: thats why the rename was being attempted at all15:08
lifelessawilkins: please file a bug15:08
lifelessawilkins: we should handle this case15:08
Peng_beuno: Thanks for the review. :)15:27
beunoPeng_, thanks for all the work15:28
=== beuno_ is now known as beuno
luke-jr_blah, bzr-svn doesn't merge :<16:58
SamBluke-jr: say what?16:58
luke-jr_SamB: I can't merge svn commits and push my stuff to it17:01
luke-jr_it errors17:01
jelmerluke-jr_: what error do you get exactly?17:02
luke-jr_I need to make a new branch of the svn, merge my bzr repo into that, then push that17:02
luke-jr_bzr: ERROR: exceptions.AssertionError: Expected <CachingRevisionMetadata for revision 2422, path vxmlb/tags/no_spm_count_no_ext_grammars_no_playfile in repository 'f396537e-aa06-0410-a58a-90fff5392f0b'> got <CachingRevisionMetadata for revision 382, path tags/no_spm_count_no_ext_grammars_no_playfile in repository 'f396537e-aa06-0410-a58a-90fff5392f0b'>17:02
luke-jr_oops, forgot to edit paths17:02
luke-jr_don't store that in a bug report or such as-is please :)17:02
jelmerluke-jr_: there's an open bug about this, will be fixed before 0.6.0 (i.e. in a few days)17:03
SamBluke-jr: if there's some secret info in there, I can't imagine what it might be!17:21
SamBor are you just embarrassed?17:21
phinzeseeking bzr one liner... how to determine when file "path/to/file" was removed?17:30
Peng_"bzr log"...might work? in recent versions? if the file was deleted recently?17:31
Peng_It won't be fast, since the only way to do it is to check each revision 1 at a time.17:31
phinzebzr: ERROR: Path unknown at end or start of revision range:  .... on 1.14.117:32
SamBphinze: do you remember a revision where it was still alive ?17:32
Peng_Guess not, then.17:32
phinzeyeah i've got one rev when it was alive17:32
SamBmaybe that can help?17:32
phinzei'll try a bzr log $OLDREV.. --verbose --short | grep D | grep filename17:34
phinzesomething like that17:34
phinzeand wait :)17:35
Peng_Like I said, with the current design it can't be fast. For that reason, it's not encouraged by the UI..17:36
phinzelooks like it was in the last 20 revs17:36
phinzei'll narrow it down17:36
phinzemight look into bzr-undelete plugin in the future17:36
SamBdid I mention the bisect plugin yet?17:44
bmorrisDoes anybody know of a good tutorial for setting up the pqm?17:51
Ken69267how does one checkout a branch from googlecode with bzr-svn? I can't seem to specify the username it wants for authentication18:50
Peng_Ken69267: Yeah, that's kind of a bug. When Bazaar tries to detect what type of branch it is, it asks for .bzr/smart, and Google asks for auth.18:51
Peng_Ken69267: You can use svn+http:// to work around it, depending on your version of bzr-svn.18:52
Ken69267yeah I tried svn+https://, but my username is different than my shell. svn+https://username@ doesn't seem to work18:53
Peng_Fortunately, I don't care about Google Code much, so I haven't bothered to solve this. Or bug jelmer much.18:54
Peng_Not so fortunate for you, though. :\18:54
jelmerKen69267: if you don't specify a username bzr should ask you if you have a new enough bzr18:58
Lo-lan-doHi all19:19
jelmerhey Lo-lan-do19:20
Lo-lan-doI get different errors now... I'll pastebin them, shall I?19:21
jelmerLo-lan-do: can you mail them perhaps?19:21
* jelmer back in ~30 min19:23
Lo-lan-doMailed.  Take your time, I'm also struggling with an unrelated shared library problem :-)19:26
Ken69267jelmer: bzr 1.14.1 and bzr-svn 0.5.4 here, doesn't prompt for username :/19:36
jelmerKen69267: you need bzr.dev I think19:50
jelmerKen69267: does http://username@... work (no svn+) ?19:52
Ken69267jelmer: no, bzr bombs out with a pycurl error20:01
Ken69267(with https://user@)20:01
jelmerKen69267: ah20:04
Ken69267allwell, I rarely use googlecode anyway20:04
jelmerKen69267: so, this should be fixed in 1.1520:04
jelmerLo-lan-do: replied20:07
beunoPeng_, ready for the rich-root-ization of LH?20:12
beuno(I won't do it *now*, but in a few hours)20:12
Lo-lan-dojelmer: Got it, thanks.20:13
Peng_beuno: Ready as I'll ever be.20:13
Peng_Upgrade stacked-on branches first, right?20:13
beunoPeng_, yes, the ones you care about20:13
beunowhat I'm going to do20:13
beunois upload a new branch20:13
beunoleave the current one as-is20:13
beunoand just change the developemnt focus20:13
Peng_Oh, why?20:14
beuno*maybe* that won't break stacked-on branches20:14
Lo-lan-dojelmer: s/graphwalker/graph_walker/ in dulwich/repo.py:23120:15
beunoPeng_, this is me trying to figure out the best upgrade strategy  :)20:15
jelmerLo-lan-do: thanks, fixed20:15
Peng_I'm really apathetic at the moment, so I won't have any opinion unless someone makes a Rich-root-tan or something.20:16
* beuno hugs Peng_ 20:16
Peng_Anyway, switching out the branches makes sense, though it'll be inconvenient for subscribers.20:17
Lo-lan-dojelmer: I still get NameError: global name 'BzrDir' is not defined; did you push?20:17
beunoyeah, not sure what the best inconvenience is yet20:17
Peng_And the linked bugs and merge proposals.20:18
jelmerLo-lan-do: yeah20:18
jelmerLo-lan-do: where are you pulling from?20:18
beunoPeng_, so what do you think?  break all stacked-on branches or loose linkage?20:19
Peng_I wonder if you could rename the branch, push a new non-rr branch as lp:~loggerhead-team/loggerhead/trunk, then upgrade the original branch to rr.20:19
Peng_Did that make sense?20:19
Lo-lan-dojelmer: http://people.samba.org/bzr/jelmer/bzr-git/trunk or lp:bzr-git20:19
Peng_This sounds like a job for...staging.lp.net!20:19
beunoPeng_, that's interesting20:19
Lo-lan-do(And s/bzr-git/dulwich/ for dulwich)20:20
beunoPeng_, are you going to try that?20:20
beunoor want me to?20:20
jelmerLo-lan-do: hmm, odd, that location should work20:20
Peng_beuno: Yeah, I'll try it.20:21
jelmerLo-lan-do: oops, forgot to commit20:21
jelmerLo-lan-do: sorry, pushed properly now20:21
beunoPeng_, \o/20:21
Peng_How do staging URLs work? lp://staging/~user/project/branch?20:23
beunolifeless, igc, should the traceback for VFS usage be sput out to stdout instead of .bzr.log?20:24
Peng_OK, what was my plan again? :P Blinkblink. Anyway.20:24
Peng_I should be doing this on my faster machine with the better connection.20:24
beunoPeng_, your amazing plan is:  rename trunk, push a non-r-r as trunk, upgrade old-trunk, rename old-trunk to new trunk, see if everything's alright  :)20:25
ja1beuno: I that only happens when you use -Dhpss, IIRC20:25
Peng_Crap, it tried to stack on lp:loggerhead, which obviously screwed up.20:25
ja1And I think there is argument where it should go20:25
beunoja1, ah, makes sense20:25
Peng_Actually, it says "not a branch".20:25
beunoI have that set by default20:25
ja1I think someone mentioned that it should be muttered(), and then realized that it also helps force us to fix things :)20:25
beunorockstar, how do you push to staging? mwhudson around yet?20:25
Lo-lan-dojelmer: Yay, progress.  New errors at http://pastebin.com/d27aef86d :-)20:25
ja1otherwise, I would think it should be 'noted' so it goes to stderr + .bzr.log20:25
Peng_Screw it, I won't use staging.20:25
rockstarbeuno, bzr push lp://staging/...20:26
beunoHPSS calls: 46 (11 vfs) SmartSSHClientMedium(connected=False, username=u'beuno', host='bazaar.launchpad.net', port=None)20:27
Peng_How do you force a push to not stack? Downgrade to Branch6?20:27
beunoI was about to ask that same thing  ;)20:28
* beuno will try pushing to +junk and then renaming20:28
Peng_What will upgrading to rich-roots do to all of the stacked branches in lp:~*/loggerhead? This may be a problem.20:31
WyvernQuestion: How can I cancel an bzr add? That is before commit.20:32
Lo-lan-dobzr rm --keep20:32
WyvernThank you.20:33
Peng_Great, push was taking forever because I forgot that ssh-agent wasn't running! :P20:35
Peng_Using Branch6 did not prevent it from stacking.20:36
Peng_So I'm kind of stuck now.20:36
Peng_I suppose I could dig out bzr 1.5.20:37
jelmerLo-lan-do: pushed another fix20:39
Peng_It may be possible to work around the default stacking policy by using a Branc6 mirrored branch.20:40
Lo-lan-dojelmer: Yay, cloning a git branch through bzr-upplad-pack now works :-)20:41
jelmerwoot :-)20:41
Peng_beuno: These stacking issues are really killing my attention span. :P20:41
beunoPeng_, https://code.edge.launchpad.net/~loggerhead-team/loggerhead/rich-trunk20:42
beuno(pushed to +junk, then moved it)20:42
Peng_Ah, clever.20:43
beunoLaunchpad has trained me to be sneaky20:43
Peng_Heheh, push peaked at 731 KB/sec. >:D20:45
Peng_beuno: Wait, I didn't think this out. Could you do me a favor and subscribe to https://code.edge.launchpad.net/~mnordhoff/loggerhead/trunk ?20:46
* beuno waits twice20:47
Peng_Yeah, that branch.20:47
Peng_It would've been better to use staging so I could link it to a bug report, but oh well.20:48
beunoPeng_, done20:48
Peng_beuno: Thanks.20:48
bialixjam: hi20:51
bialixjam: hi20:51
jamhi bialix20:51
jamhaving some networking issues here, so I may come and go20:51
bialixI've prepared the patch for unicode cmd line @ win3220:52
Peng_Is it just me or does branch --stacked make a painful number of ssh connections?20:52
bialixjam: I suspect you're busy with other patches, I'm just hope you will be able to look at my patch20:52
bialixPeng_: 3 or 4?20:53
Peng_bialix: I killed it and fixed ssh-agent after 6.20:53
Peng_OK, *maybe* 5.20:54
bialixit does not sound right20:54
Peng_Reconciling over bzr+ssh is not so efficient. :P20:56
beunoPeng_, no, I did all of that locally  :)20:57
jambialix: I'll try to give it a shot.  I'll mention that with my network going wonky, I'm not getting all of my email20:57
Peng_What's the easiest way to upgrade a remote branch? Doing it remotely? If so, and you need to do reconcile too...20:57
jamif you want to CC my gmail account, it may be a bit more trustworthy20:58
Peng_Anyway, this is just for fun anyway, and I hope LP won't mind wasting 30 MB of bandwidth. :P20:58
jamPeng_: *reconciling* is not so efficient20:58
Peng_So far it's at 18 MB of bandwidth. :D20:58
jambialix: So is this the problem that qbzr is trying to pass unicode arguments to a bzr subprocess?20:58
jamand is going through "OEM" encoding20:59
bialixjam: I'm using gmane, what about http://bundlebuggy.aaronbentley.com/project/bzr/request/%3Cguf7hb%24k3h%241%40ger.gmane.org%3E20:59
beunoPeng_, it's called "research"20:59
jamwhich fails for certain unrepresentable bits?20:59
bialixjam: AFAICT, qbzr trying to pass unicode argumets to bzr. but any python program unable to retrieve unicode right, only as plain strings21:00
jambialix: but this only helps when using CreateProcessW21:00
jamand *doesn't* do anything for the actual command line21:01
jamAt least, I'm pretty sure "cmd.exe" has a specific encoding21:01
jamand isn't generic about Unicode support21:01
bialixjam: I've tested manually in cmd.exe shell21:01
bialixGetCommandLineW is able to get right unicode21:02
jambialix: sure, but it would other ways, too21:02
jamMy question is, can you type جوجو in your Russian cmd.exe shell?21:02
bialix"would other ways"?21:02
jambialix: if the strings are passed in as OEM, and then they are decoded from OEM21:02
jamthings should work21:02
bialixI don't understand Arabic21:02
jambialix: you don't have to21:03
jamit is just a few characters for you to try21:03
bialixbut I've learnt French, and I can type French in my shell21:03
jamwell, IDLE doesn't like me. Giving: Unsupported characters in input21:03
bialixactually I have netbook with non-Russian Windows XP21:04
Lo-lan-dojelmer: Minor patch: http://pastebin.com/f5f7eb37621:04
jambialix: so my point of using Arabic is that it is quite unlikely to be on a given code page21:04
bialixthere I can type non-russian characters without problem21:04
jamunlike French characters21:04
bialixFrench is from cp125121:04
bialixwhile Russian is cp125121:04
jambialix: well, on a 'non-Russian" windows, I would want to try Russion chars21:04
jambialix: cp1251 == cp125121:04
bialixcp1251 has no room for non-cyrillic21:04
bialixof course it works with Russian char21:05
jambialix: can you type a couple cyrillic chars for me to test with?21:05
jamor give me their code points21:06
Peng_So far, upgrade over bzr+ssh seems disgustingly inefficient.21:06
bialixI'm just tested on my Russian Windows XP21:06
bialixI can type French here too21:06
Peng_I could probably twiddle with hitchhiker or sftp to accomplish the same thing, but that takes more thinking.21:06
bialixjam: here is Test in Russian: Тест21:06
jambialix: any chance you could put that in hex codes for me?21:07
jamcygwin doesn't like it, and neither does IDLE21:07
jamand vim just gives me ????21:07
jambialix: pasting those chars into cmd.exe gives me ????21:08
bialixjam: are you using vim wit console or GUI interface?21:08
jambialix: vim w/ gui21:08
Peng_What will changing the developer focus do? Change what new branches automatically stack on? Will it change old branches too? Cuz that'd be a problem.21:08
jamIt could just be Pidgin not copying them correctly21:08
jamIf I do 'chcp 1251' in cmd.exe I at least get characters when I paste your cyryllic21:09
bialixjam: re cmd.exe: right-click on cmd.exe window button on task panel, select Properties -> Font -> Lucida Console21:09
jambut it comes out as: pi sigma +/- >=21:09
bialixLucida is unicode font21:10
Peng_FYI? Upgrade over bzr+ssh is horribly slow. Using hitchhiker is definitely a better idea.21:10
jambialix: ok, so it works if I 'chcp 1251' and then paste21:10
bialixit will show you right characters21:10
jamAnd it looks like Тест21:10
jambut with the default chcp (437) it fails21:10
bialixyeah, is it21:10
bialixtry Lucida21:10
jamah, it worked this time21:10
jelmerLo-lan-do: thanks21:10
bialixdefault is OEM font it's not unicode21:11
jambialix: however, it gives me just [] for Arabic21:11
* bialix adding Arabic keyboard21:11
Peng_beuno: This upgrade will probably take half an hour. Unless I get bored, kill it and do it more efficiently, you'll have to wait that long to see how it pans out. Although I've probably done enough now.21:11
beunoPeng_, I have about half a million things to do today21:12
beunoso I'll probably be around here forever21:12
bialixjam: I have not Arabic keyboard settings on my Russian XP21:13
Peng_beuno: Although I'm not finished, I'm pretty sure my evil plan will work. So I'd vote for doing it on lp:loggerhead.21:13
mwhudsonPeng_: loggerhead.apps.config is a terrible terrible thing21:13
Peng_mwhudson: :D21:13
jambialix: you have Cut & Paste don't you?21:13
beunoPeng_, I think it will. If it does, I will create a document so everyone else follows this path21:14
beunoI'm willing to break everything in the name of research21:14
bialixjam: yes, I can, but it seems my Russian XP lacks of Arabic fonts. I see 4 squares instead of real chars21:15
bialixbut Wordpad paste them OK21:15
mwhudsonPeng_: also i don't care about it at all from a launchapd pov, so pleae feel free to do whatever you like to it :)21:16
bialixjam: will try with cmdline.py script21:16
Peng_mwhudson: OK, thanks. :)21:16
jambialix: well, I *have* Arabic fonts installed, and I only see 4 squares in cmd.exe :)21:17
bialixjam: cmdline.py is able to see it!21:18
bialixC:\Temp>python cmdline.py جوجو21:18
bialix['cmdline.py', '????']21:18
bialix[u'cmdline.py', u'\u062c\u0648\u062c\u0648']21:18
jambialix: your public branch is a bit wonky21:18
bialixdo you see it?21:18
jamI don't know where 'cmdline.py' is21:18
jambut your paste here looks appropriate21:18
Peng_OK, I think I've got it all worked out, though I've never fully put it together.21:19
bialixjam: my public branch is wonky 'coz I don;t have public branch21:19
jamhmm... using python25 I get:21:20
jamNameError: global name 'WINFUNCTYPE' is not defined21:20
Peng_beuno: You want the rich version of trunk to be called "trunk-rich"?21:20
jamah, I know why21:20
jamjust a sec21:20
beunoPeng_, I... don't care as much  :)21:20
jamk, I get:21:20
bialixC:\Temp>python -V21:20
bialixPython 2.5.421:20
jamC:\Users\jameinel\dev\bzr\patches>C:\Python25\python cmdline.py جوجو21:21
jam['cmdline.py', '????']21:21
jam[u'cmdline.py', u'\u062c\u0648\u062c\u0648']21:21
jam(I was accidentally just using 'python' which would be cygwin python)21:21
jamAnyway, I get [] in the console21:21
jambut it does seem to support those characters21:21
bialixthe same here21:21
jameven if Lucida Console can't draw them21:21
jaminterestingly enough, I've already set my cygwin shell to use Lucida Console21:21
jamThough in that shell21:22
jamI can't write Arabic characters21:22
bialixIIRC in Vista there is another shell font used21:22
jam(chcp is also not found)21:22
jambialix: there are only 2 choices21:22
jamLucida, and RAster21:22
jamjust interesting that cygwin.bat mutates its shell enough21:23
Peng_beuno: Wait, you used "rich-trunk". Anyway, *I* like "trunk-rich". :P21:23
bialixIMO raster is non-unicode21:23
beunoPeng_, you've earned the right to name it whatever floats your boat21:23
bialixjam: yes, cygwin does wonly things21:23
Peng_beuno: Hehe, okay.21:25
bialixjam: just curious: how you type Arabic on Windows?21:26
bialixalt codes?21:26
Peng_beuno or anyone interested: Here's the sequence of commands that should do it: http://paste.pocoo.org/show/117139/21:29
Peng_It's not even that crazy.21:29
beunoPeng_, so it's done?21:29
beunothanks for that, btw21:30
Peng_beuno: I haven't actually done it yet. I could, though!21:30
Peng_beuno: Do you want me to?21:30
beunoPeng_, yes!21:30
beunogo for it21:30
beunolet me know if I need to change the dev focus21:30
beunoor if you can21:30
jambialix: no, I have an alternate keyboard layout21:30
jamand switch between them21:30
jamAlt+Shift+0 == arabic21:30
jamAlt+Shift+1 == qwerty21:31
jamAlt+Shift+2 == dvorak21:31
Peng_beuno: I've never done it before, but I probably can. Thanks, I'll ask you if I need to.21:31
bialixok, I understand21:31
jamargh.... it seems when I contacted support to get my internet access working, they disabled my email account because I claimed not to use it21:31
jamwhich I don't21:31
jambut I use their server to forward my home email21:31
Peng_Whoops, I left that bzr upgrade over bzr+ssh running. It's at 56 MB of bandwidth and like 2/3 of the way through! :D21:32
bialixjam: do you want more unicode testing from me?21:36
jambialix: I don't know any more I need right now21:38
jamI'll play with it a bit and let you know21:38
bialixthank you21:38
* bialix going offline21:39
rockstarabentley, I don't see a way to get a branch's repository format.21:41
Peng_Um, hmm. I may have just made lp:loggerhead stack on itself. Or something equally untoward. Oops.21:42
abentleyrockstar: branch.repository._format ?21:43
=== ja1 is now known as jam
Peng_beuno & mwhudson: lp:loggerhead has been upgraded to rich-roots. Here's the final list of commands, if I copied them down correctly: http://paste.pocoo.org/show/117145/21:54
Peng_...I guess I should upgrade my local branches.21:54
Peng_Wait, you upgrade stacked-on before stacked branches, right?21:55
beunothe other way around  :)21:55
Peng_Oh, oops. OK, easy to fix.21:56
Peng_Yep, uh, that went disastrously.21:57
beunobranches still seem to work21:57
Peng_They're explicitly stacked on lp:~loggerhead-team/loggerhead/trunk, and hopefully that won't get changed.21:58
beunowell, the UI is wronk then21:59
beunobut yes21:59
beunoPeng_, you've solved a very complicated problem for Launchpad21:59
beunoI will make sure you get a tshirt21:59
beunoplease email me your address  :)21:59
james_whey thumper22:00
mwhudsonyeah, unfortunately stacked on is done by url on launchpad, not branch identity22:00
Peng_mwhudson: That's a good thing for us here.22:00
james_wlaunchpad has foxed me22:01
thumperhey james_w22:01
* thumper looks22:01
james_wI'm pretty sure these are supposed to be stacked22:01
beunomwhudson, that's a good think  ;)22:01
james_wbut apparently they aren't22:01
Peng_beuno: A t-shirt? For reals?22:01
james_wthey're not development-rich-root22:01
beunoPeng_, absolutely!22:01
mwhudsonso the thing to do now is upgrade all the stacked-on branches, then do the trunk switcheroo ?22:02
thumperjames_w: lemmie check it out22:02
james_wthumper: if you can confirm that they're not stacked then I'll check my code22:02
Peng_Hmm, I'm not sure what users should do now. I guess they should upgrade to rich-roots then pull --remember lp:loggerhead again. That's a bit of a pain.22:03
* beuno sents Peng_'s instrucitons to the list22:03
thumperjames_w: I was just looking at the stacking code earlier22:03
Peng_And, since I went to effort to avoid violently breaking their branches, they'll never know they need to do it...22:03
thumperjames_w: I think there needs to be a branch associated with the development version of the source package22:04
thumperjames_w: and then that is used to stack22:04
thumperjames_w: yes not stacked22:04
james_wyeah, I've tried to ensure I push and link the development focus branch first22:04
Peng_mwhudson: I guess so. You don't *need* to do a switcheroo, though; I'm not sure what would be best.22:04
james_wok, thanks22:04
thumperjames_w: the UI would say if it was22:04
thumperjames_w: if it isn't stacking it is a bug22:05
james_wI fear that I have just done a naïve push, when I should do a push that optionally stacks22:05
thumperjames_w: is your script using bzrlib? or shell to push?22:05
thumperjames_w: it is possible then that you aren't pushing with the stacking policy22:06
thumperjames_w: as the remote site (launchpad) suggests a stacking branch22:06
thumperjames_w: but it is up to the client to use it22:06
thumperwhich it normally does22:06
mwhudsonPeng_: well, you need to change the stacked on branch 'as' you upgrade22:06
Peng_mwhudson: Ooh, that sounds frightening.22:07
mwhudsonhttps://code.edge.launchpad.net/~mwhudson/loggerhead/which-mainline-merged is now stacked on the right thing22:08
mwhudsonbut i had to fix it with sftp22:09
Peng_I'm nuking and repushing my one stacked branch, but it was already broken anyways.22:09
Peng_That's unideal.22:09
Peng_mwhudson: The easiest solution is leaving old branches  with plain roots.22:09
Peng_Crap, the branch is still broken. Never mind about stacking it, then.22:10
mwhudsonbut it would be good to have a non sucky way of upgrading your launchpad branch if you wanted to22:10
Peng_Yeah, I didn't think of that. :\22:10
mwhudsoni guess there's a plugin in our collective future!22:10
james_wit's pretty annoying that you have to reimplement the logic of push if you want to push a branch22:11
james_wand means that your code can get out of date22:11
mwhudsoni guess you can do get_command('push').run(...)22:12
mwhudson(or however that's spelt)22:13
beunook, I'mm all set up to be rich and root22:16
Peng_And this encouraged me to fix my broken stacky branch. :)22:18
lifelessbeuno: yes22:19
lifelessbeuno: -Dhpss triggers it22:19
lifelessbeuno: end users will only be using -Dhpss on request22:19
jelmerlifeless: moin22:20
jelmerlifeless: I would be careful with the dulwich git repo, it's generated by dulwich not by git itself22:20
beunolifeless, WFM. I like that you're putting the pressure on. How can I help?  filing bugs when I see VFS calls?22:20
Peng_Of course, due to bug whatever-it-is, the web page for lp:loggerhead won't show the new format until someone pushes to it...22:20
jelmerlifeless: the client that pushed it was bzr-git with dulwich I mean, not sure how much post-processing the server does22:21
lifelessbeuno: you'll usually see them on lp when lp isn't running $today22:21
jelmerlifeless: actually, scrap that22:21
jelmerlifeless: as the server would generate a new pack when you clone it22:21
lifelessbeuno: e.g. bug filing isn't very useful, you need to be running alpha server <-> nightly22:21
jelmerlifeless: please ignore the last 7 lines from me ^22:21
lifelessjelmer: :)22:22
lifelessjelmer: you send a pack, the server keeps it and can do as it wishes :)22:22
beunolifeless, gotcha. I may be able to do that with my office server, but I don't use it much these days. Maybe I can do a few tests and file them based on that (server runs nightlies)22:22
lifelessjelmer: did you think about another project I can test with22:22
lifelessbeuno: sure, its mainly for spiv and I to make 'X is slow' from a user easier to diagnose22:23
lifelessbeuno: e.g. jelmers 'pushing cross-format is slow' [which is caused by IDS]22:23
lifelessbeuno: I don't object to you filing bugs, but be prepared for most to be either dups, or wishlist (because we're not aiming at e.g. 'bzr log lp$FOO' to be VFS free in this cycle22:24
jelmerlifeless: you could try with etckeeper and the bzr etckeeper clone on staging that michael made22:24
lifelessmwhudson: where is this thing22:24
jelmerlp:~vcs-imports/etckeeper/trunk IIRC22:25
jelmerand git://git.kitenet.net/etckeeper22:25
beunolifeless, my feelings won't get hurt, just trying to see how I can help. Maybe ping you/spiv before filing?22:25
mwhudsonit's gone now i guess22:25
lifelessbeuno: sure22:25
lifelessbeuno: data is good22:25
jelmerlifeless: just install bzr-git and clone that git URL (-:22:25
Peng_Uh-oh, LP broke my mirrored branches, since they're still stacked on the non-rich-root loggerhead branch.22:26
jelmerlifeless: or http://people.samba.org/bzr/jelmer//etckeeper/trunk22:26
* beuno hides22:26
lifelessjelmer: is that cronn'd?22:26
mwhudsonPeng_: oh god22:27
jelmerlifeless: no, it's only kept up to date as I need it22:27
Peng_This may have been a bad plan. :D22:27
Peng_Well, the only problem is you have to change the stacked-on location. Which is definitely a problem on LP...22:28
jelmerlifeless: also, I think I found a bug in CHKMap..22:29
mwhudsonPeng_: well, it probably makes sense to make the dev focus the new branch22:29
mwhudsonbut argh argh argh, no way to win22:29
Peng_mwhudson: The dev focus is the new branch.22:31
mwhudsonPeng_: i think the next time your mirrored branches are updated, they will be stacked on the new branch tehn22:32
Peng_mwhudson: They aren't.22:32
lifelessjelmer: kinda needs the same DAG to be a vaguely fair test22:33
jelmerlifeless: bzr-git keeps the dag22:34
mwhudsonPeng_: "Last mirrored:  5 hours ago"22:34
lifelessjelmer: yes, but your copy isn't kept up to date, or so you just said22:34
jelmerlifeless: I'm not sure I follow what that has to do with the DAG22:35
jelmerlifeless: or are you looking at setting up some system to do continuous performance comparisons?22:35
lifelessjelmer: no, I'm just doing adhoc ones now22:35
Peng_mwhudson: Some of them have been mirrored.22:36
lifelessjelmer: but if http://people.samba.org/bzr/jelmer//etckeeper/trunk is days or weeks old22:36
mwhudsonPeng_: got an example?22:36
lifelessthen its rather unfair to git22:36
* mwhudson digs out the code22:36
jelmerlifeless: I just pushed to it, so it should be current atm22:36
lifelessjelmer: also is your copy in dev6, and has a smart server?22:36
Peng_mwhudson: https://code.edge.launchpad.net/~mnordhoff/loggerhead/333797-debug-print22:36
jelmerlifeless: no, neither22:37
lifelessjelmer: :( I know the results already then ;)22:37
lifelessjelmer: however, I'll push a dev6 version to lp to test with22:37
lifelessso whats this bug22:37
jelmerlifeless: patch is on the way22:38
mwhudsonPeng_: i think i'm going to take up crying as a hobby22:38
* lifeless consoles mwhudson 22:38
Peng_mwhudson: Be sure to drink lots of fluids!22:41
Peng_Sorry about this.22:41
beunoPeng_, I've said it before, but you're a fantastic test suite22:42
mwhudsonPeng_: not you fault, we were going to hit this sooner or later22:42
lifelessoh, did beuno upgrade to rich root?22:42
beunolifeless, Peng_ did!22:43
lifelessPeng_: :)22:43
james_wPeng_, beuno: you rock22:43
jelmerlifeless: Another good test project might be samba if you're interested in trying something larger22:43
jelmerlifeless: I don't think there's a lot of projects that keep mirrors in bzr *and* git as part of their daily workflow though22:43
lifelessjelmer: bzr mirror with same dag of same ?22:43
jelmerlifeless: Yeah, just give me a few minutes to update the bzr mirror and push it22:43
james_wbeuno: though your instructions require renaming a project branch to a junk branch in the UI?22:44
lifelessjelmer: also re: being careful of dulwich, seems to me that something hosted on e.g. gitorious is kindof required to keep the repo in good order for the users22:44
Peng_james_w: It's to get around LP's default stacking policy.22:44
lifelessany benchmark that starts 'now run repack --max-window --max-delta' ...22:44
lifelessis broken22:44
james_wit's just the option to do that might be removed from the UI22:44
beunojames_w, yeah, and jml may remove that, but may also provide an API22:44
jelmerlifeless: Yeah, as I mentioned I don't think my comment earlier was valid22:44
james_wbeuno: oh good, you're aware of it22:45
jelmerlifeless: If you were comparing local bzr and a local git repo created using dulwich it would be a different story22:45
Peng_james_w: ...That'd be unfortunate, I guess.22:45
beunojml, ^^^^22:45
lifelessjelmer: dulwich doesn't generate optimal packs you mean?22:46
jelmerbeuno: so what do I do now with my local loggerhead branches?22:46
beunojelmer, either upgrade it to 1.9-r-r, or re-branch22:46
beunoyou have a nice --recurse plugin for upgrade22:46
beunowhich I used  :)22:46
Peng_jelmer: Plus, "bzr pull --remember lp:loggerhead" again; it's moved.22:46
jelmerlifeless: It should but might not perform as well for some reason.22:47
jelmerlifeless: I haven't verified that it generates packs as optimal as regular git. I know it generates valid packs though.22:48
jelmerbeuno: thanks22:50
jmlbeuno: renaming a project branch to a junk branch?22:52
beunojml, yes, and visa-versa22:53
jmlbeuno: yeah, so we'll add an API for that -- what's the use case?22:54
beunojml, read the bzr mailing list22:54
beunothe "upgrade story"   :)22:54
jmlit's already sounding uncompelling :)22:55
beunojml, .22:56
beunojml, At the same time, and only because I know lp won't have been getting22:56
beunopeople to stack as there was only a 'mirrored' copy, it is migrating22:56
beunodirectly to --development-rich-roots.22:56
beunothat's what I get for selecting textg when reading22:56
=== ja1 is now known as jam
beunoand linux clipboard stupidness22:57
jambeuno: I replied to you message, btw22:57
jamThere is a bit of LP renaming trickery that you don't really need22:57
beunojam, I saw22:57
beunojam, part of the renaming22:57
beunois to keep merge proposals and bugs linkage22:58
jamI suppose you might have to do something to avoid the recursive stacking problem22:58
* beuno hasn't replied because he wants to vreify first22:58
jambeuno: oh, so you want bugs linked to .../trunk to now be linked to .../trunk-rich ?22:58
beunojam, yeap22:59
beunomerge proposals, more importantly22:59
beunosubscriptions, etc as well22:59
Peng_jam: Pushing to +junk avoids the default stacking policy; that's the workaround I used.23:00
* Peng_ fires up an email client23:00
lifelessPeng_: except renaming is about to be disabled ;)23:01
lifelessjml: ^ :P23:01
jmllifeless: yes.23:01
jmlit'd be nice if bzr had an option to ignore the default stacking policy23:02
lifelessthumper: btw, lp:pqm was already 1.6 branch and repo; stackable.23:02
lifelessthumper: its because trunk wasn't hosted.23:02
thumperlifeless: that shouldn't matter23:03
lifelessthumper: ok23:03
lifelessthumper: mirrored branches don't have a private copy though23:03
thumperlifeless: I know23:03
lifelessthumper: so bzr+ssh can't stack locally23:03
thumperlifeless: trust me on this, it is tested23:03
thumperlifeless: we have custom transports23:04
lifelessquestion; how can I change https://code.edge.launchpad.net/%7Elifeless/pqm/trunk/+edit to be hosted23:06
thumperyou can't23:06
lifelessI deleted the (optional) Branch URL23:06
jamlifeless: delete it and push ?23:06
lifelessjam: that deletes all the active merge proposals23:06
lifelessand bug links23:07
jamlifeless: shiny23:07
lifelessthe former is valuable, the latter would be nice but is less valuable23:07
lifelessjam: in fact, I'm not even sure one can delete it with active merge proposals23:07
jamSo it sounds like it falls back to "you can't"23:07
lifelessthumper: please advise23:07
jamSince I don't think there is any way to promote a mirrored branch to a hosted branch without deleting it23:08
* lifeless tries just pushing anyway23:08
jamlifeless: you could rename it out of the way23:08
jamthen everything ends up linked to the wrong thing23:08
jambut at least they are still there23:08
lifelessah, readonly transport23:08
james_wStacked on:   lp:ubuntu/karmic/asio23:08
james_wjml: I'm sorry I ever doubted you :-)23:09
* thumper on a call23:09
james_wjml: https://code.edge.launchpad.net/~ubuntu-branches/ <- I'm going to kick of a big run tonight if that looks good to you23:10
Peng_jam: BTW, I tried having a team +junk branch; it was rejected.23:10
jamjml: ^^ what happened with that?23:11
jamOnly on the staging server?23:11
Peng_That's entirely possible.23:11
james_wteam's aren't allowed junk branches are they?23:11
jmlthey have been recently23:12
jamPeng_, jml: http://code.mumak.net/2009/03/team-junk-branches.html23:12
jmlbut our branch creation policy code is in a few too many places.23:12
Peng_Well, I ran into that wall on the branch description page where I renamed it.23:12
jambtw jml, I want my bubble domes23:12
Peng_Bubble domes?23:13
jmlPeng_: yeah, that makes a *lot* of sense.23:13
jmlPeng_: the edit form had completely different set of logic.23:13
jamPeng_: read ^^, but it refers to a Simpson's episode, and talks about "not all designs are good ones"23:13
jamSuch as "Separate Bubble Domes" on a vehicle23:13
lifelessoh yes23:14
lifelessit was hilarious episode23:14
Peng_I see.23:15
Peng_Not that there's anything wrong with it, but I've only seen a couple episodes of The Simpsons.23:15
Peng_jml: The Wikipedia image link in that post is broken.23:17
mwhudsonPeng_: when did you upgrade your bzr.mattnordhoff.com branches?23:41
pooliehello all23:41
pooliejam, still around?23:41
Peng_mwhudson: Um. 20:55 -- ~1h45m ago.23:42
Peng_mwhudson: (Which is a few minutes after I upgraded lp:loggerhead.)23:43
mwhudsonPeng_: ok23:44
mwhudsonPeng_: this is really odd23:45
mwhudsonPeng_: some of your branches are ok23:45
mwhudsone.g. https://code.edge.launchpad.net/~mnordhoff/loggerhead/new-style-classes23:45
Peng_mwhudson: Huh. You're right, that is bizarre.23:47
Peng_It looks like that branch was last mirrored right after I made the change.23:48
* Peng_ shrugs.23:48
Peng_Maybe things'll work out in a few hours?23:48
Peng_mwhudson: Maybe some of my branches got caught in between the upgrade and lp:loggerhead getting renamed or something.23:49
mwhudsonPeng_: yeah, that's my theory (hope!)23:49
Peng_Heh, right.23:49
mwhudsonjelmer: please stop registering huge mirrored branches on launchpad for the moment23:50
gutworthhow can I change my working copy back to an old version?23:50
mwhudsonjelmer: it won't work and causes us problems23:50
mwhudsonjelmer: (i'll fix it soonish)23:50
mwhudsongutworth: bzr revert -r -323:51
gutworthI was messing around with checkout and switch23:52
mwhudsoncheckout and switch are to do with the relationship of working tree and branch23:52
mwhudsonrevert is a pure wt think23:52
Peng_mwhudson: One branch was remirrored just now, and it went correctly.23:53
mwhudsonPeng_: ah, that was the one i hit try again on23:53
mwhudsonPeng_: phew!23:53
Peng_Oh, heh.23:53
mwhudsoni was really confused there23:53
Peng_I guess you can give up the crying, then? :D23:54
Peng_Mind if I hit retry on the rest of the branches?23:55
mwhudsonPeng_: go ahead23:55
Peng_Oh, good, there were only 3 left.23:56
gutworthis there a command line way to disable lazy import?23:56
jelmermwhudson: ok23:57
Peng_gutworth: I don't know of one.23:57
mwhudsonjelmer: thanks23:57
mwhudsongutworth: no23:57
jelmermwhudson: feel free to remove whatever mirrored branches are there now from me if you have some automated way of doing so23:57
Peng_beuno: So, is the t-shirt thing still on? :D23:58
beunoPeng_, of course!23:58
beunosend me your address!23:58
jelmermwhudson: (I have a plugin that automatically registers stuff if I push it to samba.org, have disabled that now)23:58
mwhudsonjelmer: nah, they'll get disabled after a few tries23:58
mwhudsonjelmer: thanks23:59
mwhudsonjelmer: i'll let you know when it's safe again :)23:59
Peng_beuno: Are they shipped from somewhere in the U.S.?23:59
beunoPeng_, or the UK, not sure23:59

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