/srv/irclogs.ubuntu.com/2010/10/07/#bzr.txt

spivGood morning.00:06
pooliehi there spiv00:11
spivThe cold seems to have mostly subsided today, thankfully.00:14
peitschiepoolie: do you know much about bzr reconcile behaviour?00:14
pooliethat's great00:14
pooliepeitschie: a bit, what do you want to know?00:14
peitschiepoolie: i've been running into issues where the canonicalize-checks take around 20hrs to run over my repository at work00:16
peitschiei was trying to come up with some ways of speeding things up a bit00:16
peitschiei did notice that the process seems to be very heavily cpu bound... but it's only single-threaded00:16
peitschieas far as you know, does reconcile require sequential repair work (i.e., the next revision requires all previous revs to be fixed) or are chunks of it disconnected (i.e., multiple revs could be farmed out to be repaired by each core and then updates sequentialized back to the main thread)?00:18
poolienormally you should only need to run it to recover from a previous problem?00:21
pooliedid someone or some program actually tell you to run it?00:21
pooliei think it probably could be parallelized00:21
=== Ursinha-afk is now known as Ursinha
peitschiepoolie: at the moment I'm still trying to recover from https://bugs.launchpad.net/bzr/+bug/522637 and https://bugs.launchpad.net/bzr/+bug/48560100:34
ubot5Launchpad bug 522637 in Launchpad Bazaar Integration "BzrCheckError: Cannot add revision(s) to repository: missing referenced chk root keys (affected: 16, heat: 96)" [Low,Triaged]00:34
peitschiepoolie: I ran reconcile last weekend, but found someone checked in on monday without getting the "reconciled" repo... which broke things again00:35
peitschiepoolie: because of the amount of time it takes to run things, I don't have a big enough space to really do a full reconcile during the week, as it takes a full day to do it :)00:35
peitschieit's one of the things I think is important to a corporate environment... any repair job needs to be able to happen over night00:36
peitschiebecause I know programmers a not infallible, and there is always a chance there will be another repo-breaking bug...00:36
peitschiei've been considering spending some time trying to speed up reconcile, so recovery from future bugs of this nature can be achieved during the working week without stopping all dev work during the day00:37
poolie:?00:37
poolieyuck00:37
poolieone good way to start might be to be able to select particular types of reconciliation to do00:37
peitschieyep... those were some of the other things i was going to look at00:38
pooliesimilarly for check for that matter00:38
peitschiei figured a lot of time is likely spent calculating sha's and similar tho as well... so if I can potentially just multi-thread *that* part slightly, I think there might be a reasonable gain to be made00:39
peitschieI started playing with some profiling last night to see, so I don't really have any clear ideas on it yet :)00:40
peitschiebut just thought i'd ask in case you were aware of much around it :)00:40
peitschiethe other thing i'm considering is how we might potentially be able to generate more useful debug information for the previously listed bugs as well00:42
peitschiein the case of both of those, they have proved exceedingly hard to track down and verify because of the requirement of having it occur on a publically available repo00:42
peitschieagain... i have no real plans at this point... just pondering some things that would make my adoption here a little less risky a prospect00:43
pooliemm, again maybe having a task-specific check output some non-sensitive debug data would be good00:44
poolieit's a bit hard to predict ahead of time what would be useful00:44
pooliebut it is possible00:44
peitschiei figured that there is always some things taht would be missed00:44
peitschiei'm wondering if perhaps dumping things like revision history, sha's, ancestry... i.e., mainly the repo and branch histories might be sufficient to get a head-start00:45
peitschiemy thought is to try and work out what info would have helped track down the previously listed bugs... see how hard it is to produce... then potentially wrap that up in a command/tool of some sort (potentially even as part of check)00:46
pooliethat would be good00:46
peitschieso even if we don't get everything next time, *hopefully* future issues like these (that seem to revolve a bit around shared repo => shared repo) might be a bit easier to track00:46
dOxxxGood evening.01:45
dOxxxAnybody here know about bzr-explorer internals?01:46
pooliehi there01:46
dOxxxIn particular, the way it invokes qbzr commands?01:46
poolienot a lot, but what's up?01:46
dOxxxI'm working on my mergetools thing and it looks like explorer is using my system installed bzr to run qbzr commands instead of the dev version of bzr that I invoked explorer with.01:46
dOxxxSo I get an ImportError because my qbzr references a module (mergetools) which doesn't exist in bzr 2.2.001:47
dOxxxbut which does exist in my dev bzr01:48
pooliehm, interesting01:48
pooliethat sounds right01:48
pooliehi, spiv, so what are you up to today?01:48
dOxxxpoolie: what sounds right? that it uses the system bzr to invoke qbzr?01:48
pooliei mean, that sounds like a correct diagnosis, but i agree it's a bug01:49
poolieit should use the matching version, i would say01:49
dOxxxpoolie: http://paste.ubuntu.com/507655/ is the relevant section of bzr.log if you could double-check my diagnosis?01:49
dOxxxI'll be damned if I can think of how to search for this bug to see if it already is known :)01:51
pooliei don't recall hearing of it01:55
pooliedOxxx: i think there is a bzr symbol to find the right executable01:56
pooliebecause the tests do the same thing01:56
pooliei'd just file a new bug; we can always dedupe later01:56
dOxxxI thought I remembered some discussion about it on the bzr mailing list in the last month or two.01:56
dOxxxyeah I'm typing up the bug now01:56
spivpoolie: so far mainly catching up on a week's worth of email01:56
poolieoh, wow01:57
poolieit has been a while01:58
pooliegood luck :)01:58
pooliedOxxx: if you want to talk about where the bug is or how to fix it just ask, otherwise i'll leave it with you02:00
dOxxxpoolie: no I'm good, just writing it up. :)02:01
spivThanks :)02:01
* spiv -> food02:34
mkanatIs there a plugin that will just run a particular external command before "commit"?03:16
lifelesssure there is a externals hook plugin03:20
lifelessor you can just trivially do a custom one yourself.03:20
mkanatlifeless: Yeah, I figured it would be trivial, I just wanted to know if it already existed.03:31
=== Ursinha is now known as Ursinha-afk
=== zyga is now known as zyga-gone
=== dOxxx1 is now known as dOxxx
=== JayFo is now known as JFo
pooliespiv, what do you think we should do about news?06:43
poolieone news file per series?06:43
spivI think so.06:44
pooliedo you want to split it up then, while you're there?06:49
spivI can do that, what's the exact path names you're after?06:50
pooliehm, possibly we should just move it into doc/en now, and perhaps just leave a pointer in news?06:50
pooliethat would be similar to whatsnew06:50
poolieand everything else06:50
poolies/in news/in NEWS in the root06:50
pooliewhatever we do, we'll need to update the doc builds rules06:51
spivRight.06:52
spivIt would be nice to have something fairly visible in the root.06:52
spivBut not nice to accumulate clutter for every historical release in the root.06:52
spivI suppose we could have the current series in /NEWS, and everything else in doc/en/old-news/*, but that feels a bit weird.06:53
poolieistm just a pointer there would be ok06:53
spivOk, phew :)06:53
spivI'll do that.06:54
vilahi all !07:05
spivHey vila!07:05
vilaspiv: Welcome back !07:05
vilaspiv: can I have paramiko package from your ppa for maverick with my pony ? Pretty please :)07:06
vila*a paramiko package07:06
spivvila: hmm07:10
spivvila: I'm not sure at a glance why my last attempt to do so failed: http://launchpadlibrarian.net/52203585/buildlog.txt.gz07:10
spiv(https://code.edge.launchpad.net/~spiv/+recipe/paramiko-test/+build/340)07:11
vilaspiv: the point is that there is only one test failing on babune for the maverick slave07:11
vilaha, yeah, I forgot that, you mentioned it at the time though07:11
vilaspiv: sudo build-my-package ?07:11
vilaspiv: hmm, rather obscure... "they" did manage to build it for maverick so there should be a way...07:13
spivI'll hit the button again and we'll see what happens.07:13
vilaaptitude command not found ??07:13
pooliehello vila07:13
vilahey poolie, hopefully I'd feel better today :-/07:14
poolieand do you?07:14
vilawell, so far, yes07:14
vilabut yesterday and the day before I went down without notice :-/07:14
fullermdMaybe the universe is corrupted.  Look at the checksum?07:16
vilaquantic checksums make my head hurt, bad idea07:17
fullermdJust pick a worldline where they don't.07:18
* vila facepalms07:18
vilaouch07:18
fullermdAlso, don't smack yourself.  It hurts less that way   8-}07:18
spivvila: apparently it built and uploaded okay this time07:20
vilafullermd: you should have said so earlier07:20
vilaspiv: yeah just noticed !07:20
fullermdWell, I did.  You just heard me later.  Speed of light and all that, y'know.07:21
vilafullermd: yeah sound travels slower than light around here07:24
fullermdNaturally.  Sound is heavy.  Light is...  well, you know.07:25
vilaspiv: http://ppa.launchpad.net/spiv/packaging-test/ubuntu/dists/ not updated yet, I suppose I should wait a bit07:26
* fullermd cranks up his sound to compensate.07:27
fullermdLuckily, nobody around minds if I do that at 0130   :p07:27
vilaspiv: ha right, the details at https://code.edge.launchpad.net/~spiv/+archive/packaging-test/+packages shows that it's still pending publication07:27
vilafullermd: :)07:28
fullermd(on that topic, I wish Youtube would sort out their 34/18 formats, so that one was consistently the better, rather than random, or even more often, one having sucky audio and decent video, and the other being the other way around :|  )07:32
mgzhm, not sure whether to send this to the list or file a bug07:46
mgzvila: can I request a full babune run on windows of a branch?07:46
vilamgz: sure, just name it07:46
mgzhttp://float.endofinternet.org/bazaar/bzr/hack_get_transport07:47
mgzsorted out what from your leaks branch was causing me problems, but I'm not sure why it's not broken for other people, or the best way to fix it.07:48
vilamgz: hmm, looks like your bandwith will suffer :)07:50
vilamgz: push to lp next time ;)07:50
mgzit's a five line diff, how badly can bzr... oh, are you not stacking?07:51
vilamgz: nah, it's ok, I did branch it locally to look at it...07:52
vilamgz: err, this fix changes what exactly (in behaviour) ? It looks like you're working around some import aliasing bug here07:53
mgzha, good guess. I'll post to the list.07:54
vilamgz: note that the current approach is hackish, we should define a hook triggered when a transport *connects*07:55
mgzthat sounds like a good suggestion.07:56
vilamgz: running: http://babune.ladeuil.net:24842/job/selftest-subset-windows/8/07:56
mgzthanks!07:57
mgzokay, sent email.08:03
pooliemgz, nice mail08:17
pooliei thought there already was a way to disable laziness but imbw08:17
pooliethat babune report is great!08:17
mgzto be fair on that front, by the time I realised it was lazy import causing issues not something else, I didn't need to test anything else08:18
mgzit was the getting to that point which was the hard bit :)08:18
mgz(so it may well be that I could have found a way to disable lazy import, if I'd thought to(08:19
mgz))08:20
mgzpoolie: can mgordan be added to the contrib agreement group? I landed his first branch already as I got cced.08:26
pooliewill do08:28
bialixheya poolie, mgz08:28
pooliehi there08:28
vilamgz: you run finished: FAILED (failures=2, errors=3)08:44
mgznot bad for a hack, and 45 mins rather than 77 is the great bit :)08:45
vilamgz: I see to... what's the message... this test would have hang or something, right ?08:47
vilas/to/no/08:47
bialixbonjour vila08:47
vilawhich means the leak fixes were correct except they didn't catch some import aliases right ? (I confess I focused on the ones in tests...)08:48
mgzhttp://babune.ladeuil.net:24842/job/selftest-windows/190/ <- Took 1 hr 32 min on xp-32bits.local08:48
vilabialix: hey !08:48
mgzhttp://babune.ladeuil.net:24842/job/selftest-subset-windows/8/ <- Took 45 min on xp-32bits.local08:48
vilaright, most probably the cause is that we don't wait for threads to finish anymore08:48
mgzbasically yeah, complete for fix and all the "thread ('127.0.0.1', 2265) -> ('127.0.0.1', 2263) hung" goes away08:49
vilashudder08:49
vilacare to comment on https://code.edge.launchpad.net/~vila/bzr/imports/+merge/36324 ?08:49
mgzno. :P08:50
vilaI think I failed to convey some hard numbers about time spent to debug such obscure crazyness08:50
vilaanyway, thanks for pointing out the obvious fix, but that's still a hack on top of a hack, so we should implement a hook08:51
vilaI went out of steam on the subject at the time, may be we can pair on this ?08:52
vilamgz: A most probably related topic being the test suite still can't be run on OSX because some sockets are still leaking, I will try your branch there08:53
poolievila can you try to help a bit with reviews/landings?08:53
pooliei realize i'm pp and i've done some but it's still queued08:53
vilapoolie: yup08:53
vilapoolie: I think it's fine that PP ask for help when needed08:53
mgz^I agree merging namespaces can cause bugs like this, but it's also useful. I don't think we can coding style it away.08:55
pooliehm, i just did a parallel test and got ebadf again08:55
vilapoolie: and I wonder if we should not *all* focus on getting the queue back into control, it's awesome to have so many contributions but it will collapse fast if we don't address them08:55
vilapoolie: for an https one ?08:55
poolievila, sftp actually, inside paramiko08:56
mgzI'll happily have a crack at fixing this the right way, especially if you're offering help/08:56
poolierunning parallel=fork seems to be the only time my machine's fan spins all the way up :)08:56
vilahehe08:56
poolieit would probably be an even stronger effect on apple hardware08:56
mgzvila's the one most in need of reviewing I think, you'll need to press gang someone else as well :)08:56
vilapoolie: sry I can't remember without a tracback, what's the failing test ?08:56
pooliei appreciate yours08:57
spivI have a pselftest='selftest --parallel=fork' alias08:57
vilaspiv: tss08:57
vila:)08:57
poolievila, for the ebadf thing?08:57
mgzthough neil's on a roll too.08:57
vilaspiv: bzr alias tss="selftest --parallel=fork" :-D08:57
vilapoolie: yup08:58
spivHopefully now I'm back from a week of leave + virus I'll be able to help with the queue too.08:58
spivHelp reduce it, rather than grow it, that is ;)08:58
vilamgz: and you've helped a lot too, thanks for that08:58
* spiv -> dinner08:58
mgzI still need a lazr.restfulclient reviewer if anyone can dig one of those up.08:59
vilapoolie: on a related note, we have an RT asking for an upgraded testtools on pqm that seem to be blocked by a desire to upgrade to lucid, I'm a bit lost about the whys here, can you summarize ?08:59
pooliehttps://bugs.edge.launchpad.net/bzr/+bug/65617009:00
ubot5Launchpad bug 656170 in Bazaar "EBADF in paramiko during parallel selftest (affected: 1, heat: 6)" [High,Confirmed]09:00
poolievila, sorry, i don't know many specifics09:00
pooliei know the GSAs are in the process of upgrading some boxes09:00
pooliesuggest you ask in canonical is09:00
vilaBIG RED FLASHING WARNING: lp read-only09:00
poolieno warning?09:01
vilapoolie: ha, that one, but it doesn't make the test fail right ?09:01
spivIIRC when I asked spm last week the RT wasn't blocked, merely some way down the queue?09:01
vilait's been announced, but I lost a bug report yesterday, so I'm warning others ;)09:02
vilapoolie: I'll comment on the bug, but roughly, yes, it's a bad timing, but no it's really a bug09:03
vilapoolie: the fix would be to catch the exception like we do for our threads, but this one is private to paramiko and injecting our class here can't be done cleanly, so it's way down my TODO list and I would even make the bug importance a wishlist, the test doesn't fail09:05
spivvila: i.e. the bug is (partly?) in paramiko?09:08
vilaspiv: hmmm, IMHO, the bug is partly in python: there should be a simpler way to handle exceptions in threads than redefining the Thread class09:12
vilaspiv: and a way to kill a thread by throwing an exception too (and a pony)09:12
vilaspiv: that won't give us a direct way to tell paramiko to ignore EBADF for its threads either though, but that will become easier09:14
vilathe problem here is that we want to ignore this exception before stopping the thread but *not* when starting it09:15
vilamgz: so the idea for the hook is that we want to replace the hackish overideAttr with a hook that will do roughly the same thing: keep track of the transport and disconnect it when tearing down the test09:19
spivvila: you don't need to subclass Thread09:20
spivvila: you just need to wrap the function you pass as the target09:20
vilathere is more than one way to do it :)09:20
spivvila: unless you mean monkey-patching the threading.Thread globally to change the behaviour of *all* threads... which seems risky.09:21
vilaspiv: the most convenient is to be able to say to a running thread: from now on, swallow these exceptions09:21
spivI mean, it is a bit weird to me that the main thread has sys.excepthook, and the other threads don't.09:22
spivJust because it's inconsistent.09:22
spiv(Or does sys.excepthook intercept unhandled exceptions from all threads...?)09:22
vilainteresting approach...09:22
spiv(Nope, it doesn't.)09:23
vilatoo bad :-/09:23
spivBut anyway, in principle you don't need any special facility to deal with top-level exceptions.  You can already write "try: ...; except: top_level_exc_hander()" at the top-level of the code.09:24
vilaspiv: for a third-party library ?09:25
spivWell, how a 3rd-party library runs its threads is ideally its own business.09:25
vilahehe09:26
spivIt's like how you can't really add logging to a 3rd-party library from the outside09:26
spivEither it already does that (and ideally allows you to have some control over where/how much it logs), or it doesn't and you need to get it fixed upstream.09:27
vilaspiv: right, in this sense, yes, this could be seen as a paramiko bug, but given the time it takes for your fix about the wrong address families to be taken into account, I'm not holding my breath for something that impact only tests :-(09:36
spivvila: well, being clear about the causes and deciding what to do about the problem given the circumstances are different issues.09:38
spivvila: maybe there's a workaround we ought to do, but that doesn't magically make it not paramiko's fault :)09:38
vilawell, paramiko rightly raises the EBADF exception, *we* want to be able to ignore it in *some* cases and even there, we change our mind *after* asking paramiko to start its thread09:41
vilathat's the cause09:41
vilathere is indeed more than one way to deal with it09:41
vilaand like the other problems encountered with the leaks, the fact that we run the server and the client in the same process is something that hasn't been taken into account in the design09:43
vilait works better for paramiko than for SocketServer though09:44
spivvila: the bug isn't that paramiko raises EBADF, it's that it spews it to stderr rather than giving the app a chance to know about it.09:45
spivProbably the obvious thing for paramiko to do would be log the exception.09:46
vilaspiv: well, if I was the paramiko author I could answer: hey, that's Thread that is spewing on stderr :-P09:46
spivSeeing as it already uses the logging module.09:46
spivSure, that's the mechanism.09:46
spivBut that doesn't make "unconditional spew on stderr" the right behaviour for a library.09:46
vilaand whatever happens in this thread is supposed to be conveyed to the user via the channel object (or whatever, don't remember the details)09:47
spiv(Especially given that in general paramiko takes a fair bit of care to use logging rather than unconfigurable spew on stderr)09:48
vilaspiv: my suspicion is that reproducing this without running the server and the client in the same process is non trivial (if possible)09:48
spivSure, I'm not arguing about that point.09:49
Glenjamindo you know where abouts in the paramiko code it's printing directly to stderr?09:50
spiv(In fact, if robey had encountered it himself already I bet he'd have fixed it to be suppressed or logged, rather than let the Python threading bits spew it to stderr)09:50
vilaGlenjamin: lol, nowhere in this specific case, it's a side effect of using a thread and having an uncaught exception bubbling up to the top level09:51
Glenjaminthat sounds broken09:51
Glenjaminthe thread's exception has nowhere to bubble up to, and can't kill the master process i guess?09:53
spivIt doesn't kill the main thread, no.09:55
spivThe Python VM just writes a traceback to stderr when an unhandled exception happens in a thread.09:55
spivSo if you don't want that, make sure you never have unhandled exceptions in your thread.09:56
vilawell, that's my main grief against python threads, the interpreter takes a great care to handle them but the exception handling is left to the user, requiring him to be ready for it in the function given to the thread09:56
spivWhich isn't that hard, really.09:56
GlenjaminSo the only fix is to wrap the thread contents in an except block09:56
spivvila: I really don't see the difference with the main thread09:56
vilawell, the exception in the thread is not propagated there for one09:57
vilaso if you change your design to use threads your callers are suddenly doomed09:57
spivPropagated where?10:01
spivThey have a separate call stack, that's kinda the point ;)10:01
=== maxb_ is now known as maxb
vilaI started a thread, I want a simple mean to know that something bad occurred10:06
spivvila: you started the thread, so you can10:07
spivvila: just pass in a function that reports that10:07
vilamgz: wooohhoooo, yeeeehaaa, test suite passes on OSX ! Pfew, my last attempt was depressing, I thought there was some more unknown leaks...10:07
vilaspiv: that's not simple enough, see my previous point: callers have to care now10:08
spivIt's not hard to write a generic wrapper ("try: foo(); except: report_error()") to help you10:08
mgzvila: you're better than you thought you were :)10:08
vilamgz: yeah, something like that ;)10:09
mgzspiv: isn't the problem that it's not "you" it's paramiko, and we can't raise the maintainer currently anyway10:09
spivSo that your start thread call becomes Thread(target=err_wrapper, args=(func,)) rather than Thread(target=func)10:09
spivWhich isn't exactly onerous.10:09
vilaspiv: and you also need to provide this to the caller which itself, etc10:09
spivI mean, it would be nice to have it more convenient.10:09
vilaexactly10:10
spivPerhaps even have Thread.get_result that blocks (i.e. calls join), and then either returns the value the target func returned, or reraises the exception it terminated with.10:10
spiv(And in Twisted, you can use blockingCallFromThread for something like that)10:10
mgz..or are we on testing now, not the EBADF bug?10:11
* mgz went off to get food10:11
spivBut it's really not hard to roll your own :)10:11
spivmgz: right, the problem is in paramiko, that's my point :)10:11
vilamgz: and I argue that paramiko can point the finger at python :)10:12
vilaThreadWithException was my answer for bzr :)10:12
spivEh, it can point the finger at python for making it merely simple, rather than trivially easy.10:12
vila..where the exception is re-raised by join()10:13
spivSo pardon me if I don't consider that a great excuse :)10:13
vilaspiv: well, if you require all thread users to implement such a mechanism, why not implementing it in thread ?10:15
vilaspiv: the try/except/finally is not always enough, you also need a guarding event in most cases and this event should be set to ensure the caller is not blocked10:16
hrwhi10:17
vilamgz: to be precise, there are still 3 failures on OSX (plus some tweaks of LC_ALL) but at least it *completes*10:18
vilamgz: which is *huge* from my POV :)10:18
spivvila: the standard library has many deficiencies10:18
spivvila: this is just one of them :)10:18
hrwI have been trying to use git-bzr-ng plugin to get two way git<>bzr bridge so I will not have to learn bzr and can use git for it. clone works but push works only if there were no changes done. push with change ends with http://pastebin.com/XA8LJgVv reported.10:19
hrwcan someone look at pastebin and comment?10:19
hrwit works when changes are pushed to new bzr branch but not when pushed to existing one10:23
vilahrw: by git-bzr-ng you mean bzr-git ?10:25
hrwno10:25
vilahrw: and you seem to be using bzr-fast-import...10:26
hrwhttp://github.com/termie/git-bzr-ng/10:26
hrwgit-bzr-ng uses bzr-fast-import in backend10:26
hrwbzr-git is to get git repo in bzr. git-bzr-ng is to get bzr repo in git10:26
vilahrw: why don't you try to use bzr-git instead ? I never heard about git-bzr-ng so I'm not sure you get a lot of answers in *this* channel...10:27
hrwvila: http://marcin.juszkiewicz.com.pl/2010/10/06/bazaar-what-is-wrong-with-it/ summaries my feelings about bzr10:27
hrwvila: in short: I do not like bzr.10:28
vilahrw: I'm not discussing whether you like bzr or not, just trying to point you to the right place to get the right answers10:28
hrwsure10:28
vilabut coming here saying that don't like what we do doesn't sound like the best start :) Welcome anyway10:29
hrwI know - just wanted to ask for help to understand where from error comes.10:31
vilathe traceback tells it's from fast-import, try adding BZR_PDB=1 in front or your command and poke at parts and self_git_to_bzr_name for a start10:33
hrwthx, will check in few minutes10:33
mgzvila: to be clear, mac osx needs hack_get_transport to complete, or have you just not tried since your previous fixes?10:34
vilamgz: I tried with my fixes, the hack is needed, so the remaining leaks were caused by calls to the original get_transport, defeating the override10:35
mgzha.10:36
vilamgz: I ran with the hack and a live open-files windows and I never seen such a clean run :)10:36
mgzyeah, we're getting there!10:36
mgza bit more chipping away and we'll have a clean suite on all the platforms we try and support10:37
vilayour hack ensures get_transport is properly overridden so it validates all the fixes, I just wished I thought about it myself ;)10:37
vilathe bit I don't get though, is why this made such a huge difference between windows/OSX on one side and all the other on the other side...10:38
mgzI'm just answering poolie's question on the list, my understanding is it's how the different socket libraries work10:39
vilaand no cheap joke about proprietary softwares leaking resources :)10:39
vilamgz: oooh, let's try it on FreeBSD10:40
mgzand naturally that the tests are written by people on nix, so when there are problems there it's fixed before it ever lands10:40
vilain the *socket* library...10:41
mgzwindows at least has diverged rather from its start, not sure what osx uses.10:41
mgzbut still worth seeing if we get a speed up on freebsd10:42
txdvawesume10:43
txdvgit-bzr-ng - ill have to check it out10:44
vilamgz: yup, that's the idea10:44
mgzI want to know what the ng is for. Does it do time travel into the victorian age as well?10:45
txdvthere is already some git-bzr hack, so he wanted to make it sound new and cool10:46
vilahrw: Your post is not very specific about what is missing in bzr, filing bugs at https://launchpad.net/bzr/+filebug would get you more attention and better hope that we address your needs10:46
hrwok10:46
txdvit's missing a proper remote managing interface10:47
mgzthe stuff you said in here the other day was actually more enlightening10:47
txdvthose half backed branches which are tied to remote branches are buggy as shit10:48
mgzyou were trying to adapt your git-y workflow to bzr and struggling10:48
txdvi can adapt to new bzr'ish workflows10:49
txdvno problem10:49
mgzthat was aimed at hrw, but either way.10:49
mgzhacking up a giant change then splitting it into little bits to merge on the current trunk isn't something bzr supports particularly well, but there are ways10:50
Glenjaminhrw: re: your blog post - the first link on related is a similarly exasperated post about git from 3 years ago (which i presume is when you started using it)10:57
hrwGlenjamin: yes, related posts are often crazy10:58
Glenjaminmy point being, maybe you'll get used to it :)10:58
hrwwho knows.. maybe in 2014 I will use bzr more often10:58
mgzheh, good point Glenjamin. I do "graaa, new thing I don't want to adapt to" all the time.11:00
Glenjaminfor instance, I wouldn't generally try and re-organise a patch before trying to get it upstream, i'd just supply a mergable branch11:02
Glenjaminbut presumably cleaning up a patch like this is common in git11:02
mgzyeah, it's standard workflow for a bunch of projects.11:02
Glenjaminmy assumption is the reviewer would look at the final diff11:03
vilamgz: 22min on FreeBSD, nothing spectacular nor unseen11:11
vilaunless11:12
vilano, parallel=fork in both cases11:12
DaffyDuck_`Hello11:19
mgzthe slowness there does seem to be a little all over from disk access rather than lots in smart server tests, so shouldn't be suprised11:19
DaffyDuck_`I had some breakage in a repository earlier today, so I thought I'd take the opportunity to upgrade bzr to 2.1.2 (on Windows).11:19
DaffyDuck_`With the previous (2.0.0) version I got a bazaar directory with a bzr.exe file, but with this new version, I have not bzr.exe.11:20
DaffyDuck_`..and not bzr.py along the path.11:20
DaffyDuck_`Do I need to do some post-installation set up to get a command line "bzr" in Windows?11:20
mgzokay, #1 did you use the right installer? and #2 were there any error messages during the install process?11:21
DaffyDuck_`No error -- and I'm certain I used the correct installer.11:21
DaffyDuck_`Oh, just found it. I think. There's no dedicated bazaar directory any longer, but it has placed a bzr.bat under c:\python26\scripts.11:22
DaffyDuck_`I assume that's what I'm supposed to use instead.11:22
mgzcalled -setup.exe rather than .win32-py2.6.exe right?11:22
mgzokay, so you did use a different installer.11:22
DaffyDuck_`Hmm.. I wasn't aware there was more than one. :)11:23
mgzthat's fine (and often actually preferable if you have python installed anyway), but you do need to add the scripts dir to your path manually for some reason11:23
mgzthe actual python installer should do it for you really.11:23
DaffyDuck_`So the *-setup.exe contains a full python installation too?11:24
mgzit does.11:24
mgzand various bundled plugins as well.11:24
DaffyDuck_`Hm.. Seems overkill since I already had it. Well, that's one mystery less.11:24
DaffyDuck_`Well, time to get back to work. Thanks for the clarification.11:25
vilameh, I meant 2.2.1 not 2.1.2 right ?11:27
mgzyou typoing release notices still vila? :)11:28
vilaerrr, *he* meant, DaffyDuck_11:28
mgznope, I think they really meant 2.1.2 as was upgrading from 2.011:30
mgzand had done it long enough ago not to remember the installer looked different last time.11:30
vilashudder11:31
mgzokay, so about this hook.11:32
mgzwe want something that runs just before an actual connection is established?11:32
vilaor just after ?11:33
mgzor a generic transport setup thingy?11:33
vilano, I think at connection, so that it gets called if we re-connect too11:33
vilaboth pre and post can be useful, but I think we want post first11:34
mgzcurrently I see there's no one connect method like the disconnect you added, instead it's all connect_something11:35
vilaright, unifying this may come later, since we're talking about connection, the hook may be specific to ConnectedTransport, but generally adding stuff there is not worth avoiding adding it as unimplemented as the Transport level11:37
vilaI mean, define the hook at the Transport level even if it's called only by ConnectedTransport11:38
vilaAnd ConnectedTransport defines _set_connection that should be used by all relevant classes as part of their connect_something11:38
mgzhm, yeah, after the connection has been established11:42
vilayes, post_connect11:42
vilaspiv: ......and lp finally made your maverick package available, I installed it on the babune slave which turned blue for the first time. Pfew, just in time ;)12:01
senderbzr-svn is giving me problems since a day, bzr pull https+urllib://svn.uitburo.nl/Website/trunk barfs at me: http://pastebin.com/PZUuaHyU12:48
senderBazaar (bzr) 2.2.1 / svn 1.0.412:49
senderIdeas are very welcome12:50
sender:)12:50
maxbhmm13:08
* maxb tries13:08
maxboh, private repo13:09
* maxb shrugs13:09
maxbsender: Your subvertpy version is what?13:09
maxb(dpkg -l python-subvertpy)13:10
sendermaxb: thanks! 0.7.3-1ubuntu0~bazaar1~lucid113:11
maxbhmm. That's recent13:11
senderIt broke yesterday 'all of a sudden', I was using svn 1.0.2, and upgraded.13:12
maxbIn that case, there's a fair chance you've found a bug somewhere13:12
maxbIs this repository proprietary/confidential?13:12
sendermaxb: well, yes. nothing changed on the repository side...13:28
maxbnothing, other than new revisions?13:28
sendermaxb: that's right13:32
jelmersender: can you try a clone into a fresh repository ?13:43
senderjelmer: so you mean locally, using bzr branch? or using svn?13:44
=== Ursinha-afk is now known as Ursinha
jelmersender: using bzr branch, but cloning into a fresh repository, not reusing your existing local branch.13:50
senderjelmer: ok, understood. Trying now13:53
senderjelmer: taking a while...14:02
senderjelmer: do you think the local copy has corrupted in a way?14:02
senderjelmer: bzr check dies with an error aswell..14:02
txdvmuahahahaha die bzr die14:06
sendertxdv: *grin*14:07
jelmersender: yes, older versions of bzr-svn had a bug14:07
senderjelmer: too bad, error (dies) too14:07
jelmersender: same error?14:07
senderjelmer: http://pastebin.com/nNebXdHE14:09
jelmersender: hmm14:10
jelmersender: can you try again but remove the cache for your svn repository first ? It should be in ~/.cache/bazaar/svn14:10
senderjelmer: try the branch again?14:11
senderjelmer:  rm ~/.cache/bazaar/svn/* -Rf ?14:11
senderjelmer: ok, here goes again14:12
senderjelmer: thanks for helping me out :)14:12
=== Meths_ is now known as Meths
senderjelmer: darn, it still crashes after a long time14:24
senderjelmer: it even throws an ubuntu report the problem thingy, never seen that before. Oh and it complains that the problem cant be reported (typical...).14:25
senderarg! how am I going to work with this repo again :S14:26
jelmersender: what error do you get this time?14:26
jelmerstill the same?14:27
senderjelmer: what do you exactly want to know? bzr: ERROR: exceptions.AssertionError: 408 != 61914:27
jelmersender: so, the last resort is to try lp:bzr-svn and do the fresh clone again (with cache removed). If you can still reproduce it with that, plesae file a bug and I'll have a look at it tonight.14:34
senderjelmer: ok, thanks. So I go: sander@ubuntu:~/.bazaar/plugins$ bzr branch lp:bzr-svn14:35
senderDo I need to remove the package bzr-svn?14:35
senderWhat version am I pulling in right now? So I can check with bzr plugins?14:35
senderjelmer: are you Dutch :)14:36
jelmersender: bzr branch lp:bzr-svn ~/.bazaar/plugins/svn14:36
jelmersender: there's no need to remove the package14:36
jelmersender: jup, ik ben ook Nederlands :-)14:37
senderjelmer: great, now bzr plugins gives me: svn 1.0.5dev :)14:37
senderjelmer: locale hulp, fantastisch, zeer bedankt!14:37
senderjelmer: dan zeggen die url's in pastebin je iets meer :)14:37
senderjelmer: ok here goes again: bzr branch https+urllib://svn.uitburo.nl/Website/trunk uit-website14:39
senderjelmer: unfortunately, an error again: bzr: ERROR: exceptions.AssertionError: 408 != 61914:56
senderjelmer: :(14:56
Glenjaminhrm, what's 619 in base 8?14:56
jelmersender: :-(14:59
jelmersender: can you try the whole process again after applying http://samba.org/~jelmer/fileids.diff ?14:59
sendersander@ubuntu:~/.bazaar/plugins/svn$ patch -p0 < fileids.diff \ patching file revmeta.py15:00
senderjelmer: ~/.bazaar/subversion.conf of any influence?15:01
jelmersender: no, that shouldn't be relevant - the cache is, though15:02
senderjelmer: ok, applied patch, cleared cache, branching again.15:03
senderjelmer: too bad. bzr: ERROR: exceptions.AssertionError: 408 != 61915:30
senderjelmer: I don't know what could have changed..15:30
senderjelmer: can I give you more information to work with in any way?15:32
jelmersender: can you at least file a bug about it on launchpad? It's clearly a bug that's still present in current bzr-svn.15:38
jelmersender: it would be interesting to have a look at the "svn log --xml --with-all-revprops -v" output of the revision that triggers this issue15:38
senderjelmer: hope it's not a problem caused by corruption on the repository side... svn checkout seems to work fine15:38
senderjelmer: how do I proceed to find the revision?15:39
jelmersender: I doubt it's a problem on the svn side15:39
jelmersender: if you run the command again but set BZR_PDB=1 in the environment it should put you into a python debugger15:39
senderjelmer: I'm waiting for the svn checkout to finish, it's taking extremely long.15:51
senderjelmer: I might as well start the branch while it's still running. So: export BZR_PDB=1; bzr branch https+url://svn.uitburo.nl/Website/trunk uitwebsite15:55
senderjelmer: und jetzt?15:57
jelmersender: yep15:57
jelmersender: how much python experience do you have?15:58
senderjelmer: virtually zero :|15:58
lvhHello :-)15:59
jelmerhi lvh15:59
lvhCan someon reccomend a code review tool for use with bzr?15:59
lvhSo far I've come across lp merge requests, which are super awesome.15:59
lvh(I'm just scoping out what's available.)15:59
lvhI've thought about doing code review as commits, since that makes it easy to programmatically verify as well16:00
lvh(ie, stuff gets proposed for review, I add # XXX: No, fix this in the code)16:01
lvhthe only thing I can think of that would make merge proposals better is a side-by-side view like bzr qdiff or rietveld, but I suppose this is not the right place to suggest that16:02
jelmerlvh: I don't have experience with the integration in other tools, but I know there's been work done to support bzr in rietveld and reviewboard16:10
lvhjelmer: Yeah, bzr is supported in rietveld16:11
=== deryck is now known as deryck[lunch]
=== deryck[lunch] is now known as deryck
senderjelmer: output is getting throttled17:21
senderjelmer: zie je de output?17:22
=== oubiwann is now known as oubiwann-away
=== oubiwann-away is now known as oubiwann
=== jam1 is now known as jam
=== Meths_ is now known as Meths
=== beuno is now known as beuno-lunch
=== beuno-lunch is now known as beuno
pooliehi all22:00
=== frakturfreak_ is now known as frakturfreak
bzrnewbhello. i'm planning on using bazaar for a single-user project but I have some questions about how it actually works. Anyone able to enlighten me?22:35
GaryvdMbzrnewb: sure.22:35
GaryvdMbzrnewb: Please don't ask to ask, just ask :-)22:36
GaryvdMHi poolie22:36
bzrnewbcheers. I want to edit and maybe create my own scripts in Unrealscript for UDK. Everything is under a folder named src in UDK main folder and if I move it somewhere else the engine won't read them.22:37
pooliehi gary22:37
bzrnewbso if I set up a repository somewhere else how does it work with these files? are the files stored in repository or remain at the original folder but changes,  etc go to repositroy?22:37
peitschiemornin all :)22:38
bzrnewbrepository*22:38
pooliebzrnewb: (nice nick) there are basically two directories you need to know about22:38
pooliethere's the repository, which holds a bunch of pack and index files etc, which stores the history of the project22:38
poolieand then there's the working tree, which holds the actual checked out copies that you can edit, run, etc22:39
pooliein your case you just need the working tree to be under UDK22:39
poolieperhaps the easiest thing is to just do 'bzr init' in that directory then the repo will be there too22:39
GaryvdMbzrnewb: I would just "bzr init" in that dir. That will create the working tree and repo there22:39
pooliethen if you want to back it up, you can 'bzr push' from there to somewhere else22:40
bzrnewbhmm can I select the entire UDK as the worktree and ignore the files/folders I won't need so I can only work with src files I want to edit.22:41
bzrnewbbut also include assets etc.22:41
poolieyes22:41
GaryvdMbzrnewb: Yes, with bzr ignore22:42
GaryvdMor just add the files you do want.22:42
poolieif you want to ignore most of it and just version a few files, i'd do22:43
bzrnewbawesome. When I make a change in code does it store the original file somewhere else or does it just save a change history which I can do rollback. Just trying to understand if it will create loads of files for each change and pollute the UDK folder22:43
poolie'bzr ignore *'22:43
poolie(or the equivalent in the gui) then add the rest22:43
bzrnewbyeah I'll probably stick to gui for now :)22:43
poolieit stores it into the repo dir, which in your case will be .bzr/repository/....22:44
pooliein a database22:44
bzrnewbI tried svn before bazaar and it was a bit complicated which is why I'm trying bazaar, but bazaar sounds a lot easier for single-user use.22:44
mwhudsoni would certainly agree with that22:45
bzrnewbthe whole server thing was overkill for what I'm intenting to do22:45
bzrnewbdoes bazaar only support code comparison or can it preview/compare doc, excel and image files?22:46
bzrnewblike perforce22:46
bzrnewbor alienbrain22:47
GaryvdMbzrnewb: bzr qdiff does compare images side by side22:47
bzrnewbsounds like it's perfect for me. I'll set it up and see how it goes. Thanks for clearing things up for me22:49
GaryvdMbzrnewb: You can use any diff tool that accepts 2 files with bzr diff --using alienbrain-diff22:49
bzrnewbcool. I might come back if I run into any problems :) Cheers guys22:50
jam1poolie: I'm heading out now, but I figured I would at least /wave at you22:56
pooliehi jam1, thanks!22:56
pooliehave a good weekend22:56
=== jam1 is now known as jam
jampoolie: well, only Thurs here, but thanks for the day off :)23:00
jam(yes, I plan on working tomorrow)23:00
pooliei probably won't see you though :)23:00
poolieso i'm just queueing up the good wishes23:00
pooliei'm going for a ride tomorrow23:01
mwhudsonjam: hey, btw, can you run 'make lint' in lp-service?23:02
jammwhudson: I can before I push again, but not tonight.23:02
mwhudsonthere's a bunch of irrelevant stuff, but the unused imports can be fixed at least23:02
mwhudsonjam: fair enough23:02
jam(spent a fair amount of time getting pyflakes-vim working, since it seems to require a new python which requires a new vim, ...)23:03
mwhudsonargh23:04
jammwhudson: I'll probably be back around in another hour or so, would it be possible to work with you a bit and tie up any loose ends here?23:05
* jam really leaves for now23:05
mwhudsonjam: should be, give me a ping23:05
GaryvdMmwhudson: Is there a way to get pydoctor to syntax a bit of example code? The rst docs suggest .. python::, but that does not work in pydoctor23:09
GaryvdM*syntax highlight23:10
mwhudsonGaryvdM: uh, don't know off hand23:10
mwhudsonGaryvdM: you are using --docformat restructuredtext i assume?23:10
GaryvdMmwhudson: Yes23:11
mwhudsonGaryvdM: and what does 'does not work' mean, doesn't highlight or errors?23:11
GaryvdMmwhudson:  I assume that  --docformat restructuredtext is what is used for http://people.canonical.com/~mwh/bzrlibapi/bzrlib.html23:12
mwhudsonGaryvdM: it is23:12
GaryvdMmwhudson: Does not highlight23:12
GaryvdMmwhudson: Ok, don't worry. I'll dig a bit myself.23:14
mwhudsonGaryvdM: if it's doing the highlighting with css it might be generating the appropriate output but pydoctor isn't including the necessary css?23:14
mwhudsonGaryvdM: view source should make that pretty clear23:14
* GaryvdM checks23:14
GaryvdMmwhudson: nope.23:16
mwhudsonhm23:16
GaryvdMmwhudson: I think that .. python:: is maybe a feature of spinx23:16
mwhudsonah, that could be23:17
* GaryvdM tries to find where me read that23:17
mwhudsonbut i'd really expect it to blow up in that case23:17
=== lool- is now known as lool
GaryvdMmwhudson: Oh - It was in the eypdoc docs: http://epydoc.sourceforge.net/manual-othermarkup.html#colorized-snippets-directive23:24
mwhudsonGaryvdM: well pydoctor uses the epydoc routines to do the formatting, so i've no idea why that wouldn't work23:25
* GaryvdM tests if it works in eypdocs23:25
GaryvdMmwhudson: Ah - It is working, but it dose not highlight much, and css missing. I try submit a patch for the css.23:35
mwhudsonGaryvdM: ah23:36

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