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

blizzkidno I'll just have to find out how to push it to lp00:00
blizzkids/no/now00:01
poolieblizzkid: see http://help.launchpad.net/00:05
poolielifeless:  thanks for fixing the selftest tests, they annoy me every time i see them00:11
pooliefor some reason tests that just check a parameter is passed through a layer annoy me though00:12
blizzkidhmmz.... why do my branches have /+junk in it?00:12
pooliei guess partly they often require a big hammer (monkeypatching) to write but they don't test very strongly00:12
poolieblizzkid: if they're not associated with a project they're called junk00:12
pooliemaybe you want to register a project?00:12
blizzkidpoolie: not exactly... let me explain: I made a change to a gwibber branch00:13
blizzkidbut I can't upload to that branch00:13
poolieis it your branch?00:16
blizzkidno00:17
poolieso you want to fix a bug or something and give that back to them?00:17
blizzkidright00:18
pooliei see you're already in the gwibber team?00:18
pooliewhat's the branch about? what name do you want to push it to?00:18
=== kfogel is now known as johnlodder
blizzkidpoolie: in short I'd like ~blizzkid/gwibber/cwibber instead of ~blizzkid/+junk/gwibber/cwibber00:20
poolieok and what happens if you try to push to the first of them?00:20
poolieigc, what are we going to do about bug 415508?00:21
ubottuLaunchpad bug 415508 in bzr "Content filtering breaks commit w/ merge parents" [Critical,Triaged] https://launchpad.net/bugs/41550800:21
blizzkidpoolie: testing atm00:22
igcpoolie: I think we're going to deprecate the code path using path_content_summary()00:22
igcpoolie: iiuic, it's not broken in 2a, "just" 1.1400:22
lifelesspoolie: so, testing that a layer does whats meant to is never pointless IMO00:23
igcpoolie: so maybe it's high and not critical?00:23
lifelesspath_content_summary is broken in 2a as welel00:23
lifeless*well*00:23
lifelessif you e.g. do 'bzr commit --excludes' (or at the moment 'bzr commit foo')00:23
blizzkidpoolie: it worked00:24
poolieyay00:24
poolielifeless: if you do that then what?00:25
poolie(impatient)00:28
poolieblizzkid: all good now?00:28
blizzkidpoolie: yeah, now let's hope they accept the merge proposal :)00:30
lifelesspoolie: then the corruption occurs because the non iter_changes commit code path is executed00:30
poolieok so if we set up content filtering, in 2a, then used commit --excludes there would be corruption00:31
poolieof what type?00:31
pooliebtw our bug-handling doc says we don't use status Triaged, only Confirmed00:31
lifelesspoolie: of the sort in that bug00:32
lifelesspoolie: john's done all the digging00:32
lifelesspoolie: (why are you impatient, its a fine monday morning)00:32
poolieit's a lovely day00:32
pooliei just want to get a 2.0 out00:32
poolieit's constructive impatience :)00:32
poolieso i'm just asking because it looks like it's not actually corruption, just that we redundantly store a new text00:33
pooliewhich would be bad, admittedly00:33
poolieif we store all the texts on every commit it would be awful00:33
lifelessit also means that log <FILE> does very much the wrong thing00:34
lifelessand the merge graph, when merges are involved, goes haywire without converging00:34
poolieok00:34
lifelessif we can get a small fix I'm incliined to say say we should backport it to the karmic version and get it out there.00:35
lifelessits _bad_00:35
lifelessits not eat your history and spit it out00:38
lifelessbut if you recall the bug we discovered it via, its a tremendous performance hit00:38
pooliei do00:38
pooliejust trying to understand it00:39
pooliei might start on this today00:39
poolieand would you agree with ian's thing to "deprecate the code path using path_content_summary()"00:40
lifelessthat requires adding exclude support to iter_changes (via internals or decoration) and checking it creates consistent deltas.00:41
pooliewhich sounds a bit large00:41
lifelessI think changing the record_entry code path to stop using path_content_summary, and delete the path_content_summary method is fine.00:41
pooliei thought that's what ian was suggesting00:42
lifelessalternatively, have path_content_summary work when there are filters00:42
pooliedid you just set that bug to triaged, or is this launchpad being weird?00:42
lifelesspoolie: well, the code path that /uses it/ can't be deprecated without the exclude changes I mention above. But you can /change the code path to not use path_content_summary'.00:43
poolieright, and deprecate path_content_summary00:43
poolieat least weakly00:43
poolieok, i'll pull on that string00:43
lifelessI'm against deprecating the method. If its irredeemably broken, delete it.00:43
pooliei love the ajax bug stuff but it does seem to trip over itself a lot :/00:43
lifelessif its not so broken, fix it.00:43
igc+1 from me wrt deleting the method instead of deprecating it00:44
lifelessdeprecation is good for non-ideal things, or things we've improved. its a poor way to indicate 'bad things are happening'00:44
pooliemm00:45
poolieas i see it, it's a way to give plugin or similar authors a clue that 'no you're not going crazy, we changed this' and to possibly give users something that still works until the plugin is updated00:45
poolieit's good at the first, only mediocre at the second because those users don't actually want to see the technical mesasges00:46
lifelesssure; but this doesn't meet the contract it claims too00:46
lifelesss/to/00:46
poolieso wrt the first one, we could say it's better to raise an error if you still try to call it00:46
lifelesssure. Or put it in NEWS.00:47
poolieyeah, there is that00:47
poolieigc, iirc you were going to check if any plugins care about it00:47
lifelesspoolie: I wasn't touching that bug00:47
poolieok00:48
lifelesspoolie: re confirmed/triaged; LP changed its meaning around when it added triaged. I think we should ignore confirmed and just use triaged everywhere that we've set an importance.00:48
pooliesomething strange happened between the various status controls i think00:49
lifelessbecause thats what lp's  workflow and reports want.00:49
poolielike what?00:49
lifelesslike 'what bugs has a core dev not seen'00:49
pooliewhat i mean is, where does lp make a distinction between them?00:49
lifelessI don't recall offhand00:50
lifelessI've encountered glitchy things00:50
pooliemm, they may have00:52
pooliethis thing i just saw might have been such a glitch00:52
igcpoolie: quick grep over my plugins.popular directory (used to build the plugins guide) shows ...00:52
igcpoolie: svn/commit.py, git/commit.py, cvsps_import/importer.py00:53
lifelesspoolie: anyhow, unless you have a reason /not/ to use triaged, we should be using it.00:53
pooliei think 'triaged' is kind of a stupid name that means the same as 'has an importance'00:53
pooliebut that's not a very strong reason :)00:53
lifelesspoolie: I agree. Thats a different discussion though.00:53
pooliei just don't want more labels than there are logical states00:53
lifeless[as in, its a discussion with #lauchpad-dev]00:53
poolieyeah00:53
igcmake that cvsps_import/cvsps/importer.py00:53
pooliei don't think we distinguish between two confirmed-type states, but the bugs are spread across them00:53
poolieigc, well there are 77 uses just in the tree so that's enough to get on with00:54
poolieso what would be a good overall test for this?00:54
igcTriaged just means "I'll look at this and assigned an importance" to me00:54
poolieat the blackbox level i could set up a tree with filtering, commit, and then see if the per-file graph changed00:54
lifelessigc: *looked* ?00:54
poolieor not quite blackbox00:54
lifelesspoolie: what particular thing do you want to test00:55
igclifeless: yes, sorry - Monday morning typo00:55
pooliethat this bug is fixed :-)00:55
pooliei'm trying to work out what that means00:55
lifelesspoolie: I wouldn't write such a test; the bug is a lack of test coverage in filtering trees.00:55
lifelessfiltering trees in per_workingtree should be testing all the stock tests with filters, that would have caught this.00:56
pooliecaught it how?00:57
lifelessthe path_content_summary bug would have been exposed00:58
poolieby exercising content_summary returns the summary of the canonical form?00:58
poolies/exercising/checking00:58
lifelessso we know its not a repository bug, exercising repository code to show the bug is fixed is waste00:59
pooliehm00:59
poolieyes, though if we added canonical_content_summary and convenient_content_summary00:59
pooliewe ought to have something that tests that commit uses the right one00:59
pooliewell01:00
poolieadding the test_content_filters test would be an easy place to start01:01
spivGood morning.01:01
lifelesspoolie: we have lots of tests of commit builder01:02
pooliehi spiv01:02
lifelesspoolie: but roughly yes.01:02
poolieok so i might start by changing *content_something to an interface with a more explicit name01:03
lifelessFWIW, I think john had a patch.01:03
lifelessIf I were working on this, I'd look at how to make sure that that stops using path_content_summary; then work towards that.01:04
lifelesspoolie: re triaged/confirmed, can we at least not twiddle them - its just noise. I have no objection to a change when something else is being altered on the bug, but arbitrarily altering that field doesn't seem beneficial.01:10
poolieyes, i agree on both01:13
pooliei thought you were twiddling them, that's why i asked01:13
pooliebut apparently it was lp01:13
poolieor something01:13
lifelessno, I'll set to triaged if its < than that when I am altering the bug; but I won't just change that field alone ;001:14
poolieless than that?01:14
lifelesstriaged. If its new or incomplete or confirmed, and I'm changing other status fields01:15
poolielook, the doc says "don't use triaged"01:15
poolieso please don't01:15
poolieif you want to change the policy, because lp has changed or for other reasons, please do that first01:16
pooliehaving them set randomly depending on who last touched it is not helpful01:16
spivigc, lifeless: if either of you feel like doing a review, there's https://code.edge.launchpad.net/~spiv/bzr/ids-only-necessary-texts/+merge/10444 :)01:25
GungaDinhttp://pastebin.ca/154105501:39
GungaDinI just got this error from Bazaar.01:40
GungaDinCould this be due to not having enough memory?01:40
spivGungaDin: yes.  (Or alternatively, due to Bazaar not being clever enough when dealing with large files)01:41
pooliemaybe we should give a special message for memoryerror?01:41
GungaDinhmmmm...01:41
GungaDinok01:41
GungaDinThe problem shouldn't be large files... it's just a big repo01:42
GungaDinnone of the files inside is that big.01:42
spivpoolie: not a bad idea.  At least for some of the known trouble spots like that ''.join...01:42
spivGungaDin: Hmm.  IIRC, that error usually occurs when handling a large file version.  Perhaps there used to be a very large file earlier in the history?01:43
GungaDincould be...01:44
GungaDindunno really01:44
AfCSo, given that you dump traces in bzr.log, couldn't you just swallow any even remotely predictable exceptions and give a human readable single line error message instead?01:47
spivAfC: well, we mostly do that already :)01:48
AfC[me is Java programmer, knows value of thread dumps at programming & debugging time, but I also know how much they freak out innocent users who were under the mistaken impression that they have a warranty with their software :)]01:48
poolieyeah, we do exactly that01:49
AfCspiv: ... it also just came up on the mailing list01:49
poolieafc, the question is more precisely,01:49
poolieshould we add MemoryError to the class of errors that are treated as environmental not a bug01:49
AfCpoolie: ah01:49
* AfC understands01:49
AfCSo, does Python's VM expand to use all available memory until the kernel OOM killer gets it?01:50
spivProbably "bzr: ERROR: out of memory" is virtually always a better thing to do than a traceback, even if the MemoryError is (hypothetically) a bug in a dependency rather than bzrlib.01:51
AfCFor reasons that defy comprehension Java's VM has to be told manually to use [lots of] available memory. Quite the pain in the ass.01:51
poolieafc, no, it's like java, it normally raises an exception01:51
AfCespecially with people innocently using recursive descent parsers, etc.01:51
AfCpoolie: right, but in Java's case if you don't manually tell it to use more than hard coded maximum 256 MB (or whatever stupid number it is) of heap, that's all it'll ask for before raising OutOfMemoryError01:52
spivWell, in the case of recursion, CPython has a limit on the amount of recursion it can handle because Python function calls use C stack frames too.01:52
spivBut yes, CPython will happily ask the OS for as much memory as the program demands.01:53
AfCspiv: (yeah, I realize I was conflating stack and heap there, but the two tend to go hand in hand when tree-building)01:53
thumpergeneral frustration02:06
thumperpackaged bzr and bzrtools don't work together :(02:06
pooliethumper: what are you using from bzrtools?02:06
thumperpoolie: I tried both trunk and the one from the ppa02:06
pooliei mean, why do you have bzrtools installed?02:06
pooliejust for background02:06
thumpercbranch02:06
poolieok02:07
poolie:/02:07
lifelessso I was chatting with john yesterday02:07
poolieaaron insists on having them locked in sync02:07
lifelesshe's going to package more02:07
thumper:(02:07
poolieeven though in this case there were 0 changes to update to 1.1802:07
lifelessto help with this02:07
thumpericanhazcbranchtrunk?02:07
pooliehttps://bugs.edge.launchpad.net/bzr/+bug/41792202:07
ubottuLaunchpad bug 417922 in bzr "treat MemoryError as a special/environmental error" [Medium,Confirmed]02:07
lifelessthumper: not for 2.0; something equivalent but hopefully integrated not bolted on, in 3.002:08
poolieyeah02:08
* thumper nods02:08
lifelessand by integrated I don't mean 'in core', I mean 'in UI / workflow'02:08
thumperusing bzr.dev for bzr now02:08
poolieregarding john's patch http://bazaar.launchpad.net/~jameinel/bzr/1.17-content-filtering-commit/revision/453002:12
poolieit looks like it's still trusting the content_summary sha102:12
pooliei don't know if that's safe02:12
pooliebut if we were going to take this patch, it does seem like we'd need a test of commit with content filtering02:13
lifelessit depends what dirstate is doing02:20
lifelessI suspect dirstte stores the canonical sha102:20
lifelessin which case the sha1 in a content summary is valid if its coming from a dirstate cache hit02:21
rbriggsatuiowa_wt = Branch.open('/Users/rbriggs/bzr/test.bound')02:37
rbriggsatuiowa_wt.update02:37
rbriggsatuiowa_this is not actually updating the branch (it's a bound branch)02:38
rbriggsatuiowa_what is the method that I actually want to use02:38
lifelesswt.update()02:40
lifelessbut02:41
lifelessBranch.open returns a branch, not a tree02:41
lifelessyou want02:41
lifelesswt = WorkingTree.open(...)02:41
lifelesswt.update()02:41
rbriggsatuiowa_alright - I tried that too and it doesn't work either02:43
lifelesswhat are you expecting to happen that is not happening?02:44
rbriggsatuiowa_I am expecting it to have the same result as if I ran bzr up from the command line02:44
rbriggsatuiowa_the branch that wt is bound to is at version 3 - but wt keeps staying at version 202:45
lifelessthats the api that cmd_update uses02:48
lifelesscmd_update does more; you should look at it inside bzrlib.builtins02:48
rbriggsatuiowa_cool - thanks02:50
rbriggsatuiowa_btw - love this chatroom - it has always been helpful02:50
AfCOk, that's weird. That rbrigg fellow managed to have his nick show up in italics in my IRC client. Hm. injection vectors. Yeay.03:11
=== davidstrauss_ is now known as davidstrauss
* igc lunch04:36
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
vilahi all07:09
pooliehi vila!07:16
lifelesshi vila07:16
vilalifeless: rev4638 on trunk is weird, the message and the "code" actually committed doesn't seem to match >-/07:22
vilaThe message says : "Improve test performance of selftest tests." but the commit is about the "Triaged" definition...07:23
vilalifeless: not a big deal, more a heads-up in case you missed something07:23
lifelessoh frell07:24
lifelesslanded totally the wrog branch there07:24
vilamy worst nightmare.... :D07:25
lifelesshttps://code.edge.launchpad.net/~lifeless/bzr/test-speed/+merge/1059007:25
lifelessis the follow on to what I had meant to land07:25
poolieigc, so as far as i can make out the content_summary is meant to be about the internal form07:52
pooliei think we should see about a clearer distinction between those that are and those that aren't07:52
igcpoolie: right. It's only used in bzrlib (to my knowledge) for getting what to commit07:53
lifelessit predates filters07:53
pooliesure07:53
pooliethe question really is, what are interfaces that predate filtering meant to do07:53
lifelessI agree with what you're saying.07:54
lifelessinterfaces predating are all about the canonical form, IMO07:54
pooliecool :)07:54
pooliethen we all agree :)07:54
igclifeless: ir predates filters landing; content filtering development started before it existed by then I got sick07:54
igcs/ir/it/07:54
igcs/by/but/07:54
pooliei mean even aside from this particular method there are going to be other things that are not filtering-aware07:55
igcright, because there was no convenient form07:55
pooliei was wondering before if perhaps we should have a separate tree object that represents the filtered form07:55
poolieit may be complicated to make that work properly with eg treetransforms07:55
pooliebut it might be cleaner07:55
pooliehm it might be hard to make it work well with dirstate too07:56
fullermdFiles can be different from the filtered form (and different from canonical), and still evaluate to the same canonical form...07:56
fullermdSo at best it would probably only save you work some of the time.07:56
igcfullermd: right07:56
fullermd(of course, that may be the vast majority, so still be a win.  But you'd always have to treat a miss as just a hint at any rate)07:57
pooliei meant easier in terms of less bugs, not faster07:57
fullermdI'd think the result would just be to hide them more often.08:01
fullermd(I guess that's "less", but probably not in a way we really want  :)08:01
pooliewhy?08:01
poolieactually, are we even talking about the same thing? ie having a FilteredTree(filters, tree) class08:02
fullermdPossibly not.  I never really know what I'm talking about.08:03
poolie:}08:03
NEBAP|workvila: ping08:15
vilapong08:15
NEBAP|workvila: good morning :)08:15
vilaNEBAP|work: You too :)08:15
NEBAP|workvila: get the error reproduced?08:16
vilaSo, I looked at our bug and couldn't find a way to reproduce the "obj/file2' is not conflicted, only "obj.moved/file2" is not conflicted08:16
NEBAP|workhmmm08:17
NEBAP|workweird08:17
vilaSo I left it up to you to find the right sequence :)08:17
NEBAP|work^^08:17
vilaFrom there, but from there only can I try to fix the problem08:17
NEBAP|workwill play a bit with generated folder ;)08:17
NEBAP|workand then give you the results08:17
vilaNEBAP|work: ok, thanks !08:17
vilaNEBAP|work: My best guess is that the sequence is so alien to me that I can't force myself to reproduce it,08:18
NEBAP|workdoesn´t bazaar have a "log" where you can see the last xx commands?08:18
vila.bzr.log in $HOME (bzr version will tell you where)08:18
vilaGood idea08:19
NEBAP|workI hope that it wasn´t my fault that caused the error..08:19
vilaI suspect some more non-bzr commands are involved though08:19
NEBAP|workso, will that help if I take the log from chris computer?08:19
vilaNEBAP|work: Don't think about it as whose fault it was, in the end we want bzr to help you avoid such problems anyway08:20
NEBAP|workkk08:20
vilaNEBAP|work: it will certainly help, if only by restricting what bzr commands we should include in the scenario08:20
vilathere can also be a '.bzr.log.old' there too08:21
NEBAP|workk, I will look for those files on chris computer and then send them too, ok?08:21
vilaif you can find the commands that have been executed in the right time frame (hopefully you can identify that :)08:21
vilathat will help08:21
vilaNEBAP|work: try to filter them a bit first08:22
NEBAP|workok, if the commands are in the log file, I´ll find them ;)08:22
NEBAP|workok08:22
lifelesspoolie: I landed the policy change by mistake. I'll back it out tomorrow.08:30
pooliek08:30
vilalifeless: grr, I already asked you (can't remember where): where the h is boto ?08:31
lifelessvila: apt-get install python-boto08:31
vilaI'm sure I tried that :-(08:31
lifelessmay be only in karmic08:31
lifelessin which case08:31
lifelessadd karmic to your sources08:32
lifelessthen apt-build install python-boto08:32
pooliepython2.5-boot08:32
poolieboto08:32
vilaavailable in jaunty, may be it wasn't last time I checked...08:32
pooliein jaunty08:32
vilain universe08:32
vilalifeless: but did you try my patch ? The only helper class I modify is *inside* fork_for_tests...08:33
lifelessvila: is it? [no I hadn't;  I was doing a trawl through for unreviewed things...]08:34
NEBAP|workvila: email is on the way, keep that one private please .. (should contain the hole session from friday)08:34
vilaNEBAP|work: sure08:34
vilalifeless: I don't want to force your vote (non sense anyway) but I'd like to keep that submission simple, I *want* to limit the number of spawn process, but it requires a more extensive change (I know, I tried)08:35
lifelessvila: It would make me happy if you test it with ec2test.08:37
vilalifeless: devil :)08:37
lifelessI'd like to know that all the hacking you do in this space fits with ec2test, because I think its a good model for a bunch of things like - having pqm validate on windows during commit.08:37
vilalifeless: you know we agree on the aim, even if we disagree on the steps to get there :)08:38
lifelessI'm not sure we disagree on anything ;)08:38
vilaIs that the same as: "I'm sure we agree on nothing" ? :-D08:39
lifelessheheh08:39
vilaNEBAP|work: I received the file, but it looks like a lot of lines are badly truncated (as if you copied some file content in a mail...) can you resend the file itself as attachment ?09:09
* igc dinner09:13
NEBAP|workvila: sure, give me a second09:13
CokeHello. I have a problem, the server admins have changed the SSH port so now my bzr branch is wrong when I try to commit files. How can I change this without losing the data I've modified?09:14
vilaNEBAP|work: the scope sounds good though as far as I can see, the last commit/push is the one that succeeded right ?09:14
NEBAP|workvila: yes should be :)09:15
vilaCoke: mention the port explicitly in the url09:15
vilaCoke: uze 'bzr info' to check what bzr thinks your branches are, use --remember in the right command to update that09:16
Cokevila: ah, remember09:16
vilaCoke: now you remember ? :-D09:17
Cokeno, I'm trying to remember09:17
Cokesorry, to USE --remember09:17
Cokeunknown command "--remember"09:17
vilaCoke: --remember is a parameter accepted by commands like 'push', 'pull'09:17
RaimCoke: more like: bzr push --remember09:18
Cokeok. and after remember I have the new URL?09:18
Raimand the URL as additional parameter of course09:18
Cokeok.09:18
Cokebzr: ERROR: no such option: --remember09:18
Raimwhich bzr version do you use?09:18
CokeI'm trying to do a ci09:18
vilaCoke: you use the command as usual (but mentioning a new URL) and you add --remember09:18
Coke1.1709:18
vilaCoke: what does 'bzr info' says ?09:19
Raimbzr ci does not have --remember as it does not require a URL09:19
NEBAP|workvila: on the way09:19
Cokevila: about?09:19
CokeRaim: so how do I solve this?09:19
vilaCoke: can you paste it somewhere ? Do you use a standalone branch or a heavyweight checkout ?09:20
Cokeit says "checkout of branch" in info09:20
vilahmm09:20
Cokeall I want to do is change the URL used when doing ci and up09:20
Cokeit's stored somewhere in some magic file09:20
Coke(which the README says explicitly not to touch manually)09:21
vilaCoke: cat .bzr/branch/branch.conf09:21
poolievila: have you ever seen this:09:21
pooliembp@grace% ./bzr --no-plugins selftest nested09:21
poolietesting: /home/mbp/bzr/bzr.1.18/bzr09:21
poolie   /home/mbp/bzr/bzr.1.18/bzrlib (1.18 python2.6.2)09:21
poolieException RuntimeError: 'maximum recursion depth exceeded in __subclasscheck__' in <type 'exceptions.RuntimeError'> ignored09:21
poolieException RuntimeError: 'maximum recursion depth exceeded in __subclasscheck__' in <type 'exceptions.RuntimeError'> ignored09:21
Cokevila: should I change that manually?09:21
poolie                                                     09:21
vilapoolie: yup, every day :)09:21
pooliereally? i don't think i ever havebefore09:21
vilapoolie: I traced it back to a test saying it was expected or something09:21
spivI see it sometimes.09:22
vilaI was about to summon you spiv :)09:22
Cokevila: OH! that worked nicely even though I shouldn't meddle with .bzr09:22
spivIt's something that only happens when .pyc files are generated, or something weird like that.09:22
vilaCoke: huh ? Just looking at the file ? Or do you mean you edited the file ?09:22
Cokevila: I edited it.09:23
vilaCoke: ok, certainly the simplest there :)09:23
vilaThere may be a way to do it from the command line, but not using heavy checkouts myself, I don't know it09:24
CokeHow come bzr up doesn't restore deleted files?09:24
CokeI deleted a file in the local branch and then did bzr up to see if it would restore it, but no go09:25
vilaCoke: a versioned file ?09:25
vilaCoke: ho, you want 'bzr revert'09:25
vilabzr update will respect your local changes as much as it can09:26
Cokevila: ah09:26
Cokethanks09:26
Cokestill getting used to the CVS -> bzr switch09:26
vilaCoke: You're welcome09:27
Cokewow. bzr uploads could not possibly be any slower. :)09:30
poolie:/09:30
Cokeit's doing < 1k/s09:30
poolieover what protocol, and with what version?09:31
Cokesftp09:31
Coke1.1709:31
poolieto launchpad, or elsewhere?09:31
Cokeelsewhere09:32
Cokefor launchpad I use lp protocol09:32
CokeMan, does launchpad have support for showing number of checkouts and/or downloads yet?09:32
poolieno09:33
pooliewould be nice09:33
CokeI've seen that as a requerst for ages now.09:34
CokeWhat are the launchpad devs doing? Lunch from monday to friday?09:34
Cokelunchpad09:34
CokeDoes bzr work inherently with other project sites?09:35
Cokeor, rather, can you guys recommend a project site, as bzr user?09:36
pooliewhat do you mean?09:36
Cokepoolie: I'm looking for a place to host my free projects, launchpad is lacking too many features09:37
CokeI want something like sourceforge, but something that has bzr repos support09:38
pooliesourceforge supports bzr repos09:38
CokeOhh?09:38
pooliei'm pretty sure09:38
pooliewhat features do you think lp needs most?09:38
Cokestatistics on repos and files and a wiki09:39
Cokeit can even be a linked wiki, as long as it works with the lp login09:39
poolielike download counts? to know if anyone cares?09:39
Cokepoolie: indeed09:39
vilaNEBAP|work: I'm pretty sure the problem is case related, can you check that ? (It also explains why I couldn't reproduce it since Linux is case sensitive)09:39
poolieit has counts for download files09:39
vilaNEBAP|work: like 'bzr resolve "pda/<etc>"' raises 'is not conflicted' while 'bzr resolve "PDA/<etc>"' works, can you check that ?09:41
Cokepoolie: I haven't packaged my stuff yet, so number of checkouts/branches would be cool too09:41
Cokepoolie: the wiki (or anything that let's you put some screenshots up) would be great09:41
Cokepoolie: I do a lot of UI things lately and in the case of UI's a picture really says more than a thousand words09:42
vilaNEBAP|work: and thanks for the updated mail :)09:42
NEBAP|workvila: I´ve checked that while we had the problem, but I´ll recheck, but windows is not case sensitive even using bazaar (used it for many projects)09:42
Cokepoolie: lp could even have a wiki with support for a bzr backend :)09:43
vilaNEBAP|work: right, if you can confirm, we have identified the bug :)09:43
poolie'cos there's a thread here09:44
pooliehttps://lists.launchpad.net/launchpad-users/msg05247.html09:44
pooliea wiki is very popular09:44
Cokepoolie: it would solve all project hosting problems I've encountered with minimum effort from lp09:44
Cokelike "can I post more screenshots?" -> do whatever you want in your project wiki09:45
poolieone more wish?09:45
Cokepoolie: that's it.09:46
Cokepoolie: checkout stats and a wiki would make lp _complete_09:46
CokeI'd be able to throw away my freshmeat and sf accounts09:46
poolieheh09:47
pooliewell, there are still about 5000 bugs open :)09:47
pooliebut those two would help a lot09:47
pooliei'm told that now there are file download counts doing it for branches may not be that hoard09:47
pooliehard*09:47
Cokepoolie: bugs are another story. so far nothing that prevents me from using lp09:47
CokeI think the biggest reason launchpad is moving slowly with development is the license. :)09:48
poolieoh?09:48
Cokepoolie: sure. I'd help if the sources were readily available09:49
vilaNEBAP|work: The trick is that the message is "file does not exist" or "not conflicted" depending on whether or not the file exists, but on case insensitive file system, that's wrong and that's why I couldn't reproduce it09:49
* fullermd has to question just how many random contributions Sourceforge-the-software has ever gotten...09:49
pooliethen i have a treat for you09:49
vilaNEBAP|work: looking at the code, I'm 98% sure I found the problem, can you give that 2% missing ? :-D09:49
poolieCoke: http://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel/files09:49
NEBAP|workvila: I will, just give me a second, can you tell me which commands I should test with the folder we created on friday?09:50
vila'bzr resolve "pda/<etc>"' sould fails, 'bzr resolve "PDA/<etc>"' should succeed,09:51
Cokepoolie: yes, that's not new though, is it? I still can't find any news on the license09:51
vilareplace <etc> with the path leading to the conflicted file that caused problems09:51
vilaNEBAP|work: be extra careful with the case, start with the wrong case09:52
Coke"gnu affero" ?09:52
poolieright09:52
pooliehttp://www.gnu.org/licenses/agpl.html09:52
poolieis that a problem?09:52
Cokenot sure.09:52
Cokepoolie: hm. I didn't know there was any linking donein lp at all09:53
Cokepoolie: well, this is great news anyway09:54
Cokepoolie: looks tidy for such a large project09:57
Cokepoolie: are you one of the lp regular devs?09:59
poolieno09:59
pooliei just kibbitz09:59
Cokekibbitz?10:03
fullermdn'bitz n'bitz.10:05
Cokehuh?10:08
fullermdRandom jingle injection.  Don't mind me   :p10:11
vilafullermd: http://instantrimshot.com/10:14
vilaCoke: My dictionary tells me: v : make unwanted and intrusive comments [syn: kibitz]10:15
NEBAP|workvila: sorry, had to do some work ^^, so how can I get back the conflicts?10:50
spivOoh, this groupcompress batching fix for remote IO also improves build-tree time for Launchpad by ~5%.10:54
spivI was worried the complexity might have the opposite effect, apparently not :)10:55
Cokevila: weird :)10:55
vilaNEBAP|work: 'bzr conflicts' ?11:01
vilaNEBAP|work: or restoring the backup you made friday11:02
NEBAP|workvila: I use the backup from friday, but it seems to be the point before the conflicts11:02
lifelessspiv: less IO is less IO11:03
vilaNEBAP|work: so you should merge again, was it -r29.1.1 ?11:07
NEBAP|workvila: yes, should be the latest server version11:07
NEBAP|workvila: bzr merge server -r 29.1.1    ?11:08
spivlifeless: right, that's what I was hoping.  But I know better than to merely hope that a change will improve performance :)11:08
vilaNEBAP|work: I think so11:08
NEBAP|work:D11:08
spivlifeless: I can be hopeful and worried simultaneously ;)11:08
vilaspiv: Yeah, I often worry about my daughters being to hopeful :-D11:09
NEBAP|workvila: ok, conflicts are there, also created the obj.moved folder and the xxxx.cache.BASE and xxxx.cache.OTHER files :D11:14
NEBAP|workvila: now what should I do to check if it´s the error you think?11:14
vilaNEBAP|work: 'bzr resolve "pda/<etc>"' sould fails, 'bzr resolve "PDA/<etc>"' should succeed,11:15
vilaNEBAP|work: be extra careful with the case, start with the wrong case11:15
NEBAP|workk11:16
NEBAP|worklower case (wrong) -> xxx.cache does not exist11:18
vilaok, try with correct case for the directory but not final part of the path11:18
NEBAP|workPDA/trunk/.../lower.cache (just file is wrong) -> xxx.cache does not exist11:19
NEBAP|workXxxxXxxx.cache (everything ok) -> file does not exist11:20
vila....11:20
NEBAP|workbecause of that I renamed the file using the os functions11:20
vilaNEBAP|work: usr bzr conflicts forst11:20
NEBAP|workon friday11:20
vilawhat ?11:21
NEBAP|workon friday I get the same error (file doesn´t exist)11:21
NEBAP|workbecause it doesn´t exist (there is just the xxx.BASE and xxx.CACHE left) I renamed on of them using normal os functions11:21
NEBAP|worksorry11:22
NEBAP|work(xxx.cache.BASE and xxx.cache.OTHER are left, no xxx.cache)11:22
NEBAP|workso I used "rename xxx.cache.OTHER xxx.cache"11:22
NEBAP|workto ensure that the file exists11:22
vilaok, do that first then,11:23
vilathen retry 'bzr resolve lower',11:23
vilahmm, but I think 'bzr mv xxx.OTHER xxx' is mandatory here...11:24
vilaha, no, forget about that11:24
NEBAP|workmaybe you can see in the logs what I´ve done (if you look on the files)11:24
NEBAP|workk11:24
NEBAP|workwill rename it now11:24
vilaNEBAP|work: you did 'bzr mv' for the one that worked and then 'bzr resolve <right case path>'11:26
NEBAP|workk and for the ohter bzr mv didn´t work, right?11:26
NEBAP|workk, renamed the file now11:27
vilaNEBAP|work: apparently yes11:28
NEBAP|worklower case -> file doesn´t exist11:28
viladoes the file exist ?11:28
NEBAP|workyes11:29
NEBAP|workfile lower case -> file does not exist11:29
NEBAP|workbut I can see bzr converts in the wrong way11:29
vilathen you don't specify correctly or something because this message is issued after a os.path.exists(path)11:29
NEBAP|workthe file is: Folder/folder/Folder/FileName.ext   for example11:30
NEBAP|workthe bazaar error format is like this: Folder/folder/Folder/filename.ext  (he converts the folders correct, but doesn´t for the filename)11:30
NEBAP|workusing all in the right case worked11:31
NEBAP|workno errors11:31
NEBAP|workjup worked for both files11:32
NEBAP|workbut no "there is no conflict"11:32
vilaNEBAP|work: so you don't reproduce the bug ?11:32
NEBAP|workmaybe that was because of the wrong conversion of the filename11:32
=== thumper is now known as thumper-zzz
NEBAP|workno11:32
vila:-/11:32
NEBAP|workbut let me test something more11:32
NEBAP|workgive me a second11:33
NEBAP|workwird11:36
NEBAP|workweird11:36
NEBAP|workno this time it also worked with the lower case11:36
NEBAP|workbut no way to reproduce the error ..11:36
NEBAP|worksorry11:37
vilaNEBAP|work: ok, let's stop there then, I'm pretty sure there are bugs around case sensitiveness anyway, so I'll write some tests and see how to run them on some case insensitive file system11:38
vilaNEBAP|work: Thanks for your efforts11:38
NEBAP|workthank you for the help ;)11:38
=== vila is now known as vila-afk
=== NEBAP|work is now known as NEBAP|afk
=== mrevell is now known as mrevell-luncheon
danny_Does anyone have a suggestions on what editor to use for developing in python. 'cause I've got some trouble understanding the code without the (static) types.13:30
=== danny_ is now known as dvheumen
jmldvheumen, for which OS?13:37
quicksilvertry komodo edit, perhaps13:37
quicksilverit ives some kind of autocompletion which might help alittle13:37
dvheumenquicksilver, I'll give it a try13:37
dvheumenI was hunting for some bug, but without any type information, it's pretty hard to even discover what kind of a thing it is that you're looking at :P13:38
=== mrevell-luncheon is now known as mrevell
quicksilverdvheumen: agreed. python is fail :P13:45
quicksilverdvheumen: some people love it though :)13:45
=== NEBAP|afk is now known as NEBAP|work
dvheumenI haven't decided yet :P I haven't done much in Python yet, but I'm kind of interested in learning. It seems like a very useful language.13:46
dvheumenbut it's kind of difficult to do something in an existing project, since I get (almost) no context information at all13:47
michaelforrestis anybody working on a log plugin that does JSON output for bzr ?14:06
dvheumenquicksilver, it looks nice, doesn't give information for my target though :P but it looks like a nice editor ... and think I'll keep it for a while :D14:07
beunojames_w, hey14:08
beunodid you manage to upload loggerhead to karmic?14:08
james_wnot yet14:08
james_wI'm not sure which bzr-svn is compatible with bzr 1.1814:08
james_wI have the updated loggerhead on my hard disk though14:08
beunoah, so you're upgrading a bunch of packages around bzr at the same time?14:09
james_wyeah, 1.18 and the needed plugins14:11
beunoawaesome14:11
beunoand awesome14:11
james_wit all falls apart when jelmer's not around :-)14:11
beunoheh, I was just thinking the exact same thing14:11
Kamping_KaiserWhen resolving a conflict, am I /required/ to edit the .BASE .THIS and .OTHER [sic] files, or can I simply edit the file which conflicted?14:25
Kamping_Kaiserhttp://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#resolving-a-conflict I'm working through this14:26
beunoKamping_Kaiser, edit the conflicting file, and "bzr resolve" will take care of those files14:26
beuno(that's what I always do)14:26
Kamping_Kaiserbeuno: thanks. the user-guide makes it sound like thats not an option14:27
beunoKamping_Kaiser, care to email the lsit about it?14:27
beunowoulb be interesting to fix it14:27
Kamping_Kaiserbeuno: does it support non-subscriber messages? if so, I'll fire off an email now14:28
beunoKamping_Kaiser, it does not, but you can subscribe, and configure it so you don't get email14:28
Kamping_Kaiserhm.14:29
Kamping_Kaiserclunky :/14:29
fullermdNon-subscribers get moderated.  So it should get through eventually, though it may take a few days.14:42
emmajanebeuno, good morning. :)14:44
emmajanePlease let me konw if there's anything you need from me for the designer.14:45
emmajane(this is your daily harassment message ;) )14:45
beunoemmajane, gooood morning14:45
beunoI do not, I'm waiting for him to arrive to jump in and do the changes14:46
emmajanebeuno, ok :)14:46
=== cprov is now known as cprov-lunch
cjnodellI was wondering if there was a "best" way to delete a branch/working tree with bzr?16:16
james_w"bzr remove-tree" for the latter16:16
james_wnothing special for the former16:16
james_wdoing the remove-tree first will help you check there aren't uncommitted changes, "bzr missing" can help you work out if there are revisions there you forgot to push/merge whatever16:17
cjnodellso, if I wanted to make a one-time change to a project using bzr, I could create a new branch, make the changes commiting as needed, push or merge the changes with the original branch, run "bzr remove-tree" then delete the folder like any other. Does that sound right?16:21
james_wyeah16:22
james_wthe remove-tree isn't required, but can help avoid "oops" moments16:22
cjnodellcool. thanks. Everything was making sense, but i found little info on removing old branches/working trees. I figured that it would be best to create a new branch for each task (bug fix/feature add) and then merge the new branch back, but I ended up with a bunch of old branches that I didnt need/use.16:24
=== deryck is now known as deryck[lunch]
igcnight17:08
=== deryck[lunch] is now known as deryck
=== cprov-lunch is now known as cprov
=== beuno is now known as beuno-lunch
=== cody-somerville_ is now known as cody-somerville
=== jfroy_ is now known as jfroy|work
=== beuno-lunch is now known as beuno
lifelessmoin19:09
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
=== Pilky_ is now known as Pilky
jamlifeless: you're up early20:17
jamor raiding really late :)20:17
lifelessup early20:18
lifelessgale force winds, or I miss my guess20:18
jamIf you are around, I'd like to chat a bit about bug #40264520:18
lifelessalso have a virus, went to bed early...20:18
ubottuLaunchpad bug 402645 in bzr "fetch for --2a formats seems to be fragmenting" [Critical,In progress] https://launchpad.net/bugs/40264520:18
lifelessand the result is I get up 7 hours later like clockwork20:18
lifelessvoice or IRC?20:18
jamIRC is fine for now20:18
jamSo in debugging it, it seems that we are, indeed, fetching in 'groupcompress' order for stuff like inventories and file texts20:19
jamrather than 'unordered'20:19
jamconceptually it seemed nice20:19
jambut we *don't* auto repack on the fly20:19
jamso all we are getting is fragmentation, without the associated recombination in the new 'optimal' ordering20:19
jam(so it might be ordered better on disk now, but it is fragmented...)20:19
jamIt probably doesn't help that we just changed the topo_sort algorithm ... :)20:20
lifelessso its ordered but not grouped20:20
lifelessis the new topo sort stable?20:20
jamthe new topo sort is not particularly stable20:20
lifelessif its not, we should fix that asap20:20
jamit orders based on children20:20
jamand children is populated by walking a dict20:20
lifelessit will mess up pack on packed repos and things like that20:20
lifelessIt seems to me that we _really_ need it to be stable20:21
jamso I could try to figure out when to repack on-the-fly, or we could just request unordered20:21
jamand the groupcompress sort during pack20:21
lifelessso20:22
jamlifeless: I can certainly write a groupcompress sorter that would be more stable20:22
jambtw, lifeless, I hope you're feeling better20:23
lifelessjam: doc says its a virus20:23
lifelesspush liquids20:23
lifelesssleep when tired. The usual.20:23
lifelessif not better in a week blood test.20:24
jamlifeless: yeah, I had a 24-hour ish thing last week20:24
FaganHi im getting an error when I try to branch.20:24
FaganPermission denied (publickey).20:24
Faganbzr: ERROR: Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist.20:24
FaganShould I just make a new pub key?20:25
jamFagan: did you do launchpad login without actually telling launchpad about your ssh key ?20:25
lifelessare you on windows?20:25
FaganIt worked about a month ago but I tried it there a minute ago and it didnt20:26
jamlifeless: as an aside, if we do a new gc ordering without packing on the fly... then we will opportunistically fragment everything until everyone has upgrade their versions and repacked their repositories with the new sort order20:26
jamFagan: you could try checking your launchpad ssh key list and see if the keys you expect are still present20:26
FaganYep20:26
lifelessFagan: if you're on windows, make sure that you can connect outside of bzr20:27
lifelesswe use plink which just errors hard if its a new host20:27
FaganIm on ubuntu20:27
jamlifeless: Wasn't there a special "~me" user for launchpad links?20:27
lifeless+me?20:27
lifelessjam: so a few thoughts: we want the end result to be well ordered& grouped repos. We want initial pulls to end up that way too.20:28
jamlifeless: launchpad.net/~me   /~+me    /+me  all no love... :(20:29
lifelessjam: we don't particularly want to do massive computation on the server, OTOH full pulls should already be in near-ideal gc order anyway - and besides, if we offload it all to the client, then when the client pushes to the server the server will do all the work.20:29
lifeless /people/+me20:29
lifelessso for an ideal solution with high server scaling we need:20:29
lifelessclient-does-the-work-on-push20:30
jamlifeless: well, I was hoping for "launchpad.net/+me/+sshkeys" to help out Fagan, but that doesn't seem to work20:30
lifelessclient-does-the-work-on-pull20:30
lifelessjam: /people/+me/+sshkeys20:30
jamah, but people/+me/+sshkeys does20:30
jamlifeless: you could have a hint that gets passed down when the source is RemoteRepository...20:31
lifelessits worse than that its dead jim20:31
lifelesssite to site fetch [corner case] can go remote->remote20:31
lifelesswith the 'client' in the middle20:31
jamas an aside, changing the ordering to 'unordered', I no longer get any "creating new compressed block on-the-fly" messages, as expected.20:32
lifelessso20:32
lifelesslets look at what that does20:32
lifelesswe have a repo which is partially packed20:32
lifelessN packs.20:32
lifelessbut we write a repo which has the same groups but 1 pack.20:33
jamyep20:33
FaganAh I just made a new ssh key and it worked20:33
lifelessI'm really inclined to say 'pull in gc-optimal order and do a 'decent' job of combining groups'.20:33
lifelessbecause otherwise the repack heuristic will never kick in on the recipient20:34
jamlifeless: right, the question is all about the 'decent' issue20:34
jamand I'm wondering if the fix *today* is to just switch back to unordered20:34
jamwhile we work out a reasonable heuristic20:35
lifelessbut this may have really bad behaviour if for instance it ends up recompressing everything.20:35
lifelessand because its newest-first thats actually a plausible side effect20:35
jamlifeless: right, say you get the 'off-by-one' issue because there is a single new text20:35
jamso you try to fit 100 nodes in each group, but they all get shifted by 120:35
lifelesswe should expect most repos to be mostly packed most of the time20:35
jamlifeless: aside from the current fragmentation issue, which causes them to be at best partially packed part of the time :)20:36
lifelessindeed. Bugs.20:36
lifelessperhaps20:36
lifelessgc-optimal is meant to be 'what a gc repo wants'20:36
lifelessOne thing we could do is allow that to not fragment20:36
jamso here is an idea20:37
lifelessI'm concerned about asking for unordered because unordered can be _really_ unordered.20:37
jamwhat if we fetch in groupcompress order20:37
Faganthanks guys bye20:37
jamand leave a compression group 'open'20:37
lifelessciao Fagan20:37
jamsuch that if we want to split an existing group into a new one20:37
jamwe put it in the 'pending' group20:37
jamso we leave groups alone as much as possible20:38
lifelessre; off-by-one. I think in that case we should just make the first group a little bigger and not touch others.20:38
jambut if we are doing the work of splitting, then we flag it as something that should be recombined20:38
SamBjam: could something like that avoid repacking repeatedly during a single fetch as well?20:38
lifelessSamB: no, thats a different condition entirely.20:38
jamSamB: repacking repeatedly only happens on cross-format-fetches20:38
SamBtrue20:38
SamBI guess20:38
SamBbut the idea of a "pending" group sounds sorta like what I was thinking could be used to avoid too much of that ...20:39
lifelessSamB: no, it wouldn't help there.20:39
jamlifeless: sure, I'm just saying that a heuristic that is too simple could cause an off-by-one problem20:39
lifelessjam: yes, I'm acking that.20:39
lifelessjam: but also saying that we should ahve a goal, that adding texts to a group at fetch time, *at worst* merges them with the first group, and doesn't touch any deeper group.20:40
lifelessI think your pending group concept is a description about how we might implement that20:41
jamlifeless: so the main problem that I see is that repacking the groups is considered to be a "get_record_stream" process, while combining them would be an "insert_stream" process...20:42
SamBoh, also ... it seems like there is a certain size beyond which repacking is a BAD idea ...20:42
jameither that or the get_record_stream side would buffer...20:42
lifelessjam: andrew has a need for a streaming gc interface20:42
lifelesslet me describe this briefly20:42
lifelesshe has a lot of inventory deltass20:43
lifelessthey will compress very well against each other20:43
lifelesswe want to put them on the network as a series of gc groups20:43
lifelessso he wants to be able to do:20:43
lifelessdef get_fulltext_stream(): make deltas and yield FullTextContentFactory(delta_text)20:44
lifelessnetwork.insert_stream(gc_compress(get_fulltext_stream()))20:44
jamlifeless: the bzrlib.groupcompress.GroupCompressor class can do all that he needs, other than knowing when to start a new group20:45
jamso it would be pretty easy to have a moderately trivial logic in a helper function to do that20:45
lifelessyes, and in fact he may have already; it was a weekish ago that I did the design review with him20:45
lifelessit just seemed related to your point ;)20:47
lifelessso, get_record_stream repacking would be inefficient for tree building20:47
lifelesswe'd want to only do it when serializing to the network20:47
lifelessinsert_record_stream is a better conceptual fit. Can we reasonably confidently hook it in there20:48
jamlifeless: so insert_record_stream would need to be holding the pending group anyway20:50
jamthe question is how to figure out that the block coming across the wire is unoptimal20:51
jamWe could start with groups that have a single entry20:51
jamI don't know whether that is enough, but it would certainly be a start20:51
lifelessthats likely20:51
lifelessuhm20:51
lifelesslets start by getting a trace20:51
lifelesswhat does irs see when fetching from a fragmented 2a repo20:52
Noldorinhey lifeless20:52
lifelesshi Noldorin20:52
lifelessjam: that will give us data to fit an algorithm too20:52
Noldoringot another reply from my admin today20:52
Noldorinheh20:52
lifelessjam: as well as test data for verifying we've fixed it.20:52
Noldorinbasically i finally got them to try it, but they are adamant there is nothing to be done20:52
lifelessthey agree that the behaviour happens?20:53
Noldorinwaiting for the upgrade to IIS 7/win 2008 is the solution i think :)20:53
Noldorinif i'm lucky, that will fixc it20:53
jamNoldorin: this is the "ie6 ftp server" doesn't like to actually respond to delete requests?20:53
lifelessjam: yes20:53
Noldorinbut it's possibly just the fact that it's on a shared server20:53
Noldorinand the OS is really slow to process filesystem operations20:53
Noldorinjam: it does, only very slowly.20:53
lifelessNoldorin: do they agree that it happens?20:53
jamhaving RENAME and DELETE return before the action has completed is a bit silly anyway20:54
jamlifeless, vila-afk: In doing this testing, I'm seeing a lot of: "25 bytes left on the HTTP socket" in .bzr.log20:55
jamany idea what would be causing that?20:55
lifelessjam: thats odd20:55
lifelessI'd change the trace to print the first 50 bytes of whatever is left as well20:56
lifelessthat will answer it quickly20:56
=== vila-afk is now known as vila
jamIt is in bzrlib.transport.http._urllib2_wrappers.Response.finish()20:57
jamanyway, I'll poke at it a bit20:57
Noldorinlifeless: well, they kind of agree.20:57
vilajam: still haven't found the time to look into it, but it's just a warning, it means we the http response contained more data than we can consume, which may or not indicate a more serious problem20:57
Noldorinnot directly though20:57
lifelessNoldorin: they can't reproduce it?20:58
Noldorintook a very frank email to even get them to (what seems) like try it20:58
lifelessNoldorin: or they can?20:58
vilajam: if you poke, poke at the higher levels20:58
Noldorinerm20:58
Noldorinlet me paste you the email20:58
Noldorinmaybe you can make heads and tails of it :P20:58
Noldorinlifeless: http://pastebin.ca/154194120:59
lifelessok, they acknowledge that it happens.21:01
lifelessRFC 959 section 4.221:01
jamvila: so interestingly, it is always 25 bytes21:01
jamand seems to be a content boundary:21:01
jam'\r\n--471e8a95308203bb4--\r\n'21:01
lifelesstheir server must send a 1xx status, not 2xx if it hasn't completed the operation.21:02
lifelessIts a defect. Its not RFC conformant.21:02
jamlifeless: of course, we might not be paying attention to 1xx...21:02
lifelessjam: http://launchpadlibrarian.net/30593974/trace.txt21:02
lifelesswireshark FTW21:02
vilalifeless: you're replying to jam ?21:03
lifelessvila: to Noldorin21:03
jamlifeless: yep, I see your point21:03
lifelessvila: bug 41224421:03
ubottuLaunchpad bug 412244 in bzr "unlock fails to unlock over FTP with Windows IIS6 FTP server which keeps files after delete" [Medium,Confirmed] https://launchpad.net/bugs/41224421:03
lifelessvila: it will make you laugh, it will make you cry.21:03
vilalifeless: ha right, I read that a couple of minutes ago, the server that is able to tell us about deleted files right ?21:03
jamIIS6 FTP basically says "ok, that is deleted" but then you can go back and read the file at the deleted location.21:03
jammore importantly renaming the directory21:04
lifelessit also says 'ok thats renamed' and you can read from the old path21:04
jamleaves the file in places so a future rename to fails21:04
jammv lock broken; mv new-lock lock # fails21:04
lifelessNoldorin: so, they acknowledge that it happens and then say to use filezilla; and that their linux platform is better. (They are right, it is :P).21:04
vilalifeless: your comments sounded so much like what I wanted to answer jam :)21:04
vilajam: so, about the boudaries, wireshark FTW :)21:04
vilaboundaries21:05
lifelessNoldorin: its clearly in violation of the RFC. They can open a ticket with Microsoft.21:05
* lifeless is sorely tempted to blog about this21:05
lifelessoooh look, sunshine21:06
lifelessnot a lot, but better than full dark21:07
lifelessSamB: so the reason cross format fetching has to repack is that the data is in the reverse order needed.21:08
lifelessSamB: 2a compresses new->old21:08
lifelessdata conversion is old->new21:08
Noldorinlifeless: yeah, i agree. i somehow suspect they would just tell me to open the ticket however, no?21:09
lifeless[theres more complexity under the hood too, but thats the basic driver]21:09
jamvila: anyway, it seems that we have a trailing content boundary that is getting 'silently discarded'21:09
jamvila: not worth that to me :)21:09
jamjust a curiosity at this point21:09
lifelessNoldorin: you don't have the windows CAL or server licence.21:09
vilajam: same here :D21:09
lifelessNoldorin: so you can't open the ticket.21:09
lifelessI've dealt with MS support before. They are good - you pay money [quite a bit :P] and then work through the problem.21:10
Noldorinlifeless: heh, good point.21:11
lifelessthis /may/ be your ISP's deployment. Or it may be an MS bug.21:11
jamlifeless: what about your patch to repack the last pack file that was created. That only triggers on cross-format fetches?21:11
lifelessyou have no visibility into the infrastructure.21:11
SamBlifeless: oh.21:11
lifelessjam: yes, only cross format, and only the new  pack(s) written in that fetch.21:12
SamBlifeless: but does it have to repack everything into a gigantic pack?21:12
lifelessSamB: when we do data conversion we only repack the data that has been converted. We leave existing data alone.21:12
jamlifeless: right. Just thinking that repacking the new pack would also be a way to handle the 'fetch from a non-optimal source'21:12
jambut I think it is probably far too much data :)21:12
lifelessSamB: so we don't actually create a gigantic pack (unless it is the initial fetch).21:12
lifelessSamB: and on the initial fetch a single large pack is the best possible size and performance to have - its desirable.21:13
SamBlifeless: how many weeks has this been the case for?21:13
lifelessI'd have to check NEWS :P21:13
lifelessjam: Yeah, it cross my mind too while we've been chatting. The problem I think is that its too global; we don't need to be global for this problem so lets not.21:14
lifelessjam: dunno if you saw, but spiv has a 5% faster tree build by grouping IO21:17
lifelesson lp trees21:18
jamlifeless: I had not seen anything to that effect yet. Sounds good21:18
SamBwhere does one get a bzr-gtk that doesn't freak out about bzr >=1.18~ ?21:19
lifeless19:54 < spiv> Ooh, this groupcompress batching fix for remote IO also improves build-tree time for Launchpad by ~5%.21:19
lifeless19:54 < spiv> I was worried the complexity might have the opposite effect, apparently not :)21:19
Noldorinlifeless: ah, thanks for updating the bug report :)21:24
Noldorini'll link that in my next email to the admin21:24
lifelessNoldorin: the hidden subtext I get from the admin is that they don't think they can fix the windows service.21:25
Noldorinlifeless: i got the same impression21:25
lifelessThey are wrong though - its only software.21:25
Noldorinthey see a deep and most likely difficult problem, and they don't want to get involved21:25
Noldorinmm21:25
SamBwhat do you mean by "fix the windows service"?21:26
jamvila: did you change something recently with "bzr selftest -s bt" ?21:26
jamBecause:21:26
lifelessjam: I'm not convinced that switching to unordered is wise21:26
jam wbzr selftest -s bzrlib.tests.test_group runs 38 tests21:26
jamwbzr selftest -s bt.test_group21:26
jamruns 0921:26
jamsorry21:26
jamruns 021:26
jamlifeless: I think it is the best option *today*21:26
jamas sorting only introduces fragmentation21:27
jamI'm working on something better21:27
vilajam: wow, no, try adding --list21:27
jambut I expect it to take a while21:27
jamvila: no test21:27
jamno tests from --list21:27
jamnote that if I add a syntax error21:27
lifelessjam: ah, I see it.21:27
jamI can see that the file is getting loaded21:27
lifelessjam: I'll fix. una momento21:27
jamlifeless: something to do with your recent test speedups?21:27
kikohey21:28
vilajam: I guess so21:28
kikolifeless, jam: any news on 1.18?21:28
jamkiko: released waiting for installers to be built21:28
SamBskipping the running of the tests is NOT a valid method of speeding up the tests ;-P21:28
jamI build the win32 ones21:28
jamNot sure about Mac status, etc.21:28
kikojam, awesome -- are packages in PPA or are we waiting to upload?21:29
jamkiko: I believe johnf does the ppa packages now21:29
jamand I don't see them yet21:29
lifelessjam: test-start-with branch pushing now21:30
lifelessjohnf does them, and hes packaging more plugins now21:30
kikookay cool21:30
lifelesshe needs to wait for all the versioned locked plugins to have releases done before he can push any binaries21:31
lifelessor else apt throws a tizzy and things go south21:31
lifelessthats bzrtools, bzr-svn and bzr-gtk21:31
jamand probably qbzr :)21:31
jamthough someone else packages those21:31
lifelessjam: its pushd21:32
jamlifeless: where?21:33
lifelesstest-start-with21:33
jamlifeless: also, the *old* topo sort was not deterministic either, I thought21:33
lifelesslp:~lifeless/bzr/test-start-with that is21:33
jamsince its starting point was determined to be "dict.popitem()"21:33
lifelessjam: well, feel free to reword :)21:34
kikolifeless, ah, awesome to know. thanks!21:34
lifelesswe need a repeatable sort for gc-compress or we'll get pack churn21:34
jamlifeless: yeah, I'm working on that now21:34
lifelesskiko: so to make the PPA more usable we're doing the following on releases now:21:34
lifeless - make a source tarball21:34
lifeless - tell plugin folk21:34
lifeless - wait21:34
lifeless - make binaries once plugins are released21:34
lifeless - announce to the world21:34
kikoI think we can solve this by allowing a configurable expiration time -- is that correct still cprov?21:35
lifelessfolk running nightlies will still suffer, but thats less solvable by process, and more by faster-plugin-updates21:35
lifelesspossibly nightlies should disable version locks ;)21:35
lifelesskiko: ECHANNEL.21:35
cprovkiko: supersede-date, maybe ? (when binaries are excluded from the repo indexes)21:36
lifelessoh, hmm.21:36
kikocprov, yeah, that's what I'm htinking too21:36
lifelessthe apt thing is twofold though21:36
lifelessthere is the fact that old binaries go, and we've filed a bug on that ages back :)21:36
lifelessbut the bigger problem is the version-lock that various plugins have21:36
lifelesswhich makes it an all-or-nothing upgrade step21:37
cprovwhat's the problem with having a bzr meta-package (as ubuntu does for linux) ?21:37
cprovsomeone suggested it in the past, but I honestly don't remember the arguments against it.21:37
lifelesscprov: I don't quite see how that helps.21:37
lifeless(ignoring transition issues and the fact that installing bzr shouldn't depend: on recommends-and-suggests)21:38
vilaSamB: Just pushed one on trunk (bxt-gtk)21:38
SamBvila: wonder how long until it shows up in one of my apt sources ...21:39
cprovlifeless: uhm, bzr doesn't really have a slow-moving ABI on which plugins depend on ...21:39
vilaSamB: far longer as a release is needed for that :-/21:39
SamB'kay ...21:40
vilaSamB: I'll see what I can do tomorrow21:40
cprovlifeless: you are right, meta-packages doesn't make sense in this scenario, the relation bzr <=> plugins is 1:1, right ?21:41
lifelesscprov: can you unpack that a bit; I think I know what you mean but I'm not sure I do.21:41
cprovlifeless: version would be part of the source/binary name of bzr and its plugins.21:42
SamBvila: http://arcanux.org/lambdacats_3.html#entry921:42
lifelessbug 400009 just rolled past my screen :)21:42
ubottuLaunchpad bug 400009 in ubunet "I had a problem with... finding a tutorial for ubuntu one, particularly, understanding sharing with others." [Undecided,Fix released] https://launchpad.net/bugs/40000921:42
lifelesswe've come a long way since 121:42
lifelesscprov: so, some plugins work with any bzr version.21:43
lifelesscprov: others are API locked21:43
vilaSamB: ROTFL21:43
lifelessand others are weakly API locked in that they work with e.g. 1.14 or newer only.21:43
cprovlifeless: right, when the old bzr version vanish plugins with version lock breaks bzr upgrades. Is this what really happens ?21:44
cprovlifeless: while the desirable would be apt avoiding the upgrade until the suitable plugins show up ?21:45
SamBvila: Simon is the name of both of the lead developers of GHC (the Glasgow Haskell Compiler), but I suppose that's hardly important to the joke ;-)21:48
jamlifeless: please submit your patch :)21:48
lifelessjam: I did21:49
vilaHa ! GHC, acronym of the day, was wondering what it was a couple of hours ago, thanks :) (I ended up with Gnu Haskell Compiler, close enough :)21:49
jamlifeless: I meant to PQM, but perhaps you did that as well21:49
lifelessjam: launchpad processes mail via cron, which is slow compared to listening on a socket21:49
lifelessjam: oh, pqm - will do once my current one lands21:49
jamlifeless: I saw your submission, and I approved it :)21:50
lifelessjam: in lsprof21:55
jam?21:55
SamBvila: where did you encounter it then?21:55
lifeless_g_threadmap is only global so that the thread_profile can use it, right?21:55
vilaSamB: while toying with an OS that insist about recompiling anything and everything everytime you breath :)21:57
jamlifeless: I assume it is to pass state between 'profile()' and _thread_profile21:57
SamBvila: what, Gentoo^10?21:57
jamlifeless: so... yes21:57
vilaSamB: :)21:57
lifelessjam: same conclusion I came to.21:58
lifeless*boom bye bye baby*21:58
=== thumper-zzz is now known as thumper
=== raimue is now known as Raim
ohmyHello22:26
g0nzal0hi22:26
g0nzal0this seems to be happening to me: https://bugs.launchpad.net/bzr-svn/+bug/41311322:27
ubottuLaunchpad bug 413113 in bzr-svn "SubversionException: ('Svndiff contains a too-large window', 185001)" [Undecided,New]22:27
g0nzal0is there a workaround?22:27
ohmyhapy with bzr abd apedt to command line, i'm using bzr since months a go and i have to work with some windows developers and hince the ethernel question : it"s a very cool tool but what about user interface22:27
g0nzal0ohmy, http://bazaar-vcs.org/BzrPlugins#GUI%20(Graphical%20User%20Interfaces%20for%20Bazaar)22:28
ohmyi would like to know (i have tried most of the tools provided in bzr web pages) if there are real (even comercial) gui frontend with full feature set, i mean, most of the persons i'm working with have a nice experience with bitkeeper (excellent gui) cm synergy and some already habituated with svn22:29
thumperis format "2a" going to become "2" before 2.0?22:30
thumperto me "2a" is 2-alpha, which it was at the time22:30
thumperbut probably not the best name for a default format :)22:30
lifelessthumper: I feel the same way.22:30
lifelessthumper: I lost debating this with poolie22:31
thumperpoolie disagreed?22:31
abentleythumper, lifeless: I agree with you.22:32
ohmyas i have said, for me command line is all what any serious developer/integrator need to use to work properly, but i didnt succeed to find anything similar to kdesvn for example, some tools only show only branches / diff ..22:32
jamthumper: we can't change the disk string without causing everyone to upgrade22:35
jampotentially we could change the command line string, though22:35
jampersonally 'a' was just the first letter, and not representing 'alpha'22:35
lifelessthumper: poolie chose 2a22:36
thumperjam: but there is common perception that a means alpha, so 2a will be thought of as 2-alpha22:36
thumperno matter what _we_ think22:36
lifelessour docs say we should have done 1.1622:36
lifelesswhich would confuse people in a different way22:36
lifeless'what is 1.16 and why does 2.0 use it'22:36
jamlifeless: how 'stable' do you think the sort order needs to be ?22:38
jamWe can have it "stable such that 2 people with the same graph get the same result"22:38
jamor "stable such that people with similar graphs" get the same "subsets"22:38
jamthe problem is that not even 'merge_sort' is stable when you add extra keys which may become the new tips22:39
lifelessjam: lets think about the impact. in small branches, well who cares.22:39
lifelessin large branches, a order-change will cause group recompression in the middle of an existing large pack22:40
lifelessso we'll care mode22:40
lifeless*more*22:40
jamlifeless: so this is mostly about whether 'bzr pack' considers a pack to already be optimal?22:42
jamconsider that if we fetched in gc-optimal ordering, but didn't recombine groups22:42
lifelessright22:42
jamthe ordering could match exactly, but the contents would be poorly packed22:42
lifelessso we're fixing the recombine22:42
=== fta_ is now known as fta
lifelessI think its ok if similar graphs get the same long runs internall22:43
lifelessthe key thing you're saying is 'if you don't start at the edge, the sort can be different'22:44
lifelessbut I thought that gc-optimal already required that we start at the edge ?22:44
jamlifeless: so we are sorting an arbitrary graph with multiple heads22:45
jamand compare that with another graph22:45
jamthat adds 1 node22:45
jamwhich is a new head22:45
lifelessso, the partial ordering of heads.22:45
lifelesshas to be partial by definition, I think.22:46
lifelessbut it would be good to say that three heads22:46
lifelessA B C22:46
lifelessalways come out A B C22:46
jamhttp://paste.ubuntu.com/258946/22:46
lifelesswouldn't it?22:46
jamlifeless: sure, but you can have children of them which then become D E F, or alternatively F E D22:47
jamslightly illustrated in the paste22:47
lifelessso D is a child of A?22:47
lifeless'newer than A'22:47
jamD is a child of A22:47
jammy text has a bogosity22:47
jambut yes, time goes down22:47
mathbrHi, has anyone ever encountered this one: http://pastebin.com/m23f28c8322:47
mathbrOnly invoking "diff" and "status"…22:47
lifelessthen we want DA CB22:47
lifelessor CB DA22:47
lifelessdon't we? for idea compression...22:48
jamhttp://paste.ubuntu.com/258947/22:48
lifelessmathbr: hmmm22:48
lifelessmathbr: run 'bzr check' please22:48
jamlifeless: isn't that the "os.listdir()" returns a filename for which "os.lstat()" claims it doesn't exist?22:49
jam(using the POSIX functions directly, of course)22:49
jamso readdir(), and lstat, IIRC22:49
jamlifeless: I believe you are right about DA CB or CB DA22:49
mathbrlifeless: This one now: http://pastebin.com/m3515a14e22:50
jammy specific point was that whether D or C comes first is fairly independent of which of A and B came first last time22:50
mathbrI indeed removed a directory by hand after bzr told me it couldn’t because there were files left in a directory22:50
mathbrs/a/that22:50
jamlifeless: so the test I was writing was something like this:22:54
jamhttp://paste.ubuntu.com/258949/22:54
lifelessjam: yes thats true. we'd have to define a sort on the roots of the graph22:54
jamThe current implementation is 'depth first'22:54
jamwhich is the first => E D F B C A22:54
jamwe could do 'layer by layer'22:54
jamand get something like the second22:54
jamwhich seems to have the advantage that "B C D A" is preserved after adding nodes22:55
jamthough I'm pretty sure with arbitrary changes I can break that22:55
lifelessgits approach of graph depth makes a great deal of sense to me; the problem is changing heads in that definition.22:56
lifelessso you're right to say 'what is this really about'22:57
jamthe idea of 'depth first' stability, though, seems to lead to better clustering (i think)22:58
jamhttp://paste.ubuntu.com/258954/22:58
lifelessperhaps this is a better way to phrase the problem/challenge:22:58
lifeless - gc-optimal is not a fixed order on nodes; its a fixed _goal_ of data compression22:58
jameven if it isn't "as stable" it is more likely to bring parents and children closer to each other22:59
lifeless - gc optimal reading from existing groups should be permitted to preserve the groups, as long as it shoves good-to-have-together groups together.22:59
lifeless- the overall goal is to make incremental operations like push/pull/autopack behave well; unneeded recompression and fragmentation is what we're seeing at the moment23:00
lifelessgaryvdm: hi gary. Yes, its 8am here :P23:00
jamyou know... we could use gdfo, and sort it by (gdfo, revision_id)... I would think that would handle the stability fairly well, at the expense of not being the best compression order.23:00
garyvdmHi lifeless.23:01
garyvdmHi jam23:01
jamhi garyvdm23:01
mathbrI did a clean checkout now since I don’t really have the time to investigate this bug. The backtraces are up for one month. Bye23:04
itistodayis there a way to easily have conflicts automatically resolved?23:08
itistodayi.e. say that I just want to get rid of the changes I have in my working dir, and keep the ones from the result of updating the tree23:08
lifelessbzr revert23:09
itistodaylifeless: thanks!23:10
jamlifeless: so my first goal is to make it stable wrt dict ordering23:10
jamas that is the major limitation of the algorithm today23:10
jamsince python dict ordering can depend on the order the dict was populated23:10
jam(from collisions, etc)23:10
pooliehi jam, thumper, lifeless23:11
jamhi poolie23:11
jamready for a call today?23:11
poolieyes that'd be good23:11
poolieregarding 2a, a is a sequence letter, not 'alpha'23:11
pooliei realize people may read it the other way23:11
pooliebut23:11
pooliei'm not going to change it now23:12
pooliewe had a thread about this and nobody seemed to have a better idea that met the requirements23:12
pooliethe main one being that it be 2-something and not look like a release number23:12
jampoolie: we could just call it '--2' on the command line and worry about incrementing when we actually release the next repo format23:12
pooliewe could say just '2' means the latest format 2 or something23:13
jampoolie: do you want to just skype me directly?23:15
poolieheh, jinx23:15
pooliei can't see you online...23:15
jamI might have accidentally stopped it.23:18
jamlooks like23:18
jamtry now23:18
jam"Contact can only receive IMs" ?23:19
=== tchan1 is now known as tchan
lifelesspoolie: are you still on the phone?23:49
lifelessfor bug 393677 I think we should just error cleanly. 'you need to upgrade'.23:49
ubottuLaunchpad bug 393677 in bzr "pushing a 1.9 branch stacked on a 2a branch causes problems" [High,Confirmed] https://launchpad.net/bugs/39367723:49
lifelesshaving the branch someone pushes be something they cannot bzr pull from would just be _weird_23:50
lifelessor alternatively, not error, and just push a complete branch.23:50
lifelessfooding, back soon23:52
poolielifeless: i am23:56
pooliethat sounds reasonable23:56
pooliejam: still here?23:56

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