[00:00] got a minute? [00:00] beuno: adding + and - would be a prereq, I don't know if it sufficient [00:00] oh hello jam [00:05] beuno: sure, what should I look at ? [00:06] lifeless, have the mockups for loggerhead landed in your email? [00:18] beuno: newer ones? [00:19] lifeless, yes, a week ago, max [00:19] the diff view, specifically [00:19] the ones via joey ? [00:19] yeao [00:19] *yeap [00:20] yes, I have it [00:21] good, well, how does it look to you? [00:21] lifeless: can I merge my loom status branch? [00:21] I am able to tell the red and green apart [00:21] ah, yay! :) [00:22] thanks lifeless [00:22] however, I'm only red-green colour insensitive [00:22] there are emulators for all colourblindness types [00:22] if you haven't, you should simply view the page view them [00:22] *via* [00:22] yes, I'll make sure we test it with some tool (GIMP seems to have something that does that) [00:23] but I think the reason is solely that red is left and green is right [00:23] any change on one side is one colour in that layout [00:23] so you could use one colour 'change from this side' [00:23] :P [00:24] jml: did it get the tick ? [00:24] hrm, I wonder if it would be too invasive to cross out the actual text being deleted [00:24] lifeless: it hasn't got any reply yet that I've seen [00:25] I have a queue for loom reviews [00:25] two for aaron [00:25] and that one needs its final pass I think [00:25] and 2 pqm branches to me [00:25] *merge* [00:27] 'evening beuno, jml, lifeless [00:27] lifeless: any news on bzr-gtk pqm and/or a shallow-branches+bzr.dev merge? [00:27] jelmer: hello. [00:27] hey jelmer [00:27] lifeless: that was the tick right? [00:28] jml: I think thats what I mean [00:28] :) === mark1 is now known as markh [01:18] lifeless: ping [01:19] hi [01:28] lifeless: what's the current status of shallow branches? Planned for 1.7 ? [01:28] jelmer: 1.6 hopefull [01:29] jelmer: igc has posted a merged copy [01:29] lifeless: ah, I must've missed that [01:29] 17:28 < igc> current state of merging bzr.dev into the stacked branches loom is now pushed to http://people.ubuntu.com/~ianc/bzr/shallow-branch/ [01:29] lifeless: thanks, I'll see if I can get bzr-svn to implement it then or at least cope with the new API :-) [01:30] jelmer: cool [01:31] jelmer: ping me with questions [01:31] jelmer: I'm sure there will be various [01:31] lifeless: will do [01:35] lifeless: also, the bzr-gtk pqm: should I keep asking you about it or would it just be easier to set up something outside of the core bzr infrastructure ? [01:36] I will mail you today a set of questions [01:36] then you reply and I forward to RT [01:37] lifeless: ah, cool - thanks again :-) [01:38] I've been meaning to make up good answers myself [01:38] but clearly that isn't working [01:40] ah, ok [02:13] "bzr missing" to a launchpad url isn't really fast [02:14] Pieter: the Launchpad code server is running much slower than normal at the moment. We're trying to fix it now. [02:15] ah ok :) [02:15] jml: have you announced this anywhere? [02:16] lifeless: no. just about to. [02:16] jml: /topic here and /launchpad is my normal first port of call [02:16] jml: as soon as I know there is a problem === jml changed the topic of #bzr to: Bazaar version control system | http://bazaar-vcs.org | please test 1.6beta1 | http://irclogs.ubuntu.com/ | http://planet.bazaar-vcs.org/ | bazaar.launchpad.net running slower than usual, we're fixing it now [02:21] (also, put it at the left, GUI clients hide the right hand edge) === jml changed the topic of #bzr to: Bazaar version control system | http://bazaar-vcs.org | please test 1.6beta1 | http://irclogs.ubuntu.com/ | http://planet.bazaar-vcs.org/ [02:53] igc: ping === gotgenes_ is now known as gotgenes [03:58] hi all [03:58] thumper: pong [04:11] igc: quick call? [04:11] thumper: sure [04:11] skype is ok if you wish [04:14] jam: still here? [04:14] jam: why would cvsps-import hang on 'creating a dump' [04:15] stracing the cvps process its stuck in read(), cvs is stuck in select .. [04:30] lifeless: I couldn't tell you for sure, if it was up to me, I would run cvsps manually and pass cvsps-import the dumpfile [04:30] I've found it [04:30] write(4, "Argument gnash\n", 15) = 15 [04:30] write(4, "rlog\n", 5) = 5 [04:30] read(5, "E cvs rlog: Logging gnash\n", 4096) = 26 [04:30] read(5, "E cvs [rlog aborted]: cannot stat /var/lock/cvs/sources/gnash: No such file or directory\n", 4096) = 89 [04:30] read(5, "error \n", 4096) = 8 [04:31] cvsps doesn't handle rlog failures [04:31] at least the version on tungsten [04:31] I'm going to fix the modules file and note this somewhere [04:31] for cscvs when we get a cvs tarball it manually creates a clean cvs configuration [04:32] I think cvsps-import needs to do the same [04:33] jam: I have another question now though :P [04:33] have you seen [04:33] request for non-existent rev 1.6573 in file ChangeLog [04:33] before ? [04:34] there is such a version [04:34] at least in the commit info metadata [04:35] and in the main content too [04:36] lifeless: is the content considered deleted, etc though? [04:36] or is there a Attic file hiding somewhere? [04:36] do you mean is it flagged -k ? [04:36] this file is not in the Attic [04:36] nor is it shadowed in the attic [04:38] corrupt ~/.cvsps/#home#bzr_conversion#conversions#gnash#gnash-cvs#gnash file [04:39] and here I thought cvsps was stateless; its not! hahaha cscvs sounds more and more attractive to me ;P [04:40] haha [04:40] lifeless: Well, if it had been public, and someone else had been willing to work on it, I probably wouldn't have used cvsps either [04:40] this stuff was started 2-ish years ago [04:40] I know :) [04:41] I wasn't intending criciscm [04:54] spiv: is there a urlutils.unescape that doesn't go to unicode? [04:54] spiv: I really want to just unescape :P [04:55] nvm, I'll use urllib directly === BasicPRO is now known as BasicOSX [05:43] * igc pick up kids [06:43] lifeless: hi, still around? [06:44] yes the diet hasn't worked yet [06:44] heh [06:44] i'm i'm working on test_get_texts_eol_variation again [06:46] it's failing in a way i don't remember seeing last week [06:46] http://pastebin.ubuntu.com/16771/ [06:47] you don't need to work on it i think i just need a teddybear [06:49] * abentley has disconcerting visions of poolie using lifeless as a teddy bear [06:49] hm ok maybe it's losing a line-ending therefore the serialized form is wrong [06:54] that indicates that a full text or delta was written as [06:54] prefix\n [06:54] content [06:54] suffix\n [06:55] one likely cause is the initial bug: a basis text with an unchanged line doesn't have the \n for the internal canonical form and thus is copied across corrupting the full text at a snapshot point [06:56] right [06:56] so taking out the cleanup_eol call, as my original patch was going to do [06:57] does fix that, but causes some failures in TestKnitMerge, a bit surprisingly [06:57] maybe also due to aliasing bugs... [06:59] what are the failures? incorrect assignment of annotations? [07:01] lifeless: I need your help if you have a moment. See http://rafb.net/p/Th8E4140.html [07:01] That's the source of the broken test [07:01] ah ok [07:02] it's doing an annotation-based knit and the final newline is incorrect [07:02] basically get_ancestry (revision_id) was throwing NoSuchRevision and I need to do the same in your replacement code [07:04] lifeless: if found_ids is the empty set, can I then raise NoSuchRevision? [07:04] igc: thats what was coming to my mind [07:04] igc: please be sure to commit this to the appropriate thread, not just the top of the stack :) [07:04] yay [07:04] lifeless: of course [07:04] poolie: found a matching bug elsewhere? [07:05] yep, similar bug in handling annotated content [07:05] igc: ;) as you haven't been working with looms I'm being cautious is all [07:05] lifeless: no problems. I'll try that anyhow. [07:15] lifeless: no luck with that ... [07:16] igc: what thread is this? [07:16] both found_ids and result_set = frozenset(['pizza']) [07:16] is pizza what is meant to be missing? [07:16] StackableBranch [07:16] yep [07:16] it's the revision-id :-) [07:16] ok [07:17] you need to unpack that _breadth_first_searcher use [07:17] there are two next() methods on BFS [07:17] one returns the ids [07:17] one checks for ghosts and returns (present, absent) [07:17] you need to use the latter for the first step [07:17] and then you can switch back to the former for the rest of history [07:17] what's the chain(*...) about? [07:18] pydoc itertools.chain [07:18] I read that [07:18] :) [07:18] ok, uhm, at this point I think its easier for me to do it [07:18] update for #234748 sent if someone wants to look at it [07:18] or at least, I can't do what I need to do know if what I've described isn't enough for you to be unblocked [07:19] (my head is full of cotton wool - ask jml what I sounded like on the phone) [07:19] lifeless: no - I'll do it [07:19] you're busy enough [07:19] hmm. pizza *is* missing. [07:19] basically for the first step use the more complex api on the searcher [07:19] ok [07:19] if you get a ghost back raise [07:20] then you can use the pithy logic for the rest [07:20] ok [07:22] lifeless: would you please send your 'add_lines' patch to pqm, it looks good to me too [07:22] poolie: I was expecting you to merge it into your branch [07:22] poolie: because my fix wasn't necessarily good standalone foo; and they are really about the same stuff [07:23] oh ok [07:23] i can do that [07:24] e.g. I have a hacky workaround [07:24] the test in mine is good to have, the extra assertion is good, but the [07:25] if thing not ending in newline give it one [07:25] that code shouldn't have to exist [07:25] jml: is tonight or thurs better for you ? [07:26] lifeless: tonight has become impossible since I wrote the email. [07:26] sadness [07:26] snort [07:26] (not at you) [07:27] also, ECHANNEL, fixed [07:40] lifeless: ok i merged your change into mine [07:41] cool, thanks [07:41] every thing passes [07:41] um [07:41] and you removed that hacky thing of mine ? [07:41] i think the situation i was just talking about before will obviate the need for the "add a newline back in" [07:41] not yet [07:41] would like to, i agree it's gross [07:42] can you read my patch and see if you agree it will do instead? [07:42] url? [07:44] http://bundlebuggy.aaronbentley.com/request/%3Ce01316480806032317p11b6b885n396cb037dc55c001%40mail.gmail.com%3E [07:45] jml: latin login support for hardy: https://edge.launchpad.net/~lifeless/+archive/+builds [07:46] poolie: your XXX: in check will spuriously conflict with my mega branch [07:46] kk [07:46] lifeless: sweet. [07:46] well it should be easy to resolve :) [07:46] * jml corrects himself [07:46] lifeless: bonus! [07:47] ridere ex [07:48] (ewww, I know thats wrong) [07:51] poolie: did you ring me? [07:51] nup [07:59] poolie: the reasons are not historical, they are current [07:59] poolie: the reason is that this layout is the internal form used on disk by knits, so its more efficient to keep it in this form during all transformations until we need to hand it to a user [08:00] poolie: your repr is buggy; if you really want a naked except be sure to not catch KeyboardInterrupt and SystemExit, but I question wanting that at all [08:01] poolie: finally, yes I think you should be able to remove my hack with your patch present [08:02] though I wonder perhaps if we're unwinding a performance tweak (presumably johns, he was focused on annotate) and whether this needs verification in that sense) [08:03] lifeless: i think naked except doesn't catch them, does it? [08:03] it catches everything [08:03] the general rule for it is 'it is never correct to use it' [08:03] seeing it -> red flag [08:03] except when it is :) [08:04] but the flag is still there. [08:04] jml: thats why its a general rule ;P [08:06] ok, catching Exception lets it pass through but bare except does not [08:06] i thought they were the same [08:07] I'm still unclear why you want to catch Exception [08:07] what errors are you expecting [08:07] i want to avoid an error in repr masking the real underlying exception [08:07] poolie: There's a BaseException now [08:08] poolie: I can't see anything that can error there [08:08] the particular case that has bitten several times is when the object is not fully initialized [08:09] for example if the transport doesn't exist or isn't working yet [08:09] on *KnitAccess* ?! [08:09] poolie: it's new in 2.5. SystemExit and KeyboardInterrupt in particular are now based from BaseException rather than Exception [08:09] i sent a patch proposing that we should as a general pattern we should make reprs defensive [08:09] it is not about this specific case [08:09] oh [08:09] It smells to me. I'll need to think about it I guess [08:10] i agree that catching interrupts is bad [08:10] poolie: the other thing "except Exception:" won't catch is string exceptions. Bare except always catches everything. [08:10] it should at most be 'except Exception' [08:11] it smells to me of bug masking [08:11] (trying to hunt down my dislike of this concept) [08:12] poolie: regarding reprs, another approach is to define a safe_repr method. [08:12] Well, bugs in __repr__ are generally unimportant bugs. We use __repr__ for debugging rather than user output (except maybe in bzrlib.errors I guess). [08:13] jml, yes, we could call that from code that might be handling broken objects... [08:13] spiv, yes, that was my reasoning; i would rather get teh real error and only a faint indication there's a problem in repr than vice versa [08:13] spiv: not bugs in __repr__. bugs in other code, both design and simple omissions etc which don't get diagnosed and fixed as such because they are only percieved as 'makes repr print 'unprintable'' [08:13] It certainly seems like a poor tradeoff if a bug in writing to a rarely-read log file (the ~/.bzr.log) causes a more serious problem. [08:13] perhaps just catching AttributeError would be enough. [08:14] spiv: For me, I'd rather know that something deep is wrong and have to go fix it than have a repr that hides that from me [08:14] lifeless: well, if the bugs are in the category of "an incompletely initialized object can be seen by other code" it's pretty hard to fix/avoid in python [08:15] poolie: __init__ is relatively easy to make very robust [08:15] lifeless: well, in debugging situations you can still sometimes see half-initialised objects. [08:15] lifeless: e.g. when attaching a gdb, or looking at gc.get_objects() when looking for a memory leak. [08:16] well, those are perhaps edge cases [08:16] That said, it hasn't often happened to me. [08:16] I haven't seen it happen ever to me [08:16] i guess we could require __init__ always create all attributes with None first before doing anything that could possibly fai [08:16] or do them on the class... [08:16] poolie: does this happen often to you ? [08:16] a few times [08:17] arch [08:17] is it usually on code you are crafting, or when diagnosing an existing bug ? [08:17] i have to say the absence of reprs altogether annoys me more than this [08:17] oops [08:17] the second [08:17] hello :) [08:18] poolie: I think we have quite different debugging styles; this may cause you to want a smoother repr facility [08:19] possibly [08:19] poolie: also, I'd rather than we make __init__ on objects which are fragile in this way for you be cleaner, than use naked exceptions [08:19] i'm not talking about just interactive debugging but also tracebacks and test failures [08:19] poolie: yes thats the broad category of 'debugging styles' I was referring to [08:20] sure, if this ever trips it is in a senes a bug [08:20] I have some code that enhances the default traceback which I keep meaning to tidy up and submit [08:20] however, i'm concerned with catching information on first failure as much as possible [08:20] therefore catching the most important error [08:20] which is not really that __init__ has an impossible-to-totally-avoid bug [08:21] well [08:21] s/really/usually [08:21] I think there are other approaches to do that [08:21] an object graph walk for instance will gather much more data [08:21] and can be made much more robust in general [08:22] as well as not requiring scatterings of partial-object-dump code in every class [08:22] walking the whole dir() of the classes? [08:23] objgrep ftw! [08:23] (your _KnitAccess repr is IMO hiding import data about its internals such as _need_to_create), and I often find that repr() functions bitrot, which is one reason I rarely add them - I can't depend on them so I don't [08:24] poolie: e.g. pickle to a text backend [08:24] Except that pickle isn't exactly robust. [08:24] which can be human read [08:24] spiv: 'e.g.' [08:25] lifeless: sure, but solutions that are theoretical are less helpful than concrete ones :) [08:26] spiv: well, concretely - walk the __dict__ [08:26] (pickle in particular is even more sensitive to the exact unexpected-object-state problem than repr) [08:26] spiv: you could always post process the pickle into XML [08:26] oh wait, this isn't #zope [08:26] ok this is definitely a difference in debugging style [08:26] i am looknig for a hint as to what it is,not the whole details [08:27] mwh i think just complained that one of them was very big [08:27] Inventory specifically I believe [08:27] it prints its content [08:27] (which I find useful if I am going to poke at an inventory) [08:28] lifeless: it sounds like you're suggesting an alternative to gathering simple tracebacks. I don't think that's what poolie is talking about; he's happy with simple tracebacks, he just wants to make sure that generating them doesn't occasionally fall over and lose the original error. [08:28] not so good if someone gets a traceback contaninig one on a real tree [08:29] poolie: I would argue its quite useful actually, it has enough to reconstruct most if not all of the inventory here and check it for consistency [08:29] not that we've written a parser [08:29] Having richer debug tools than tracebacks could be useful, but I think is solving a different problem. [08:29] spiv: sure, but it comes back to debugging style I think [08:30] "what poolie is talking about" <-- correct [08:30] so I get that that is what poolie is talking about :) [08:30] anyhow... [08:30] i agree the bare except is too strong [08:31] and I've already put my vote in which is that I would rather we fix those bugs than add 4 lines of hand holding to every single repr; and if we're going to have repr's as a policy thing, not an occasionally useful thing, thats a whole lotta code [08:31] nix [08:32] any other comments on the meet of that patch? [08:32] meat* [08:32] * gour has problem switching buffers today [08:32] poolie: other than what I've raised I think its good [08:33] ok so [08:33] 1- correct comment about 'historical reasons' [08:34] 2- check with John about performance with this applied [08:35] 3-repr mumble mumble mumble [08:35] i'll take out the except; i'll leave the repr if that's ok with you [08:35] thats fine [08:35] thank you === gour is now known as gour|afk [08:36] ugh [08:36] so one way in which check is slow [08:36] is that it appears to check every text weave twice [08:37] i think so [08:37] not your XXX: [08:37] your XXX: refers to w.check() and for thing in w: [08:37] there are two code sites calling w.check() [08:38] oh well at least twice then [08:38] so there is w.check(), w.check() and for thing in w: [08:38] I think your XXX: is flawed because w.check() and for thing in w: can be different statements of correctness. [08:40] indeed, confirmed [08:40] i didn't mean strictly redundant [08:40] perhaps that is unclear [08:40] it is [08:40] also the code doesn't exist anymore here :) not in such a form anyhow [08:40] there is a lot of overlap but not complete overlap [08:41] otherwise i would have killed it already [08:41] check_one_rev also checks the revision tree [08:41] and the file text scan does that too [08:41] which is overlap [08:45] I'll be happy to give that comment a new home [08:45] if you want to make it a bit clearer that would help [08:46] hmm, interesting [08:46] tbh the only thing i am confident in is that check could be faster [08:46] I get 10 inconsistent parents for a test that wants 9 :P [08:46] :) [08:47] FWIW that comment is in the class of comments I don't make; because folk wanting random things to do go to the bugtracker, and folk optimising generally start with a profile :) [08:47] (But I don't object to them existing, just explaining why I tend not to make them) [08:48] ok [08:49] lifeless, poolie, jml: rev 3250 of http://people.ubuntu.com/~ianc/bzr/shallow-branch/ now passes all tests [08:50] igc: thanks!. the next thing for that loom is to start peeling off threads from the bottom and updating them with review comments and merging [08:50] I guess the next step is to break it up into different bits for review? [08:50] igc: it comes pre-broken :) [08:50] true [08:50] I think the bottom one - errors - is already merged [08:50] igc: all the threads up to and includin external_reference_tests should be reviewed-with-comments already [08:51] ah [08:51] that's good [08:51] I'll chase down those reviews [08:51] note that 'revno' doesn't really apply to a loom, you need the loom's revno, which isn't currently exposed :) [08:51] ok, that was weird: [08:51] bzr pull http://people.ubuntu.com/~ianc/bzr/shallow-branch/ [08:51] http://people.ubuntu.com/%7Eianc/bzr/shallow-branch is permanently redirected to http://people.ubuntu.com/~ianc/bzr/shallow-branch/ [08:52] note the / -> no / -> / [08:53] lifeless: have you already applied the reviewed comments for those early threads? [08:53] igc: I don't believe so [08:53] igc: I was already context switched [08:54] lifeless: so I'm happy to do that but ... [08:54] I'll then assume someone else - beyond you and I - will review the result [08:54] (I'm concerned about reviewing my own tweaks to your code if that makes sense) [08:55] if you did the original review I think its fine for me to ack the actual changes made [08:55] it does - bounce them to me for +1 [08:56] lifeless: so to confirm, I'll do a review of each thread and make the tweaks requested so far and my own [08:57] lifeless: you'll then approve the final result [08:57] i.e. review [08:57] and merge to bzr.dev [08:57] I'll approve, I'm happy for you to do the merges [08:57] :-) [08:58] the less I do until I finish the weave_store removal the better; I'm a single point of effort at the moment [08:58] np - I agree [08:59] check seems happy now (though I'm sure I have some tests to update :P) [09:00] * igc dinner [09:08] spiv: one reason knit reconcile is slow [09:08] spiv: it does list_dir() of the knits tree on every loop [09:08] lifeless: ouch [09:08] len(weave_store) -> much IO [09:09] Its the general side effect of len being unclear about implications [09:09] don't worry, I'm deleting the code :P [09:10] Deleting code is a wonderful thing. [09:10] * spiv heads off for a swim [09:25] Hello. I upgraded to 1.5 and bzr+ssh is broken. I keep getting "The server's host key is not cached in the registry": http://pastebin.com/d52c7ea5b [09:26] Where _is_ the registry? :) [09:28] on linux, ~/.ssh/host_keys I think [09:28] here's the Python traceback in case it's relevant: http://pastebin.com/d17386e [09:29] 'registry' is a bit of a vague term, unless its referring to windows, where it may well be in the registry somewhere ( the registry is a windows configuration database) [09:29] I don't see anything in the actual Windows registry [09:29] the install log didn't say it was doing anything in there anyways [09:30] In the previous version I was using, the host keys were in C:\Documents and Settings\user\Application Data\bazaar\2.0\ssh_host_keys [09:31] I'm afraid I don't know enough about windows ssh stuff these days to help you much :( [09:31] is it possible the server's host key changed after the recent ssl issue on debian machines? [09:32] nope [09:32] igc: errors is indeed merged - you can tell because diff -r thread: -> empty [09:33] in the previous version, bzr gave a nice informative error if the key was missing from ssh_host_keys. It told you to "try editing c:\document settings\etc" [09:33] this is rather cryptic [09:33] please do file a bug [09:33] I completely agree [09:33] OK :) [09:34] lifeless: does that mean I can switch to that thread (errors) and simply 'bzr combine-thread'? [09:34] yes [09:35] lifeless: Can I then just 'bzr record' or should merge up and record at the top? [09:36] (still trying to work out exactly when record is required) [09:36] igc: you record before you push [09:37] igc: probably in this case you would do a whole bunch of work and changes ;) [09:38] lifeless: thanks. record-before-push is easy to remember :-) [09:38] * igc really heads to dinner now [09:55] bug filed https://bugs.launchpad.net/bzr/+bug/237297 [09:55] Launchpad bug 237297 in bzr "Win32: The server's host key is not cached in the registry" [Undecided,New] [09:55] thanks [09:55] well I'm signing off [09:55] have a good one [09:55] currently working on fetch using the new apis === gour|afk is now known as gour === cprov is now known as cprov-lunch === thekorn_ is now known as thekorn [12:42] james_w: woah, `bzr bd --merge svn+ssh://svn.debian.org/svn/pkg-multimedia/unstable/ffmpeg/debian` is working now. that's what I call cool! :-) [12:43] siretart: yeah! [12:43] siretart: do you need --merge? [12:43] yes, I do need --merge. but most probably because svn:mergeWithUpstream is not set on svn+ssh://svn.debian.org/svn/pkg-multimedia/unstable/ffmpeg/debian [12:44] ah, ok. [12:44] james_w: btw, I just uploaded 0.95 to unstable [12:44] thanks :-)# [12:45] sorry that I missed your mail that time on the mailing list. I really should have uploaded it faster [12:45] no problem. [12:45] that's just too cool! :) - will save me tons of time in the debian games team === gour is now known as gour|lunch === gour|lunch is now known as gour [14:46] Gah, this doesn't make sense : I "bzr send"ed a bundle from my work desktop to home [14:55] ohh no, svn-1.5rc9...what the hell are they doing with 1.5 release [14:56] * gour is eager to see svn-1.5 to avoid patching old one for bzr-svn [15:03] gour: you could use one of the rc's or the svn svn :) [15:04] TFKyle: lazy [15:04] rc8 was supposed to be last one [15:05] rc1 was supposed to be the last one :) [15:05] btw, bzr-gtk-0.95 was not released? [15:05] Ok ; I committed a revision to a branch which is now one revision ahead of it's sibling ; I bundled that revision but it refuses to merge with the one-less-revision sibling [15:06] It says "bzr: ERROR: Revision {('adrian.wilkins@gmail.com-20080604133624-ybwe2ll9qc0x3vyt',)} not present in " The bundle correctly marks the parent revision as the same revid as the tip of the target... what's wrong ?? [15:08] pickscrape: something wrong with their workflow? maybe they should change VCS [15:11] awilkins: have you checked bugs at LP? [15:15] awilkins: there is a bug that gives that error message [15:15] it's to do with mixing knit and pack repos IIRC [15:17] james_w: They are both rich-root-pack [15:17] probably not that then [15:17] These are branches which are usually bound to my USB thumb [15:17] can you reproduce with two dummy branches? [15:17] * awilkins has a go [15:17] They are identical apart from this last revision [15:18] (well, should be) [15:18] https://bugs.edge.launchpad.net/bzr/+bug/177874 [15:18] Launchpad bug 177874 in bzr "upgrading to rich-root-pack fails" [Critical,Fix committed] [15:18] that's the one that I was referring to. [15:18] They started rich-root-pack because they are bzr-svn branches [15:21] Yup, reproducible, but I'm fairly sure the use case should work [15:22] I'm being *slightly* unorthodox with the way I'm constructing my bundle [15:22] Possible [15:22] what's the command line you used for send? [15:23] bzr send . -r -2.. --mail-to me@me.com [15:23] yeah, I think that's going to cause you trouble [15:24] using "." for submit branch is probably the cause [15:24] and I'm scared by "-r" to send as I know that it can often lead you to believe you are doing something that you aren't [15:25] bzr branch . ../xxx -r -2 [15:25] bzr send ../xxx --mail-to me@me.com [15:25] will probably get you the bundle that you want. [15:25] I'm going to do it and run the bundles through diff to see what changes [15:26] I still think mine should work.... saying "I don't have that revision" is true... BECAUSE IT's the frickin revision I want you to pulll..... [15:26] :-) [15:30] gour, the next version of bzr-svn will hopefully come with its own bindings for subversion [15:31] awilkins: I started working on a branch of bzr-svn that uses C bindings rather than pyrex ones [15:31] jelmer: Yipe [15:31] jelmer: Are they any easier? [15:32] yep, the bindings themselve are done now [15:33] Now working on fixing the remaining bugs [15:33] Oooh... bugs in the bindings, or the Python? [15:33] And do they work for 1.46? [15:33] james_w: That bundle differs by timstamp, target_branch and a large chunk of base64 [15:34] bugs in the bindings [15:34] yes, they work with 1.4.6 out of the box [15:34] Groovy ; let me know when you have a public branch and I'll test them on Win32 for you [15:35] wil do, thanks [15:35] jelmer: great news! depending on svn is...well.. [15:35] awilkins: the base64 is the revision data, is the change addition of lots of it in the new version? [15:35] gour, there will still be a dependency on svn itself, just not on a particular version of its python bindings [15:36] right, that's what i meant [15:36] james_w: Yes, the block is substantially longer [15:36] awilkins: it probably means that there is actually some revision data in it now, does it work if you pull/merge it now? [15:36] james_w: Yes, it pulls perfectly as I would have expected [15:37] jelmer: any eta? [15:37] james_w: I have another case to test... [15:37] gour: I suspect a couple of weeks [15:38] awilkins: do you understand the difference in changing the target branch? [15:38] jelmer: around 1.6 ;) [15:40] james_w: It doesn't feel intuitive to me that it would behave differently just because I specified the local branch as the submit branch [15:40] james_w: I can understand the mechanics of what is happening but not the difference in behaviour. [15:41] awilkins: the submit branch is the branch you intend it to be merged in to, by giving it a branch that already has the revision it decides that there are no revisions to send. === cprov-lunch is now known as cprov [15:43] abentley: Tryibg to trick again ? :) What is your current bzrtools HEAD: http://code.aaronbentley.com/bzr/bzrrepo/bzrtools/ or http://bazaar.launchpad.net/~abentley/bzrtools/bzrtools.dev/ ? [15:43] james_w: I suppose what I want is a a way to state "the target is this branch, but at -r -2" [15:44] abentley: ghaa, forget the first question, look only at the second :) [15:44] http://bazaar.launchpad.net/~abentley/bzrtools/bzrtools.dev/ [15:44] abentley: good, thanks [15:45] awilkins: I think that is reasonable. I don't know if it's currently possible, and if not whether we would want to make it possible. [15:45] james_w: I'm used to that sort of thing from SVN merges (which obviously don't have local repositories) where you can always quote a particilar revision in any given location URI [15:46] james_w: Which is why I'm being audacious enough to try it here, I suppose :_) [15:47] I suppose, actually, that would enable it (and probably some other uses) ; being able to specify revision as part of location [15:48] But it also makes certain things scarier because of the "local namespace for revision identifiers" paradigm that Bazaar has in contrast to centralised systems [16:48] why bzr-svn RevNo ar different from revision number of svn [16:48] ? [16:49] visik7: bzr revno's are branch-specific, svn revno's are repository-specific [16:49] Could someone explain what is meant by the server-side hooks that 1.4 provided initial code for? [16:49] I dunno what it means but ok [16:50] i.e. are they things like pre/post-commit etc? [16:50] pickscrape: there is only really 1, which is a post-changed-branch-tip [16:50] which should fire for push/pull/update/commit [16:50] but it is a Post fire [16:50] not a pre [16:51] So there's no way to (say) run a checker before the commit is allowed to take place? [16:51] One thing we do now (with svn/svk) is run php -l on all files affected by the commit to ensure that they all parse before the commit is allowed to take place. [16:52] visik7: In subversion you have multiple branches in one repository [16:52] awilkins: thanks for the patch on bzr-gtk bug 221414. are you planning on submitting a merge request for it? [16:52] Launchpad bug 221414 in bzr-gtk "gcommit: unknown error "float division"" [Undecided,New] https://launchpad.net/bugs/221414 [16:53] visik7: and the same namespace for revno is shared between the branches in that repository [16:54] pickscrape: afaik, there is no way to do that server side, it isn't hard to do client side [16:54] or via a bot which commits to the mainline [16:54] Like PQM? [16:54] pickscrape: right, though you could have much simpler requirements depending on what you need [16:55] certainly if people aren't using checkouts, server-side hooks don't help them either [16:55] (if they are only committing locally) [16:55] No, that's true too. Most people will be using checkouts, but it can't be depended on. [16:55] whooo [16:55] hi Pieter [16:55] bidirectional git<->bzr syncing [16:55] it works! [16:56] ;) [16:56] jelmer: in subversion ? [16:56] I was thinking of writing a custom plugin for our internal use whicch would do things like that. [16:56] pickscrape: that would certainly be my recommendation [16:56] if you wanted, the plugin could even 'auto-update' itself [16:56] We're also wanting commits to mainline to fire off a continuous integration system too. I should read on up what PQM can do really. [16:56] another thing that I've not undestood is why a pull doesn't work after bzr branch of an svn repo [16:57] pickscrape: well, the post-branch-tip-changed hook can be set up to fire a CI without much difficulty (I assume) [16:57] PQM is meant as a "before this gets integrated" not a "check after the fact" [16:57] perhaps subtle, but means that bzr.dev *always* has all tests passing [16:57] jam: I was hoping to be able to use the plugin manager plugin that has been talked about recently to handle keeping the plugin up to date [16:57] (at least on the PQM platform) [16:58] jam: Ah, I see... [16:58] pickscrape: you probably could, but I think that means users need to run "bzr update-my-plugins" rather than having it "forced" on them by your plugin [16:58] or maybe... encouraged :) [16:58] visik7: yes [16:58] Maybe our plugin could auto-update all of their plugins for them :) [16:59] pickscrape: certainly [16:59] If you had it check every 1hr/1day or so, it wouldn't even really get in the way [16:59] Yeah === kiko is now known as kiko-fud [17:57] is there a way to setup a shared repository that does not require shell accounts? sftp and bzr+ssh depend on that as far as i can see [18:02] j^: hi, you can serve your branches over plain http [18:02] if you want to give write access then ssh access is the easiest, but you can do it over http as well. [18:02] james_w, if i want someone to push changes? [18:04] ssh is easy, i just dont feel comfortable to give full shell access just for bzr [18:05] is it an open source project? [18:06] not right no [18:06] w [18:07] otherwise i would just make read only public [18:08] just thought there might be something as easy as setting up svn via https and htpasswd [18:08] http://doc.bazaar-vcs.org/latest/en/user-guide/index.html#serving-bazaar-with-fastcgi [18:12] thats read only? [18:17] no, that should allow read-write === strk is now known as strk_off [18:18] just that the guide says "you want to provide read-only ..." will give it a go [18:19] or look at ssh > 4.8 with chroot sftp support [18:26] 8.4.5.1 Pushing over bzr+http:// [18:27] j^: or you could set up the 'authorized_keys' file so that only 'bzr' can be run [18:28] there is a 'contrib/bzr_access' script that can expose only a chrooted bzr via ssh [18:28] you basically just add a 'command=XXX' to the beginning of the authorized_keys line [18:55] james_w, igc: I'm trying to make bzr-fast-import incremental. Sort of like the id-map, but then that it doesn't skip revisions [18:55] Also, I want it to take the same input as bzr fast-export outputs [18:56] Pieter: great! That would be fantastic. [18:56] I thought it did already, am I missing something? [18:56] bzr-fast-export adds a header [18:56] that's why import can't read it [18:57] and bzr-fast-import, if it uses the revmap thing, still expects the commits on the stream, but just skips them [18:57] my exporter won't export them, so it can't skip them [18:57] so I want to perhaps add a --import-marks and --export-marks to bzr-fast-import, but without changing too much code === kiko-fud is now known as kiko === mw is now known as mw|food [19:16] jam, do you know of a version of bzr_access that works, the one in bzr.dev will always give permission denied [19:17] since it requires a request != / while ssh will always send only / === mw|food is now known as mw [20:09] Has anyone ever tried to import a plugin from another plugin ? What are the rules ? How is the import order defined ? [20:11] vila: bzr-svn uses bzr-rebase in its svn-upgrade command [20:12] Jc2k: thks, will have a look (I don't use bzr-svn nor bzr-rebase though :-/ ) [20:13] vila, you can simply import "bzrlib.plugins.otherplugin" [20:14] jelmer: simply... yes... why not ? :-) [20:14] jelmer: thks [20:16] james_w: I'd like to extract the import/export mark code [20:17] eh [20:17] nvm === kiko is now known as kiko-afk [20:25] is there some way to upgrade a read lock to a write lock? [20:25] I need to modify the source branch from a push hook === gour_ is now known as gour [20:28] Hmm, how can I add a file to .bzrignore "dynamically" inside a plugin. [20:33] I'd look at the ignore command code for that [20:34] yacc, well, you could *just* append to the file [20:35] One problem I noticed with the ignore command, was that if you ignore something you've already ignored, it appends anyway. [20:37] pickscrape, that sounds like a bug [20:38] Something else that worries me is that bzr doesn't seem to mind if you push over a shared repository [20:38] hi beuno [20:38] howdy james_w [20:38] yacc: when I had to do this appended a line to the file. It would be great if bzrlib had a better API for this. [20:38] beuno, yeah, but that would get commited, right? [20:39] yacc, it would get committed anyway [20:39] james_w, I don't want the fact that these files get ignored to get recorded. [20:39] well, ignore .bzrignore :) [20:39] yacc: ah, you just want it while the plugin is doing its thang? [20:39] james_w, exactly. [20:40] pickscrape, could you report the bug about a file getting added even though it's already being ignored? [20:40] yacc: I think there is something in bzrlib for that. [20:40] Certainly [20:40] yacc, interesting use case :) [20:40] yacc: add_default_ignore() or something similar. [20:40] james_w, any hints for google keywords? [20:41] yacc: I think grep would be more successful, but I may be wrong. [20:41] james_w, probably right. [20:41] yacc: add_runtime_ignores [20:43] bzrlib/ignores.py [20:44] beuno, you don't want to know what the use case is ;) [20:44] j^: hm... I had used it before merging, it seems something funny is happening here [20:45] j^: I would probably simplify it a lot, since (as you say) path is always '/' === ja1 is now known as jam [20:45] I'm having a problem committing because of a problem with gpg but I can only reproduce it while using bzr http://pastebin.com/d3479c44e [20:46] anyone have a suggestiong that will allow me to commit? [20:46] jam, removing the check for path != "/" and join (base, path) it works now but yes it could be further reduced and the sample should make clear that one can not provide permissions for paths but just for / [20:46] newz2000: you could disable requiring a gpg signature :) [20:46] :-) [20:46] Anything else [20:46] newz2000: for starters, you are using the wrong value [20:46] you want to have "create_signatures = always" in ~/.bazaar/bazaar.conf [20:47] second, can you paste the traceback in ~/.bzr.log? [20:47] j^: patches welcome, it is, after all, a 'contrib' item :) [20:47] Seriously, I'm happy to merge fixes for it, I just don't have time right now to work on it [20:48] jam: bzr: ERROR: Invalid signatures policy 'always' [20:48] james_w, the Wiki page is not uptodate, any docs on how currently hooks work? [20:48] jam, ok will look into it later this week, will ping you if i come up with a patch [20:48] yacc: I'm not familiar with hooks, sorry. [20:49] newz2000: really? [20:49] check_signatures = require [20:49] create_signatures = always [20:49] james_w, no problem, I noticed that bzrlib is installed unpacked, so I'll go and read the quality docs :) [20:49] is what I have [20:49] oh, right, subtle diff [20:50] and you want to get rid of your check_signatures entry maybe [20:50] newz2000: yeah, older versions of bzr had the logic backwards, 'check_signatures' enabled signing for some odd reason [20:51] what *seems* to be happening is that 'gnome-gpg' is returning non zero even if the signature worked [20:51] possibly because of the agent issue [20:51] http://pastebin.com/d51909c30 [20:51] I tried with just gpg instead of gnome-gpg too, same results [20:51] newz2000: what happens if you do 'gpg --cl' manually? [20:51] beuno: bug 237438 [20:51] Launchpad bug 237438 in bzr "ignore adds to .bzrignore even if pattern is already ignored" [Undecided,New] https://launchpad.net/bugs/237438 [20:52] jam it works just fine [20:52] newz2000: does it give you the same warning? [20:52] no [20:52] and what is 'gpg --cl && echo $?' [20:52] oh, it does give the warning [20:52] but it still works [20:52] newz2000: so what is the 'echo $?' value? [20:53] I'm guessing it is non-0 [20:53] There are 2 "fixes" [20:53] get your agent to work [20:53] or edit gpg.conf to not expect an agent [20:53] pickscrape, you rock, thanks! [20:53] I don't see the result of echo $? [20:53] or some versions of gpg don't actually return non-zero [20:53] newz2000: so do your normal "gpg --cl" type stuff, hit ^D [20:53] it should spit out the signature [20:54] then just type [20:54] echo $? [20:54] which should result in a number [20:54] oh [20:54] 2 [20:54] newz2000: 2 != 0 so gpg is complaining [20:54] saying it didn't succeed [20:54] http://pastebin.com/d6cf3be6e [20:55] oh nice, I just pastebin'd my email address [20:55] newz2000: well, it is already at https://edge.launchpad.net/~newz [20:55] so it isn't like it is something new [20:55] true [20:56] newz2000: so... take your pick. Do you want to get gpg-agent working, or change 'gpg' to not expect it [20:56] I think I want gpg-agent working [20:56] newz2000: there is a line in ~/.gnupg/gpg.conf which says [20:56] use-agent [20:56] comment out that line [20:56] and try again [20:56] just as a first pass [20:56] getting agents working is a bit more work [20:57] oh, and can you give 'gpg --version' ? [20:57] gpg (GnuPG) 1.4.6 [20:57] this all started because I got mad at gnome and tried to isntall kde4. It was worse so I uninstalled all the packages it installed. Now this. [20:58] newz2000: weird, because with 1.4.5 I get: [20:58] http://pastebin.com/mb09cd0a [20:58] which says that it failed to connect to the agent, but still returned 0 [20:59] that is interesting [20:59] I wonder why we have diff versions of gpg [20:59] are you using hardy? [20:59] that is on a different machine [20:59] actually, I think that one is FC3 [21:00] cygwin has 1.4.9 [21:00] ok, with that commented out I can commit [21:01] weird, gnome-gpg seems to think it would be using Gnome keyring [21:01] according to jamesh [21:01] http://blogs.gnome.org/jamesh/2006/01/12/gnome-gpg-improvement/ [21:01] newz2000: if you use gnome-gpg does the commit still work, and it still allows you to save the passphrase in your keyring? [21:02] yes, it did use gnome-gpg in my recent commit and it did not ask me for a password meaning it cached it [21:02] (I have it set to remoember until I logout) [21:03] newz2000: then I think your setup is complete for you [21:03] you probably never ran a gpg-agent [21:03] and the kde stuff tried to set it up for you [21:03] aaah, maybe [21:03] i'm guessing, but I like the answer [21:03] I think it did do something like that [21:03] I am set, thanks a bunch jam [21:04] says "to check the integrity of your repositories before migrating them to knitpack format [...] run: bzr check" [21:04] Whoo [21:04] it works like a charm [21:04] ok, one more question... can I change the default push location for a branch? [21:05] But when I do "bzr check", I get "bzr: ERROR: Not a branch: "/home/mpt/hacking/lprepo/.bzr/branch/"." [21:05] newz2000, bzr push new_location --remember [21:05] thanks [21:05] What am I doing wrong? :-) [21:05] mpt: run it from a branch, not a repo? :) [21:06] LarstiQ, I don't want to check a branch, I want to check my repository [21:06] mpt: you need to do 'bzr check' in a branch, however, for *this specific* case, I would upgrade and then run check/reconcile [21:06] after copying '.bzr/repository' [21:07] mpt: check will check everything 'down' so you start in a branch => repo [21:07] or WT => branch => repo [21:07] ahhh [21:07] jam, why do you suggest upgrading before checking in this specific case? [21:07] mpt: but the pack code is much faster, and it happens that it can copy slightly bogus knit data [21:07] My first Wiki update ;) [21:10] james_w: look at this http://pastie.textmate.org/private/jvcinnuwy76kekwp532g [21:11] james_w: I can now commit to either bzr or git, then fetch from bzr, do what I want, and push back [21:11] it's fully bidirectional git <-> bzr [21:12] _fully_ functional? [21:12] Pieter: wow, nice work. [21:13] LarstiQ: well, it's bit fragile, but it should do everything correctly :) [21:14] Pieter: sweet [21:17] Pieter: this would be useful to post to DVC list. there was recent thread about bzr vs. git [21:17] what's dvc? [21:17] or, what's the list? :) [21:17] A plugins __init__ should register commands on import time I guess? [21:18] Pieter: starting with http://article.gmane.org/gmane.emacs.dvc.devel/2119 [21:18] thanks for your advice jam [21:18] Pieter: see http://xsteve.at/prg/emacs_dvc/dvc.html [21:20] The joys of DVC, two branches without a hint which an uninterested user should pull. [21:22] yacc: hmm? [21:22] http://xsteve.at/prg/emacs_dvc/dvc.html <= just after reading the page you realize that these two branches are from the two maintainers. [21:22] And I guess depending which DVC you use you might decide to use one over the other. [21:22] yacc: I'd go with the one labeled as 'main branch' [21:23] LarstiQ, right ;) [21:32] * mpt is thoroughly confused [21:33] My repository is now apparently at the new format, but if so, it happened just through a reconcile, not an upgrade, and it took less than a minute for a three-year-old repository [21:33] AFAIK, if you're using shared repos, you have to upgrade the shared repo too [21:34] * vila thinks we should optimizing bzr, that confuses even old users [21:34] That is the shared repository [21:34] grr s/should/should stop/ freudian slips in jokes now :) [21:34] vila, lol [21:35] mpt, I think you have to upgrade shared_repo/ and shared_repo/branch/ [21:35] bzr check in shared_repo/branch/ gives me a KeyError [21:35] I assume that's not supposed to happen [21:36] that doesn't happen to me [21:36] what version of bzr are you using? [21:38] 1.6b1 [21:38] http://pastebin.com/m13295f47 [21:38] hrm, I wonder if it's a problem with knits... [21:38] mpt, can you backup that dir, and upgrade shared_repo/branch? [21:39] ok [21:39] beuno, bzr: ERROR: The branch format Bazaar-NG meta directory, format 1 is already at the most recent format. [21:40] hrm [21:40] bzr info -v [21:40] shows it's at packs? [21:43] beuno, no, it returns a NoSuchRevision error [21:43] http://pastebin.com/m33af5d5 [21:43] though the traceback *does* use the phrase "KnitPack" occasionally :-] [21:45] heh [21:45] doesn't look good [21:46] jam, any ideas? :) [21:47] mpt: I believe that is a known bug with check and ghosts, just reported IIRC [21:47] when the mailine of your branch has a ghost in it [21:47] mpt: that looks like a bzr revision id, though [21:48] any ideas how it could be a ghost? [21:48] ahh, wait [21:48] When I ran "bzr upgrade" on the repository, it complained about a missing revision: [21:48] starting repository conversion [21:48] bzr: ERROR: Revision {robertc@robertcollins.net-20050919044328-0205c679f3051340} not present in "KnitVersionedFile(file:///home/mpt/hacking/lprepo/.bzr/repository/text%3Atools-20050707102144-fee2fd7fd6ddfc1c)". [21:48] mpt: you were using packs locally, and a knit repo on the remote, right? [21:48] and you probably did a push and ^C part way through? [21:49] jam, I have a local repo and a remote repo [21:49] I have been known to ^C occasionally [21:49] mpt: is one knit and one pack? [21:49] but I --overwrite afterwards [21:49] hmm, good question [21:49] * mpt checks [21:49] mpt: well, technically you should never need to, ^C should be safe. There is just a known issue if you ^C a pack => knit copy while it is coping revision texts [21:49] it doesn't copy them in the correct order. [21:50] mpt: you should be able to: [21:50] "Shared repository (format: dirstate or dirstate-tags or knit)" [21:50] that's the remote one [21:50] bzr push -r revid:MISSING_REV_ID remote:/temp/branch [21:50] it will create a branch you can then delete [21:50] you are just doing it to copy the revision text across [21:51] So I guess the remote repository needs upgrading, then [21:52] mpt: right, we would like you to upgrade that one, too, but you still need to copy that revision across [21:52] ok [21:52] there might be a bug in the knit => knit code, but the Generic fetcher is the only part I know [21:53] another KeyError :-( [21:55] mpt: from which side? [21:55] http://pastebin.com/m1cbcf532 [21:56] mpt: actually, I wanted you to 'bzr push -r revid:mpt@canonical.com-20080604185556-txuu6iw2ejfs0gea' [21:56] not the robertc one [21:56] oh [21:56] though there is still something funny happening [21:56] you might actually need to 'bzr branch -r revid:... remote: .' [21:57] Looking at the last traceback it looks like it is missing locally [21:57] Exactly the same error for the mpt@canonical.com revision [21:57] Can someone point me at a plugin that provides a good example of how add an option to an existing command [21:58] pickscrape, xml-output [21:58] jam, should I do that bzr branch command from the top level of my local repo? [21:58] mpt: as long as you are in it, it doesn't really matter [21:58] beuno: thanks [21:58] it might be 'cleaner' to do it from the top [22:00] From the top I get "bzr: ERROR: Target directory "." already exists." :-) [22:01] * mpt does it into a temporary branch instead [22:02] mpt: sorry, I didn't mean '.' I just meant to the local area [22:04] It's thinking hard about it [22:05] beuno: xml-output seems to do it by subclassing the builtin command handlers. What if more than one plugin wants to extend the same command? [22:06] Or is it Really Really clever :) [22:07] pickscrape, well, I don't really know :) === sdboyer_ is now known as sdboyer [22:08] moquist, bzr launchpad-login your_lp_id [22:08] and it should use bzr+ssh instead of http, which will be able to write [22:09] and, I'd recommend upgrading to the newest version of bzr, using PPA :) [22:09] beuno: thx, I'm one step further now. [22:10] beuno: hrm. OK, I'll google around a bit to see if I can figure that out. [22:10] bbiab [22:10] moquist, what bit? [22:11] * beuno wonders what it would take to get a newer version of bzr into 8.04.1/2 [22:12] beuno: I don't know how to use bzr with my PPA. [22:12] moquist, https://launchpad.net/~bzr/+archive [22:12] beuno: should I go ahead and "--use-existing-dir" to start off this branch of vpnywhere? LP seemed to want to create that dir, so I suppose this is probably expected... [22:13] moquist, yeah, add it [22:15] looks like the push worked; thanks! [22:15] moquist, :) [22:16] heh - now everyone in the whole world can read my totally lame commit comments. :p [22:16] moquist, welcome to the club :) [22:17] jam: if you can confirm that pushing a branch over a shared repository doesn't cause damage to the shared repository, I'll go ahead and close bug 237439 [22:17] Launchpad bug 237439 in bzr "bzr should not allow push over shared repository" [Undecided,New] https://launchpad.net/bugs/237439 [22:26] mornin' mwhudson :) [22:27] I just tried a 36k line diff on my branch [22:28] 100mb res memory [22:28] nice [22:28] timing it now [22:28] but it was very CPU friendly too [22:28] can you try two concurrent requests? [22:29] yeap [22:29] (jam, the "bzr branch -r revid:..." is still working hard 30 minutes later) [22:33] hrm, I can't get loggerhead to work with wget/curl... :/ [22:34] mwhudson, two concurrent requests, ~160mb RES [22:35] Firefox hates me though [22:35] but that's a different issue :) [22:35] beuno: for wget/curl you perhaps need to remember to put the url in quotes '' [22:36] beuno: we'd better make it faster too then, so there are less concurrent requests :) [22:36] mwhudson, still get a 500 error, seems to not pass on URL values correctly, as it tracebacks in the kwargs arguments [22:37] beuno: oddness [22:37] mwhudson, well, if we're going to take on concurrent requests, then I can't see anything better than caching static HTML from what we generate :) [22:38] well, the good news is that it works with other URLs, just not the one I did for diffs [22:39] I'm not sure how to make it faster without tweaking bzrlib [22:41] yeah, fair enough [22:42] mpt: that seems odd [22:42] mwhudson, it's about 3 secs getting the diff and processing it, and 20sec applying the template to a 36k diff [22:43] jam, strace shows it's still busy, not hung or anything [22:43] mwhudson, although we use a *lot* less memory [22:43] mpt: remote is on another machine, right? [22:43] otherwise I would have you break in with ^|, but that hangs up connections, too [22:44] beuno: i wonder if we could render the diff in a less complicated way, perhaps? [22:44] jam, yes, another machine a few km away [22:44] beuno: but i think we work on getting some of this stuff into trunk [22:44] mwhudson, well, if we don't use a templating engine to generate it, it should improve quite a lot, as it's just manipulating strings [22:44] it may not be as good as it can be, but it's still a heap better [22:45] mwhudson, ok, cool. I'll focus on cleaning up the code in order for it to be mergeable. Maybe we can set it up on a different port, and test it on edge.LP for a few days? [22:45] mpt: ok, my guess is that you are running into some of the performance regressions with knits, and it just has a lot of revisions to copy [22:45] is there a way to add support for webdav in bzr 1.5? [22:46] you *might* want to switch to an officila release (1.3, 1.4, 1.5) for the copy and just do the same thing [22:46] or just let it finish [22:46] beuno: there is no edge for codebrowse [22:46] (though that would be nice) [22:46] fsafdsf, that sounds like a question for vila, if he's still around [22:46] but there is staging [22:46] jam, heh, how long should I wait for the latter before I try the former? :-) [22:46] mwhudson, well, if we can point edge to a different LH port, and make *that* edge... :) [22:46] beuno: stop reading above my shoulder will you [22:46] mpt: well, if you do tail ".bzr/repository/revisions.kndx" and it is still processing at a ... decent rate [22:46] I would stick with it [22:47] vila, :p [22:47] beuno: yeah, i should talk to IS about that [22:47] mpt: we're trying to get rid of an "unnecessary" caching layer, but not all the code paths can get by without it [22:47] so for the official releases, we restore it. [22:47] mwhudson, great, that will help us test :) back to cleaning up code then [22:47] fsafdsf: I'm working on the webdav plugin at this precise minute [22:48] fsafdsf: since 1.6 is around the corner it will certainly be a requirement, is that a problem ? [22:48] do you have a time frame or an alternative for pushing commits to central repo hosted on a shared hosting? [22:48] jam, where is that .bzr/repository/revisions.kndx supposed to be? In the target branch directory? In the repo top level? [22:48] (it's not in either) [22:48] seeing it's almost impossible to get the smart server working under a shared hosting [22:49] mpt: in the repo top level [22:49] mpt: ah, your local is now a pack repo? [22:49] jam, allegedly [22:49] mpt: then you should have a .bzr/repository/upload/*.pack that is growing [22:49] fsafdsf: please file bug reports against smart server, it *should* be widely usable and will provide far better performances [22:50] then I'm obviously doing something wrong [22:50] mwhudson, do you have any strong feelings against generating the diffs without a template? [22:51] beuno: well, i wouldn't want to generate anything as fancy as what loggerhead currently does without a template [22:52] mwhudson, well, we could add an arbitrary limit, like we have now, and generate simple diffs when it's over X lines [22:52] fsafdsf: file bugs, doc bugs if needed, mention your environment as precisely as possible, os/version/web server/python/ etc [22:52] that's the thing, I doubt it's a problem on bzr's end [22:53] if you can't make it work it's at least a doc bug [22:53] jam, the .pack file hasn't changed size in the past three minutes, and was apparently last modified 44 minutes ago (about 10 minutes after the branching started) [22:54] most likely a serer problem, seeing DH tends to cripple fcgi scripts [22:54] jam, so downgrade and try again? [22:54] beuno: yeah. seems like a hack though [22:54] mpt: first us ^| to interrupt and see what it is doing [22:55] jam, ok, in a debugger, now what? [22:55] mpt: can you paste the traceback ? [22:55] "bt" [22:55] backtrace in debugger terms [22:55] mwhudson, I could run some more tests with other non-xml based templating engines [22:56] beuno: let's get something into trunk first :) [22:56] progress ! webdav failing 49/142 tests with apache2-dav instead of 4/71 without :-) [22:56] mwhudson, yes, focus, sorry :) back to cleaning up [22:56] jam, http://pastebin.com/m668806a2 [22:57] mpt: interesting... I'm guessing the ghost is confusing the search stream, otherwise it looks like it was genuinely copying data [22:57] anyway, try a "c" to continue, it will likely fail [22:57] then downgrade and try again [22:58] vila, btw, you owe me an email reply! bzr-upload is starting to get anxious and wants to see the light [22:59] is there a recored instance of someone being able to use the smart server on a shared hosting, as far as you know? [22:59] fsafdsf, I use it through bzr+ssh on a shared hosting [23:00] beuno: don't worry, bzr-upload is processed in the background :-) webdav get some love now as an experiment in plugin a real http server into the bzr test suite, from there, I'll be able to do the same with ftp/sftp servers and get a better testing env for bzr-upload [23:00] mind sharing how you did it? to make sure I haven't skipped any step? [23:00] vila, :) :) :) I've got some time seperated for it too, mainly in UI stuff [23:01] fsafdsf, what steps are you following? do you have bzr working on the shared server already? [23:01] indeed [23:01] mostly I've been following the fcgi smart server guide on the official docs [23:01] beuno: wow, you send me an email may the 24th and it appears in the bzr-upload mailbox as if received today >-/ Something really wrong is going on there, anyway, I'll reply now [23:02] vila, ah, I thought it was odd it took you so long to get back, with your kitchen all done and all :p [23:03] hehe, 50 years birthday party for a friend last week-end and kitchen tiling still to be done, family life, etc ;-) [23:03] I think I'm messing it up when I'm trying to adapt the steps they listed to a shared hosting environment [23:04] fsafdsf, what URL are you looking at? [23:04] url of? [23:05] "steps they listed to a shared hosting environment" [23:05] ah [23:05] http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#id73 [23:05] "Serving Bazaar with FastCGI" [23:06] fcgi is already enabled and working [23:06] jam, ok, trying with 1.5 [23:06] fsafdsf, ah, that's not what I've got working, I use bzr+ssh, not bzr:// [23:07] I can't use bzr, seeing it invokes a daemon [23:07] which isn't allowed [23:08] fsafdsf, I think spiv is the expert in that area, but he may not be awake/working yet [23:08] you may want to send an email to the list [23:08] with as much information of the problem as you can :) [23:08] won't vila's webdav solution be the best solution for me? [23:09] fsafdsf, well, he should know :) [23:09] seeing I'm kinda pressed for time here, and I have nothing but bad experience with mailing lists and help channels [23:10] vila, do you have any idea when we can see a first working version of your plugin? [23:10] fsafdsf, well, if you have a few hours, spiv might be able to help you [23:10] fsafdsf: DreamHost supports SFTP... [23:10] yes, but I can't give them all the same user/password [23:11] fsafdsf: Oh. [23:11] * Peng just came in on this conversation. [23:11] whee, progress bars [23:11] and I prefer each user to have their own u/p, similar to how I do it in SVN now [23:11] Spastic progress bars, but progress bars nonetheless [23:11] fsafdsf: Also, bzr+ssh and bzr+http usually worked for me. [23:12] fsafdsf: Procwatch only ever killed them when I was doing big things. [23:12] Peng, I don't doubt it.. My bet is that I'm doing something wrong [23:12] mwhudson, I'm not really updating NEWS, should I? [23:12] I've since moved to a VPS though. No more procwatch. :) [23:12] and I wanted someone to walk me through it, to see if I did something wrong [23:12] fsafdsf: as soon as it works :-) Should be in some days, weeks at most [23:14] fsafdsf: if you can administer your server you can use ssh keys. That's better than using u/p [23:14] fsafdsf: by the way, isn't launchpad an alternative ? [23:14] I can use local keys, problem is.. I'm working with Windows user and I prefer not to expose them to the private key creation process [23:15] vila, it would, but then I'd need a way to push all the changes upon commit to a working, live directory [23:15] and I doubt launchpad will help me with that [23:15] fsafdsf: you want a remote working directory up-to-date with your bzr branch ? [23:16] yes [23:16] similar to how I did it with SVN's post-commit-hook [23:17] beuno: hm, adding a note at least would be nice [23:17] fsafdsf: do you need the remote branch too or is it just a way to get the remote working dir > [23:17] s/>/?/ [23:17] * vila thinks sed can be as noisy as perl [23:18] let's assume the latter [23:18] jam, alas, another error - http://pastebin.com/ma1ec204 [23:18] seeing I can work on the repo locally too [23:19] mpt: ;( [23:19] :'( [23:19] if the remote branch is not a requirement, the bzr-upload plugin may help and that would be a far simpler solution [23:19] and that can be used with launchpad? [23:20] mpt: that is weird, as it shows that knit => pack is rather broken... can you try using sftp:// instead of bzr+ssh? [23:20] ok [23:21] the plugin will upload the working tree only, the branch can be anywhere and the repo to synchronize devs in yet another place [23:21] so I'll have to tell every used to use it every time they commit? [23:21] user* [23:22] fsafdsf: you have to tell me a bit more about your workflow to allow me to answer that ;-) === mw is now known as mw|brb [23:23] basically, I want the bzr experience to be a similar as possible to SVN for the end users [23:23] at least while they adapt to bzr's [23:24] so, every user works on the same working version with possible mergers and conflict resolves if needed [23:25] and again, I'll still need a way to store the central repo [23:25] fsafdsf: what is your project ? [23:25] simple web project, similar to a CMS [23:26] ok, so bzr-upload may be relevant. Do you have a test server and a production server or just the later ? [23:26] one server, a shared hosting [23:27] * beuno is off for a few hours [23:28] ok, so the simplest solution is to keep the central repo and the working tree at the same place, but it's not a *requirement* [23:28] not a problem [23:28] that's what I wanted anyway [23:28] if you want to separate them, you can use launchpad as code hosting provider and use bzr-upload to your production server [23:29] assuming I want to have them both on the same server, what can I do? [23:30] now, if your workflow was: hack/test/commit/hack/test/commit it would become: hack/commit/upload/test/hack/commit/upload/test [23:31] which will expose the end users to another step, one that I can skip using bzr's hooks assuming I get the smart server working [23:31] or wait for your plugin [23:31] if you want to have them both on the same server: bzr+shh, bzr+http, bzr+webdav in better to worse order [23:32] the plugin will not help for hooks [23:32] the *webdav* plugin will not help I meant [23:32] the hooks depend on the smart server? [23:33] even if I use that auto mirror plugin for bzr? [23:33] executing hooks *on the server side* yes [23:33] auto mirror ? Is that the same as push+update ? [23:33] then that brings me to my original problem, how do I get the smart server to work under my server environment? [23:34] "Automatically update a remote working copy upon commit. " [23:34] so far, spiv is the expert :) [23:34] what are the supported protocols ? [23:35] one moment, launchpad seems dead [23:35] the crux of the problem when updating remote working trees are the permissions bits, and that can be addressed only by a process on the remote end whatever that process is [23:36] when I tried it [23:36] I got this error: bzr: ERROR: Generic bzr smart protocol error: Invalid http response for http://url/project/.bzr/smart: Unknown response code 500 [23:36] AFAIK push and update requires sftp, the smart server is another option, but I don't remember if updating the remote working tree [23:36] 500 is internal server error, look at your logs [23:37] says it tried to send an empty file, ie, without any headers and then timed out [23:38] vaguely rings a bell, but it's sleep time for me, I'm afraid I won't be good at debugging that [23:39] FastCGI: incomplete headers (0 bytes) received from server "/dir/.bzr-smart.fcgi" [23:39] ah [23:39] file a bug report on launchpad or send a mail to the list or wait for spiv to appear here are my best bets :) [23:39] indeed [23:39] thanks anyway [23:40] you're welcome, keep us informed of your progress anyway (but may be a more recognizable nick may help ;-) [23:40] my usual nick is taken here === fsafdsf is now known as tufloc === mw|brb is now known as mw