/srv/irclogs.ubuntu.com/2011/11/06/#bzr.txt

Noldorin__err00:25
Noldorin__bzr mv --after is still telling me the ssource file is not versioned...help please?00:26
Noldorin__anyone around? :-)00:37
Noldorin__anyone?01:00
Noldorin__bah, never mind. my bad01:11
=== newbie is now known as Guest75465
=== yofel_ is now known as yofel
wgzand back.14:10
jelmerhey wgz18:24
wgzhey jelmer!19:18
jimisHow can I see which revision of trunk I merged earlier?19:45
lifelessbzr missing is the usual way19:48
lifelesslog -n2 (or -n0) will show you the merge in your local tree, but not the revno of that revision on trunk itself.19:48
jimislifeless: thanks, I didn't know about bzr missing19:51
jimisso the revision I last merged is the last one bzr missing shows, minus one?19:51
jimis(the reason is that I want to produce a diff of my tree versus that revision of trunk)19:52
jimisnice, a new revisionspec syntax19:56
jimisbzr diff -rrevno:112685:../gcc-lp-notrees/trunk19:56
lifelessoh20:00
lifelessfor that you might like20:00
lifelessbzr diff -r ancestor:../gcc-lp-notrees/trunk20:00
lifelessor merge --preview can be good as well20:00
jimisancestor is nice thanks :-)20:02
jimismerge --preview I think doesn't do what I need20:03
lifelessmerge --preview *into* trunk will show you the result of merging your branch into trunk20:03
lifelessincluding conflicts20:03
jimis*into* is the key word :-)20:03
jimisI don't want to "bzr switch" because I have local changes :-p20:04
lifelessso; pushd ../../gcc-lp-notrees/trunk; bzr merge --preview $!20:04
lifelessor something like that20:04
lifeless+ popd20:04
jimishmmm pushd/popd20:04
jimisdidn't know20:04
jimisaah you mean the shell command, not a bzr command...20:05
lifelessah20:05
lifelessOLDPWD20:05
jimislifeless: as the name suggests gcc-lp-notrees is a --no-trees branch, which doesn't have contents. Can I still do that20:06
lifelesspushd ../../gcc-lp-notrees/trunk; bzr merge --preview $OLDPWD; popd20:06
lifelessah, no20:06
jimisAnd I do work on a single checkout, using "bzr switch" for a git-like workflow20:06
lifelessbut20:06
lifelessyou should be able to in principle - can you file a bug, or would you like me to ?20:06
jimisplease do :-20:06
jimisand I'll try later to file one for showing the source revision for merges, in bzr log20:07
jimisI think that would be extra useful20:07
jimisIn general bzr needs work for single-dir workflow20:08
jimisand that's the only way to work on huge projects like gcc20:08
lifelessoh totally.20:09
lifelesshttps://bugs.launchpad.net/bzr/+bug/88690620:09
ubot5Ubuntu bug 886906 in Bazaar "merge preview wants a working tree" [Undecided,New]20:09
jimisthanks lifeless20:10
lifelessde nada20:10
jimisno connection with linaro though :-p20:10
lifelessah - I will fix that :)20:10
jimisI started working on gcc this summer for GSOC20:10
lifelessthe linaro folk do quite some gcc work20:11
jimisI don't know why I chose bzr but it made my life pretty hard :-p20:11
lifelessfixed, thanks20:11
jimisI have on my TODO to file 4-5 bugs about bzr single-dir workflow20:11
jimisand pre 2.4 bzr was a _nightmare_20:12
jimisat least now it's workable...20:12
lifelesscool, please do!20:12
jimishttps://bugs.launchpad.net/bzr/+bug/88691020:21
ubot5Ubuntu bug 886910 in Bazaar "bzr log should show source tree revision for merges" [Undecided,New]20:21
jimisAlso do you know if "bzr merge" has a "pretend" option? How can I know if conflicts will happen?20:22
lifeless--preview :)20:23
jimislifeless: preview shows a diff if I'm not mistaken?20:24
lifelessyes, including conflicts20:24
jimisI want the exact output as merge, but without applying any changes20:24
jimisso that I don't get lost in the thousands line diff20:24
lifelessI'm not sure20:24
jimis--pretend would be nice :-p20:24
lifelessTBH what I do is just merge; bzr st; bzr revert if I want that sort of thing20:24
lifelesseven on large trees merge should be pretty fast these days20:25
jimisit's manageable :-p20:25
jimis10min is fast enough20:25
jimispre-2.4 it was unmanageable :-p20:25
lifeless10min? wow :(20:27
jimis"bzr status" needs badly to be speep up... It know takes ~1.5 min but such an operation should be less than 10s20:27
lifelessthats slow20:28
lifelessdo you have the C extensions ?20:28
jimislifeless: I'm not sure, I only did a "setup.py install" thing20:29
jimishow can I see?20:29
lifelessIIRC - check ~/.bzr.log, it whines in there20:30
jimisSun 2011-11-06 22:16:44 +020020:31
jimis0.292  bazaar version: 2.4.120:31
jimis0.292  bzr arguments: [u'log', u'-n0']20:31
jimis0.491  looking for plugins in /home1/public/jimis/.bazaar/plugins20:31
jimis0.491  looking for plugins in /home1/public/jimis/dist/lib/python2.6/site-packages/bzrlib/plugins20:31
jimis0.620  looking for plugins in /usr/local/ActivePython-2.6.4.10-linux-x86_64/lib/python2.6/site-packages/bzrlib/plugins20:31
jimis0.640  encoding stdout as sys.stdin encoding 'UTF-8'20:31
jimis0.940  encoding stdout as sys.stdin encoding 'UTF-8'20:31
jimis109.609  Transferred: 0kB (0.0kB/s r:0kB w:0kB)20:31
jimis109.610  return code 020:31
jimisI don't see any whining, right?20:31
lifelessseems fine20:31
lifelessare you on MacOSX ?20:31
jimisno, RHEL520:31
jelmerhi jimis, lifeless20:32
lifelesshmm20:32
jimishey jelmer20:32
lifelesscause 1.5 minutes is (IIRC) 10 times the duration I had when I was optimising status on trees of a similar size20:32
ephanHey20:32
lifelesshi jelmer20:32
jimislifeless: My experience on this host tells me it's the NFS mounted home20:32
lifelessjimis: hah. Yes, NFS will kill your performance20:32
ephanI am getting "Permission denied (publickey)."20:33
ephanShould I ask a question on Launchpad, I Found a lot similar like these, but none like mine20:33
jimislifeless: it uses synchronous stat() calls which means for every file a full round-trip20:33
lifelessjimis: out of curiosity, how long does 'time find . -type f -type d' take20:33
lifelessjimis: in principle those get cached by the local OS, and readahead can happen as well20:34
jimislifeless: I've done that, it's pretty slow I think20:34
jimislifeless: not the stat() metadata20:34
lifelessjimis: yeah, bzr st cannot be faster than that.20:34
lifelessits the lower limit20:34
jimisthat's only cached for 2-3 seconds as far as I know20:34
jimisa solution would be asynchronous stat(), which doesn't exist :-p20:35
jelmerI also think merge hasn't had much attention from our speed-meister yet20:35
lifelessin practice emulating a single-user chatty environment on a shared high latency substrate is doomed to be painful20:35
lifelessjelmer: its had a couple of base passes20:35
lifelessjelmer: but there is probably plenty of room to improve20:35
jimisThe proper solution would be multiple lightweight python threads, blocking separately on stat()20:36
jimisit's on my TODO :-p20:36
lifelessmmm, that will be -very- slow on a non-NFS machine20:36
jimiscause I see this slowness everywhere: find, rsync, but most annoyingly bzr20:36
lifelesspython and threading don't play all that well together20:36
jimislifeless: I don't think show, why?20:36
jimisah I see20:36
lifelesspython has a single threaded core20:37
jimishmmm20:37
glyphlifeless: erm20:37
lifelessexecuting code in two threads requires a full context switch every time one of them wants to execute bytecode20:37
jimisisn't there a "threading" module or something? I remember an easy way for light threads20:37
lifelessthere is, and it works, and if you're blocked on IO its great; the problem I am pointing out is that on NFS you are combating latency20:38
glyphjimis: they're heavyweight (operating system) threads, not lightweight (interpreter) threads, and they don't parallelize CPU work, since there is a single lock for executing bytecode20:38
lifelessand on local machines you're not, because your page cache will be hot and doesn't have the same arbitrary time based locked + does decent readahead20:38
glyphpython and threading play together just fine as long as you don't care at all about performance :)20:38
lifelessheh, I'm all about performance ;)20:39
glyphthe right solution of course is that bzr should use twisted!! woooooo20:39
glyph(and then the bzr developers should spend like 2 years implementing a general purpose, fast, event-driven filesystem I/O layer)20:39
lifelessglyph: while I love twisted, it still adds quite some overhead ;)20:39
glyphlifeless: if it's a realistic possibility that bzr could use twisted to address some of these issues, I'd love to sit down at some point and talk about how to get the import time down to something acceptable to bzr20:40
glyphlifeless: the runtime overhead is negligible, even negative :)20:40
jimisglyph, lifeless: this threading model sounds fine for blocking on I/O...20:40
glyphlifeless: mostly I was just trolling but whenever I go trolling I am ready to back it up with some discussion at least ;)20:40
lifelessglyph: its an interesting question. Uhm, I don't see how the runtime overhead can be negative, you'd be doubling the object alloc/free rate at minimum, if every file statted returned a deferred20:41
glyphlifeless: Hrm20:41
glyphlifeless: that's not at all how I'd do it20:41
jimisAnyway, it remains for me to implement it sometimes, and measure real numbers :-p20:41
lifelessjimis: indeed :)20:41
lifelessglyph: directory at a time?20:41
glyphlifeless: on the other hand, the thing that would do the "right thing" is still kinda in development; I'll keep you posted when there's a prototype20:41
glyphlifeless: no, Deferreds are the wrong abstraction for an arbitrarily-big stream of events20:41
glyphlifeless: that's the mistake web2 made and that's why its performance was a disaster20:42
lifelessglyph: ah, a producer of some sort :)20:42
glyphlifeless: yes.  except our existing producer API is _also_ a disaster.  Hence the new thing :)20:42
lifelessglyph: so, I'd like to see the right thing; in particular how you introduce file system concurrency w/out threading and without sacrificing the non-threaded case..... on linux, with its appalling non-threaded concurrent disk IO story.20:43
lifelesshmm, that came out negative20:43
lifeless'I am interested'.20:43
lifelessAnd suspect its hard.20:43
glyphlifeless: it is hard, and it's basically impossible to get right (wouldn't it be nice if linux didn't suck) but the answer rhymes with "one thread per platter"20:43
lifelessglyph: you might be interested in the disk IO work Alex Rousskov has been doing in squid320:44
glyphlifeless: you want one thread doing the work and one feeding it, and you want the feeder thread to get a little bit ahead of the other thread and build up a buffer, because its performance is going to be all over the map as different directories have different tree balances20:44
jimislifeless: the /proper/ way is posix AIO (see aio.h)20:44
glyphjimis: hahahahaha20:44
lifelessglyph: you may know this already but squid is a twisted-like program - nonblocking callback based core, some work threads and helper processes.20:44
glyphjimis: oh that's a good one20:44
jimisbut stat() has no AIO hook20:44
lifelessjimis: AIO is sadly sadly sadly broken.20:45
glyphjimis: http://stackoverflow.com/questions/87892/what-is-the-status-of-posix-asynchronous-i-o-aio20:45
lifelessthe kernel implementation is atrocious, because abstractions leak.20:45
glyphlifeless: the kernel implementation is mostly just atrocious because it's atrocious20:45
jimisFWIW I've used linux AIO (not posix, linux kernel specific)20:45
jimisit works, and it works fast20:45
jimisbut still no stat()20:45
lifelessglyph: really? Cause at LCA a kernel dude was up saying how bad it was20:46
lifelessglyph: and the next New World Order was going to fix everything.20:46
glyphlifeless: I'm agreeing20:46
lifelessglyph: ;)20:46
glyphlifeless: I'm just saying that it's not because any abstraction leaked, it's because it sucks completely20:46
glyphthe abstraction _as designed_ is terrible, the POSIX guys were on crack or something when they came up with it20:46
glyphI mean, come on20:46
glyphhere's an idea20:46
glyph"select() works on regular open files, and recv() can give you a short read on an open file"20:47
glyphwhy is _that_ so hard20:47
jimisjelmer, maybe you know:  showing find the source revno in "bzr log" is easy, or it would need some kind of hack?20:48
lifelessglyph: indeed20:48
lifelessI have to pop out20:48
glyphlifeless: In my experiments on this topic, worker processes fared better than worker threads, because the GIL has some messed up interactions with the weird way Linux uses I/O to bias scheduling20:49
lifelessbut look at alex's disker work20:49
lifelesshe's been tuning to interact well with the linux write daemon, tuning IO to match disk load, spilling requests when needed etc.20:49
glyphlifeless: where is this?20:49
lifelessglyph: the GIL...messed up...weird.20:49
lifelessglyph: sounds familiar :)20:49
jelmerjimis: what do you mean with the source revno?20:50
lifelessglyph: http://wiki.squid-cache.org/Features/RockStore20:50
lifelessbbiab20:50
jimisjelmer: the source revno of merges, see bug #88691020:50
ubot5Launchpad bug 886910 in Bazaar "bzr log should show source tree revision for merges" [Undecided,New] https://launchpad.net/bugs/88691020:50
jelmerjimis: I'm not aware of any revspecs at the moment that do that; what are you looking to do exactly (perhaps there's some way of doing it without that?)20:53
jelmerjimis: another thing you can do is to use "bzr log -n1", though that will get you more data20:53
jimisjelmer: still the revno is missing20:54
jimisfor now lifeless helped, and I did "bzr missing"20:54
jelmerjimis: sorry, I meant "bzr log -n2"20:54
jimisaha20:54
jimisI'll try20:54
jimisstill "bzr missing" wasn't perfect, I had to /guess/ the revision I needed was the last it reported, minus one20:55
jimisjelmer: nope, -n2 doesn't show it20:58
jimisanyway, I'll leave that bug there, I'll look into it myself sometime hopefully it's easy20:58
jelmerjimis: it does here, perhaps I don't understand what you mean20:59
jelmerjimis: -n2 isn't showing the revision number for nested revisions for you?20:59
jimisjelmer:     revno: 109439.2.324421:01
jimisbut I want the original revision that I merged21:01
jimiswhich is 115532 for example21:01
jelmerah, you're looking for the revision number as it exists *in the original branch* ?21:01
jimisright!21:02
jimismaybe I should edit that bug :-p21:02
jimisso I can diff easily21:02
jimisjelmer: so is it easy or needs hack?21:02
jelmerjimis: that's not easy, as you'll need to reference the original branch somehow21:02
jimisI see, thanks21:03
pooliehi all22:41
jelmerhi poolie22:42
jelmerdid you have a good weekend?22:42
pooliehi, yes thanks22:43
pooliethree parties 8)22:43
jelmer:)22:45
pooliethe bbq sunday had some people i hadn't seen for ~9 years so that was a bit strange22:46
pooliebut nice22:46
pooliehow are you?22:46
jelmernot as many parties, but still had a very good weekend :)22:47
poolieit's unusual for me22:47
poolieso i think i saw you took the bug about, um22:48
pooliepassing --allow-fallback, is that right?22:48
jelmeryeah - there's an approved MP for it now, but I haven't landed it yet22:48
jelmernot sure what your plans were regarding deployed of newer buildd changes22:48
jelmer*deployment22:49
pooliei'm going to try to get buildd building as a separate tree from launcphad22:49
pooliei got approval for all the changes needed to make it disconnected while still being in the same tree22:50
pooliewith a new txfixtures project split out22:50
jelmerooh, neat22:50
poolieyeah,  it's one small step towards easier deployment, perhaps22:50
pooliesome tests fail22:50
pooliei am hoping to fix them today and then build a package and then try to get lamont to install it tomorrow, my time, his monday22:51
poolieiwbni he could pair with say spm or some other losa so that other people get comfortable deploying things22:51
pooliei wonder if we could at least trust them to deploy to staging buildds22:52
poolietrust/teach22:52
jelmerhmm, yeah. that would probably already make a huge impact on the amount of time it takes to get something deployed22:53
poolieanyhow, that's my main thing for today22:54
pooliei think you should merge https://code.launchpad.net/~jelmer/launchpad/buildrecipe-allow-fallback-to-native/+merge/8127122:55
poolieor i can do it22:55
poolieit will eventually clash with my split-out22:55
pooliethough, obviously it's trivial to move it across22:56
jelmerpoolie: ok, I'll land it. I just wanted to check with you in case you wanted to deploy anything separately before the new bzr-builder22:58
poolie:/22:58
poolieit's hard to decide22:58
pooliedeploying seems both expensive and risky22:58
poolieso i'm torn between testing out small changes individually, and deploying larger batches so we're not stuck here until christmas22:59
pooliei think on the whole doing this whole batch together is better, including trying to split out buildd stuff22:59
pooliewhich may make things easier in future22:59
jelmer+123:03
pooliejelmer, oh the other thing someone should look at23:07
poolieis https://bugs.launchpad.net/udd/+bug/84806423:07
ubot5Ubuntu bug 848064 in Ubuntu Distributed Development "Revision not present branching from udd-imported branches on lp" [Critical,Confirmed]23:07
pooliei decided to stick with the buildd updates23:08
poolieoh we need to work out the sru too23:29
jelmerI uploaded a package to oneiric23:34
jelmerwe just need to do the verification23:34

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