/srv/irclogs.ubuntu.com/2011/03/15/#bzr.txt

maxbjelmer: You have removed the failure note about bzr-explorer from DailyPpaStatus, but the latest build is still failing in the same way?00:28
jdobrien_ping00:38
maxbping who?00:41
jelmermaxb: it's a bzr bug that's been fixed01:24
magciusjam, ping02:58
magciusjam, http://bazaar.launchpad.net/~jstpierre/loggerhead/fix-569358/revision/43402:59
magciusalso, does the lp bookmark thingy support shortcuts for users? So I can replace lp:~jstpierre/loggerhead/fix-569358 with ~loggerhead/fix-569358 or something03:00
magciuser, lp:~loggerhead/fix-56935803:00
spivmagcius: lp:~/loggerhead/fix-56935803:05
spivmagcius: “~foo” of course would always mean the user foo.03:05
magciusOK.03:05
spivI tend not to use that shortcut though because you can't share that URL with other users.03:06
magciusspiv, it's a bit long to type.03:43
magciusspiv, and I accidentally pushed to a different URL at first.03:43
magciusand I'm not sure I can re-set it03:44
spivreset what in particular?03:45
spivThe default location for 'bzr push'?  Use 'bzr push --remember URL'03:45
spivjam: http://blog.vrplumber.com/index.php?/archives/2490-Meliae-is-neat,-but-scary....html04:43
=== arjenAU2 is now known as arjenAU
thomiHi, I'm trying to package a bzr plugin. I'm testing the package, and I can't see the plugin name in 'bzr plugins'. I can't import the plugin from a python console either, but if I cd to /usr/share/pyshared then I can.05:40
jamspiv: thanks for the heads up. Didn't realize someone was talking about me at pycon :)05:44
pooliethomi, i'd guess it's because you're installing it to the wrong path05:44
jambut yes, the observation that memory gets sucked into dicts is also what I've found05:44
jamhi po05:44
jampoolie: hi05:44
pooliehi there05:44
pooliei'm going out now; biab05:44
thomiI'm installing it to /usr/share/pyshared/bzrlib/plugins/sloecode - if I put it in ~/.bazaar/plugins/sloecode it works fine.05:45
poolieby hand, or using pycentral etc?05:45
pooliei think just putting the files there is not enough05:46
pooliehi mars05:46
thomithe latter, although I'm just following the packaging guide on the wiki, so I may have missed something05:46
jammagcius: looking pretty good. The only thing left I might ask (since you've done so well), is to use "e = self.assertRaises(...)" and then check the attributes of the exception, to make sure it is redirecting to the right url. Then we know the redirecting is working correctly, and somebody can't mess it up later.05:47
jamthomi: offhand, I don't think /usr/share/pyshared is in the bzrlib search path05:47
magciusjam, I was going to do that, I didn't know assertRaises returns the exception.05:47
jamI think we search the platform specific ones05:47
jammagcius: it doesn't in unittest, it *does* in bzr's test suite05:47
magciusYeah.05:48
pooliethomi, i would just check what's different between your packaging and say bzr-gtk05:48
magciusI usually use pytest, which is a bit nicer, I guess.05:48
thomijam: on my system (Ubuntu 10.10), all the bzr stuff is in there. I can see my plugin right next to all the other installed plugins :-/05:48
magciusunittest is very barebones, I know twisted fixed a bunch of those random things up05:48
thomipoolie: yeah, I've been comparing to bzr-hg, and so far they look very similar05:48
jamthomi: very strange05:48
jamyou might want to try "bzr plugins" and "bzr <command> -Derror". It is possible the plugin is failing to load, and -Derror should tell you why05:49
lifelessmagcius: bzr's test frame is (mostly) testtools these days05:49
lifelessmagcius: which has some very nice stuff in it, if I do say so myself05:49
magciustesttools?05:49
lifelesstesttools05:50
magciusfork of unittest or something?05:50
lifelesshttp://pypi.python.org/pypi/testtools05:50
spivmagcius: https://launchpad.net/testtools, http://pypi.python.org/pypi/testtools05:50
thomijam: I've tried that. 'bzr plugins -Derror' produces no additional output, and 'bzr sc-login -Derror' gives me "unknown command 'sc-login'".05:50
spivmagcius: a library of tasteful extensions within the unittest design, not a fork05:51
magciusOK.05:51
magciusEverybody has their own testing framework :(05:51
magciuslatest kid on the block: http://packages.python.org/Oktest/05:51
spivThat's why testtools isn't a new framework :)05:52
magciusjam, so, I know Loggerhead is a separate project from Launchpad.05:52
magciusjam, so, if I wanted http://bazaar.launchpad.net/launchpad to do a redirect to http://code.launchpad.net/launchpad05:53
magciushow would I do that?05:53
magciuswithout introducing some coupling or assumptions that we're running under Launchpad.05:53
magciusWould I have a hookable, global 404 handler?05:53
jammagcius: launchpad runs its own "main" script, you could certainly do something at that level05:56
magciusjam, linky?05:56
jammagcius: grabbing it05:56
magciusThanks!05:56
jammagcius: http://bazaar.launchpad.net/~launchpad-pqm/launchpad/stable/files/head:/lib/launchpad_loggerhead/05:57
magciusOK.05:57
jamand http://bazaar.launchpad.net/~launchpad-pqm/launchpad/stable/view/head:/scripts/start-loggerhead.py is the actual start script05:57
jammagcius: I would probably say, poke around in 'app.py' looking for where requests come in. Because you have to do it higher than the BranchWSGIApp, because you don't have a branch05:58
magciusRight.05:58
magciusIs most of the code in lib.launchpad_loggerhead.app just there for the oops stuff?05:59
jammagcius: and stuff like /favicon etc05:59
magciusOK.05:59
jamif you look at "RootApp.__call__" it has a fair amount of tests. It also glues the Launchpad virtual file system into the web interface06:00
magciusjam, https://code.launchpad.net/~jstpierre/loggerhead/fix-569358/rev/43506:21
magciuser06:21
magciusjam, http://bazaar.launchpad.net/~jstpierre/loggerhead/fix-569358/revision/43506:21
spivjam: I'd appreciate your thoughts on https://bugs.launchpad.net/bzr/+bug/70934907:14
ubot5Ubuntu bug 709349 in Bazaar "bzr: ERROR: bzrlib.errors.RetryWithNewPacks: Unprintable exception RetryWithNewPacks" [High,In progress]07:14
spivjam: I've just added a comment about where I'm up to: basically something that ought to be impossible appears to be occurring.07:16
pooliespiv, i read that07:38
pooliemy only idea would be that it is indeed filesystem weirdness, but that would be strange on a local linux fs07:39
spivpoolie: thanks for that.  At least I'm not missing anything obvious then :)07:44
poolie:}07:45
vilahi all !08:02
jammorning vila08:04
vilahay jam, you're up quite early :)08:04
vilajam: (according to the logs that is)08:04
jamvila: I get up around 6:30. Just takes a while to get everyone off to school, etc.08:04
pooliehi jam, vila08:29
jamhi poolie08:29
vilahey poolie08:29
mr-russhi vila, I manage to propose a merge, thanks for the help.08:31
vilamr-russ: you're welcome ! (on all counts ;)08:31
vilapackage-importer is toasted08:45
viladebug_log mentions OperationalError: table failures has 4 columns but 3 values were supplied08:45
viladoes that ring any bell in someone's head ?08:46
spivvila: not for me08:50
vilaI'm investigating but the error message basically implies that the failures table got an additional row...08:51
maxbwhere by row, you mean column? :-)08:55
vilamaxb: obviously :D08:56
vilabut this doesn't make a lot of sense... the column is 'emailed' and has been there for more than a year...08:58
vila...except if this exception was *never* caught before....08:58
jamvila: one possibility is if the column changed to being NOT NULL or something along those linse09:05
jamlines09:05
vilajam: I've icommon..._set_failure to properly initialize 'emailed' to 009:06
jamvila: weird, 'emailed DEFAULT 0'09:06
vilaI've also killed the running mass_import and the nexuiz-data one09:06
vilajam: indeed09:06
jambut also "SELECT count(*) FROM failures" == 009:06
jamvila: so no failures have ever been logged09:06
jamor that table is cleared out by something09:06
vilajam: or some new sqlite3? version introduced a change ?09:10
vilain behaviour09:10
vilabah, very unlikely09:11
jamvila: I think the "we've never put anything into that failure table" is pretty significant09:11
jamthe table is empty right now09:11
vilajam: it is not on my local importer09:11
vilaand _start_package insert a a new row09:12
vilain the failures table09:12
jamvila: I'm just telling you what I see on jubany09:12
jammeta.db has no rows in the "failures" table.09:12
vilajam: I get that, I just continue the discussion :)09:12
vilathe truth is there somewhere, waiting for us to discover it by throwing contradictions to each other ;)09:13
jamvila: so I agree with your original assertion "we've never hit that on Jubany" or, we've hit it, but just failed imports because of it, etc.09:13
vilaso I've landed a patch that create the failure row as it is created in _start_package and I'm waiting for some {lo|g}sa to restart the importer...09:14
vilaI've been told we're losa-less until US starts...09:15
jamvila: I started. wait...09:18
vilajam: no !09:19
vilajam: you can't properly start the mass_import.py script09:19
jamvila: I'm saying I started work, but I'm not in the US zone anymore.09:20
vilagee, you scared me ;)09:20
vilaI almost made a joke about you not being in US anymore... :D09:20
pooliethe kanban is about to get a bit more accurate09:20
poolieas i roll out trunk09:21
poolieah, some of it's going to need to wait on a review09:21
pooliebut, still, a bit better09:21
pooliei should finish09:38
poolievila, i just noticed http://people.canonical.com/~mbp/kanban/vila-kanban.html is curiously empty09:38
pooliei'm sure you're doing stuff but maybe you should update the bugs?09:38
vilapoolie: I just made it even more empty :)09:39
poolie:)09:39
vilapoolie: and I just pushed a fix for the importer without an associated bug which doesn't help either ;)09:41
pooliewell, the point is to fix things, not move the cards around09:41
pooliebut a certain amount of keeping track of things is useful09:41
vilapoolie: sure09:42
vilawow: http://babune.ladeuil.net:24842/job/selftest-windows/lastFailedBuild/testReport/junit/bzrlib.tests.test_export/TarExporterTests/test_tgz/09:43
vilajelmer: ^ could that be related to your recent changes ?09:43
jamvila, jelmer: Looks like a O_BINARY issue to me09:45
jamprobably "bzr export" isn't set to use EXACT encoding09:45
jamso it outputs in Text form, and that garbles the compressed data09:45
vilado we have a bug about switching to sphinx (including pqm) ? I couldn't find one09:46
vilaor switching to tarmac, whatever09:46
jamjelmer: Just found out an interesting road-tax issue. Diesel costs significantly less at the pump, and traditionally gets significantly higher km/L, but the road tax is almost 2x per year.09:46
jamvila: I don't know of a bug. poolie's statement in the past was "If we are going to set something new up, probably should be tarmac, but it isn't worth the effort yet to switch off of PQM".09:47
jammy personal feeling is that without Queued status in Launchpad09:47
jamTarmac is a poor fit for us09:47
jelmerjam: Yeah, that's one of the reasons people buy particular cars which are taxed less.09:57
jelmerjam: Same goes for LPG09:57
jamjelmer: is it meant to be a tax on industrial vehicles?09:58
jamor because diesel traditionally has higher polutants?09:58
jam(I know in the US, they didn't get low-sulpher diesel until something like post 2007)09:58
jelmerjam: I think the pollution is the reason, but I'm not entirely sure09:59
jamjust curious10:00
jamdo you even have a car?10:00
jelmerjam: Nope, I don't have one.. and my parents didn't have one when I grew up.10:00
jelmermy mom has a car these days, and I have a drivers license.. but I mostly use it when I'm in the US or during holidays (when we use somebody else's car)10:01
jelmerjam: You're looking at getting a car in .nl?10:01
jamjelmer: interesting. I know quite a few people in big cities that live that way.10:01
jamjelmer: yeah10:01
jamthe big thing is having a child, and trying to figure out how to get him around10:01
jamit is possible by bike, but likely we still want a car10:01
pooliejam, i'd be happy to switch to tarmac10:02
jamthe place we've picked is also more on the outskirts (in Waalre, if that means anything to you)10:02
poolieit looks like the losas want us to set it up ourselves10:02
jampoolie: I've seen quite a few limitations when people get into the details, though.10:03
poolielimitations of tarmac?10:03
jelmerjam: Ah, nice. I've camped there once :)10:03
jamand how do we set it up ourselves without a datacenter access? Run it on our own machines?10:03
poolieanyhow, i have a medium-low thing on my todo list of prototyping it10:03
poolieat least for the prototype10:03
jampoolie: stuff like not being able to land on anything that isn't the dev focus, etc.10:03
jamI think some have been overcome10:03
jambut since rockstar isn't focused on it anymore10:03
jammaintained bot >>> unmaintained bot10:04
jelmerjam: Are you implying pqm is maintained??10:04
poolie:)10:04
jamI think that was, honestly, the only problem with PQM10:04
jamjelmer: not at all. but I'd rather keep a tool that we're using now and have worked around10:04
poolieit's not top of my list10:04
jamthan switch it for *another* unmaintained tool10:04
poolieif someone else gets a bee in their bonnet and does not have too much other stuff queued or in progress, they can do it10:04
jamespecially since it was designed around incomplete features in Launchpad10:05
jamI *really* want a tweak rating, and "review: needsfixing, merge:approve" is the best we have, but Tarmac will land that patch.10:05
jamsince we don't have Queued10:05
pooliei would like 'tweak' too10:06
poolieok, really good night now10:06
jampoolie: sleep well10:06
jamjelmer: need me to fix the windows export breakage?10:06
jelmerg'night poolie, see you tomorrow10:08
jelmerjam: If you have an idea of what's going wrong. I'm looking at it and it seems like a perfectly reasonable test to me.10:08
jamjelmer: did you see my earlier comment about possibly being an "encoding=exact" type thing?10:08
jamvila: bonus points, the test passes when "bzr selftest -s bt.test_export"10:08
jambut *fails* with --verbose10:08
jamjelmer: ^^10:08
jelmerjam: ahh10:09
jelmerjam: You're probably right, as tgz (and tar) is the only one we actually use open() for10:10
jelmerjam: tar isn't tested though10:10
jamjelmer: and doing "bzr export --verbose --format=tgz - " does generate an invalid stream10:11
jamjelmer: http://paste.ubuntu.com/580504/10:11
jammakes it pass for me10:11
jamwith --verbose10:11
jelmerjam: +110:12
jelmerpoolie: thanks for removing the needs testing column in kanban :)10:13
jamvila, jelmer: have you had any problems pushing changes to LP?10:19
jelmerjam: no, but I haven't tried yet this morning10:19
jamI just tried to push an update to my "jam-integration" branch, and it is telling me Readonly.10:19
jam*sigh* just figured it out10:19
jam jam-integration was a mirror10:19
jambad error messages ftl10:19
jam(of course, the source is now offline since I took down my server)10:20
jamjelmer: anything we can do to get your Kanban "needs release" changes into Released?10:21
jelmerjam: not really, some of them are just waiting for upstream releases10:22
jelmerI'm working on fixing some last bugs before a bzr-svn release now10:22
jelmerbut I have no control over wikkid, storm, pygpgme, etc10:22
evantonI am trying to retrieve http://wiki.bazaar.canonical.com/QBzr using a http library and I'm getting access denied, but it works in a regular browser, why is the site dumping me like that?10:23
evantonI've tried to change the default user-agent, no luck10:23
jelmerevanton: it seems to work fine here in e.g. curl10:24
jelmerevanton: are you getting a 401 of some sort, or a HTML access denied page?10:24
evantonjelmer: if you'll be around I can try finding that coed snippet so I could provide an exact answer to this question10:24
evanton*code10:24
jamevanton: several of us should be around for a while10:25
jamevanton: it works here using 'wget'10:25
vilajam: no problem pushing so far10:25
jam*My* guess is that you have an HTTP proxy that you aren't respecting in your http library10:25
jamvila: I figured it out. Was a mirror branch I was pushing to10:26
jamand LP giving no reminder ofthat10:26
vilaright, just read it :-/10:26
evantonok, I found it10:27
evantonI'm getting a 40310:27
evanton"You are not allowed to access this!\r\n"10:27
evantonit is the urllib3 python HTTP library, if this matters10:27
jamevanton: if you can dump your HTTP headers, you might find something interesting.10:29
jamI really do expect it is a Proxy issue10:29
evantonjam: the request headers or the reply headers?10:29
evantonjam: and I'm not behind a proxy10:29
jamevanton: probably both, especially if you can catch the ones your web browser sends10:29
evantonjam: sure, I have live http headers in firefox10:30
evantonjam: http://dpaste.org/mdBc/10:37
evantonthe first is the sniffed http session of urllib3, below is the dump from live http headers (firefox browser)10:37
jamevanton: you're not passing an "Accept" (if I read it correctly)10:39
jamI don't know if that matters10:39
jamevanton: here itis. you are passing the full URL10:39
jam"GET http://wiki.bazaar.canonical.com/QBzr"10:39
jamnot10:39
jam"GET /QBzr"10:40
jam(that is my guess)10:40
evantonhmm10:40
jamI've certainly seen servers that reject passing the full URL in the GET10:40
evantonjam: so it likely looks like a problem with this particular http library?10:40
jamevanton: something like that10:41
jamit is passing "Host:" so it shouldn't be also passing the full URL10:41
jamat least, AIUI10:41
evantonI am confused because I'm using this library for other sites too and this is the first site that dumps me10:41
evantonnot using the default urllib2 because this one can reuse http connections (handy when having to retrieve a couple of urls from the same site)10:42
evantoninteresting, retrieving /QBzr works10:44
lukspassing the whole URL normally means that you want to use the HTTP server as a proxy10:44
evantonjam: you are probably right, I'll mail the author of urllib310:44
jamevanton: I can confirm, sending raw socket.socket() messages10:44
evantonthanks for your help10:44
jamsending /QBzr works10:44
jamsending full url gives Forbidden10:44
hunger_Is there a way to force "bzr clone" to provide progress information when running in an non-interactive environment?10:45
=== hunger_ is now known as hunger
jamhunger_: BZR_PROGRESS_BAR , IIRC10:45
jamhunger: export BZR_PROGRESS_BAR=text10:45
jamshould do it10:45
hungerjam: Great! Thanks!10:46
hungerjam: The bzr checkout wizard in Qt Creator is not providing any indication that it is doing something... we need to fix that:-)10:46
jamhunger: I'm guessing you want to ensure the process barrier rather than using bzrlib?10:49
jamOne thing you could consider, is setting your own UIFactory10:49
hungerjam: The code was contributed. I have to admit that I never really looked into bzr myself:-)10:50
hungerjam: It does work pretty well though, doing the normal checkout etc. I di dto test the plugin.10:51
cerfhello there !11:19
cerfI have created a QtCreator plugin for Bazaar11:20
cerfat some point I need to get the ouput of the 'bzr clone' command11:20
cerfI have tried to play with the BZR_PROGRESS_BAR env-var11:21
cerfbut with no success11:21
cerfonly the modes 'none' and 'tty' work11:22
cerf'dots' or 'text' don't11:22
cerfany idea ?11:23
jamcerf: version of bzr?11:30
jamdots is pretty old, IIRC11:30
cerfv2.2.111:30
cerfit still appears in 'bzr help env-variables'11:33
jamcerf: we've supported it for a long time. though I think poolie changed the values in a release, I'm trying to track down which one11:33
jambug #33938511:34
ubot5Launchpad bug 339385 in Bazaar "bzr: BZR_PROGRESS_BAR is ignored" [High,Fix released] https://launchpad.net/bugs/33938511:34
jamso the last time I see it explicitly touched is pre 2.011:34
jambut checking11:34
cerfthat's right I have seen this bug report11:35
jamcerf: since bzr-2.0 it has been either "text" or "none"11:35
jamnot "tty" or "dots"11:35
jamcerf: http://bazaar.launchpad.net/~bzr-pqm/bzr/2.0/view/head:/bzrlib/ui/text.py#L14411:36
cerfindeed11:37
jamcerf: There may be another bug involved. But "dots" has been gone for a long time, I don't see how "tty" would do anything. "text" looks like it11:38
jamshould work in all 2.X releases11:38
cerfwhat would you suggest to work around my problem ?11:38
jamcerf: if you could file a bug about "bzr help env-variables" having bad documentation, and then use "BZR_PROGRESS_BAR=text"11:38
jamI think it is just a doc bug11:38
cerfI cant get tty or text progress output11:38
jamAre you sure it was "tty" that worked for you, and not "text" ?11:38
cerf'tty' works the same as 'text' for me11:40
jamcerf: I can confirm here that "export BZR_PROGRES_BAR=text" works for me11:40
jamif I do "bzr log http://.... >out.txt 2>err.txt"11:40
jamwith the setting, it puts progress into 211:40
jamwithout, it doesn't11:40
jamare you expecting progress on stdout ?11:40
cerfyes that's it11:42
cerfis it possible ?11:42
jamcerf: progress is always on stderr, so it doesn't intermingle with real data on stdout11:43
jamyou can certainly capture stderr of a subprocess, though11:43
cerfthanks jam, I'm gonna try to read stderr11:44
jamcerf: bug #73541711:46
ubot5Launchpad bug 735417 in Bazaar "doc for BZR_PROGRESS_BAR incorrect" [High,Confirmed] https://launchpad.net/bugs/73541711:46
jamhopefully gets backported to at least 2.211:47
jelmerjam: are you submitting a fix for the tgz export test or should I ?12:46
jamjelmer: already finished through pqm12:46
jelmerheh, nevermind then :)12:47
jelmerjam: Thanks12:47
jamJust used 'pqm-submit' rather than going through the launchpad work12:47
jamI usually do that for "trivial" fixes12:47
vilajam: the empty failures table is probably due to bug #608563 as I *did* issue a retry --all to address slangasek query13:12
ubot5Launchpad bug 608563 in Ubuntu Distributed Development "requeue_package.py --all-of-type retries all packages" [High,Triaged] https://launchpad.net/bugs/60856313:12
jamah13:12
vilaeeerk, there are uncommitted changes on jubany ??14:51
vilain delete_branches_from_lp.py fwiw14:51
james_wI think spiv was hacking on that14:55
vilaha (I was about to ask you the same question in #lp-ops ;)15:05
vilaerr is, but anyway15:05
vilahmm, I'll try to ping tomorrow and if they come in the way will just shelve them and mail him15:06
jamvila: I don't know what is going on here: http://babune.ladeuil.net:24842/job/selftest-windows/374/testReport/junit/bzrlib.tests.blackbox.test_export/TestExport/test_tar_export/15:19
jamIt works here15:19
jamand it did fail before my update15:19
jamthis hints that it has the updated patch: http://babune.ladeuil.net:24842/job/selftest-windows/374/15:19
vilajam: yup, more than hint15:20
jamvila: doesn't mean hudson actually succeeded in applying the update. But yeah, I would be surprised if it didn't15:21
=== deryck is now known as deryck[lunch]
vilawell, I've seen weird things on jenkins/hudson, but not using the right code ? Never so far15:21
vilajam: could it be that the encoding is overridden when running without a real tty or something ?15:22
vila79.100  encoding stdout as sys.stdout encoding 'cp1252' in http://babune.ladeuil.net:24842/job/selftest-windows/lastFailedBuild/testReport/junit/bzrlib.tests.blackbox.test_export/TestExport/test_tar_export/ may not be relevant...15:23
jamvila: redirecting to a file still works for me here15:23
vilajam: you're notoriously good at avoiding windows babune slave bugs ;D15:24
jamvila: I'm running the wrong file, just a sec15:25
jamk weird, I know I got at least one failure in the past15:26
jamwhich 'exact' seemed to help15:26
jambut now, it won't fail either way15:26
jamI suspect a failure to flush()15:26
jamwhich would make it ~ load dependent15:26
jamand certainly babune runs differently there15:26
vilajam: also, is redirecting to a file the same thing as running ~without a console as on babune ?15:27
jamvila: you are redirecting to a file already.15:27
jamnot sure about 'without a console'15:27
jambut you are capturing the output == redirected to a file15:27
jamI can no longer reproduce failure with or without -v with or without my patch :(15:28
vilapipe probably... or are you talking about the test framework ?15:28
vilajam: ouch15:28
jamI know I did see a failure before15:29
jamnot sure how I triggered it15:29
jambut that was how I thought I 'fixed' it. Since it did fail, and then it stopped failing15:29
jamah, got a failure15:29
jamload dependent15:29
jamvila: "for i in `seq 20`; do bzr selftest -s bp.test_export test_tar_exporter; done15:29
vila'load' as in CPU load or import load order ?15:29
jamand I got maybe 3-4 failures out of 2015:29
vilaooooooouch15:30
jam(without my patch)15:30
vilajam: eerk, erratic on babune too: look for 41 vs 42 :http://babune.ladeuil.net:24842/job/selftest-subset-windows/15:33
jamvila: well, I see now. "test_tar_export" exports to a file on disk, not to '-'15:34
jamso it obviously wouldn't have been affected by my patch15:34
vilaurgh, I dunno what I prefer :-/15:35
jamvila: I think it is just a flushing issue. TarFile.close() does *not* close its underlying stream.15:36
jamI don't know why GzipFile would get caught up without flushing itself15:36
jamI'm trying a different patch15:36
jamnote also, that the streams are not explicitly closed15:36
jamno try/finally15:36
jamug15:37
jam        stream = open(dest.encode(osutils._fs_enc), 'w')15:37
jamdoesn't look good15:37
jamI don't know how it ever worked15:37
jammaybe got lucky and no '\r' or '\n' in the compressed stream15:37
vilaaaaaah15:37
jamnote that for gzip.GzipFile:15:38
jam"If not given, the ‘b’ flag will be added to the mode to ensure the file is opened in binary mode for cross-platform portability."15:38
jamhowever, we are opening directly with "open()"15:38
vila>_<15:38
=== Ursinha is now known as Ursinha-lunch
jamjelmer: so there is another bug, and its time for me to go. Basically you also changed it to use "open(..., 'w')" where GzipFile used to translate that to 'wb' automatically,15:53
jamI'll try to get to it tonight.15:53
jamI'd like to change a few other things anyway.15:53
jam*sigh*, even adding more data to it doesn't guarantee it will fail. time to try harder15:59
jamjelmer/vila: if you want to poke at it, a good start for forcing a failure is at lp:~jameinel/bzr/integration16:01
jamIt uses osutils.rand_chars() to put in a bunch of data, that ends up likely to create '\n' in the output stream16:02
vilajam: use rand_chars() *until* you end up with a '\n' in the gzip output and stick with it ?16:03
mgz>>> [c for c in "".join(chr(i) for i in range(256)) if "\n" in c.encode("zlib")]16:09
mgz['\t', '\x95', '\xa5', '\xb5', '\xc5', '\xd5', '\xe5', '\xf5']16:09
=== beuno is now known as beuno-lunch
vilamgz: :D16:10
mgz...hm, need to limit it to the non-adler32 bit of the value though, tab is no good.16:13
mgzall the rest would do though.16:14
mgzor a PNG, which has a cunningly crafted header to detect errors like this.16:15
* mgz pulls jam's branch to start on a fix.16:17
mgzmeh, I hate '-' as a magic name meaning stdout16:21
mgzseems like the test is fixable, but this will still be bogus code16:21
mgzanyone who pipes a compressed tar from bzr on windows risks corrupting it, we don't set our output stream to binary mode16:22
mgzand even if we did, we don't control the other end of the pipe.16:22
mgzah, 'exact' does handle our end.16:25
=== deryck[lunch] is now known as deryck
mgzhm, I wonder if there's any tar metadata that will vary across platforms or python versions and screw this plan up.16:42
mgztesting this kind of bug with zip would be much easier... :)16:42
jelmermgz: what are you trying to fix?16:43
mgzvila's babune error.16:44
jelmermgz: shouldn't that just be a matter of opening the file in binary mode?16:44
mgzjam's got a branch that does that, but it seems like something's still borked, and it needs testing.16:44
mgzit's probably just the test framework that's wrong post-jam-fix16:45
vilamgz: if you're able to reproduce it reliably *and* fix it, I think we shouldn't try too hard to keep reproducing it16:45
mgzwell, I have a magic string that works here, I'm just #1 worried it may not consistently, as the tarfile module has been fiddled with a lot since 2.4 and #2 the test still fails16:46
jelmermgz: I thought jam's fix was for a different issue16:46
vilaI fail to see how you could not guarantee that the compressed data will always be the same across all supported envs so trying to do it is likely to be brittle16:47
jelmerat least, I think the change to use 'exact' isn't really relevant here16:47
mgzit sets encoding='exact' on the command, which appears to be about this issue.16:47
vilamgz: he later said it wasn't relevant (AIUI)16:47
mgzah, okay, missed that, I'll change the other line he mentioned then.16:48
vilamgz: he got tricked by the test failing erratically16:48
vilamgz: and (still AIUI) ended up suspecting the compressed data to contain '\n', found that gzip guarantee using 'wb', etc16:48
jelmervila: do you know if he submitted another fix?16:48
vilajelmer: not that I know of, he ended up saying:16:49
vila<jam> jelmer/vila: if you want to poke at it, a good start for forcing a failure is at lp:~jameinel/bzr/integration16:49
vila<jam> It uses osutils.rand_chars() to put in a bunch of data, that ends up likely to create '\n' in the output stream16:49
vila<16:49
jelmervila: it seems like the open on bzrlib/export/tar_exporter.py:111 should be changed to have 'wb' instead of 'w'16:49
jelmervila: ah, he noticed that as well16:50
vilajelmer: without looking at the code, he said 'w' should never had worked so the test was passing by luck16:50
vilaor maybe it's a new test you added recently ?16:50
jelmerI added the test recently16:50
jelmeractually, I think that one may have been there before16:50
vilathat would explain it then, even on babune the failure was erratic16:51
jelmerbut the code didn't use open() earlier16:51
vilahere we are16:51
jelmerjam said he was going to look at it tonight though16:51
mgzI've got it.16:51
vilayeah, I can't look at it right now either16:51
mgzthe sys.stdout bit is the dodgiest aspect.16:51
vilabinary(sys.stdout)16:52
vila:)16:52
mgzthat's still only our end.16:52
mgzalso, it's scattered all over the file.16:53
vilaif it's going to contain a gzip content, the other end has better be prepared to handle it as binary16:53
mgzI'm not sure if 'exact' on the command should have stdout covered already or not.16:53
jelmermgz: isn't the test failure while writing to test.tar.gz ?16:53
mgzit is, but we also want to not corrupt things written to stdout if possible.16:54
mgz(as far as possible)16:54
jelmerfair 'nough16:55
=== beuno-lunch is now known as beuno
=== Ursinha-lunch is now known as Ursinha-afk
=== JayFo is now known as JFo
jamjelmer, vila: didn't read the whole argument, but there are 2 bugs16:59
jamone is open('w')16:59
jamone is encoding = 'exact'16:59
jamI fixed one, but the test was flakey16:59
mgzokay, that works.17:01
mgzso, jam, 'exact' does handle setting stdout to binary before we arrive at lines like `stream = sys.stdout` in tar_exporter?17:01
jammgz: yes17:01
jamI have a fix for the other, but I wanted to make the test reliably fail17:02
jamnote that zlib does huffman encoding, etc.17:02
jamso any one character isn't guaranteed to trigger it17:02
mgzhm, what goes through plain_tar_exporter? because there's another non-binary open there.17:02
jelmermgz: not open() open() though, tarfile.open()17:02
mgz^well, it is in practice on idential input, zlib is pretty stable17:02
jamlots of them in the cod. the compressors like gzip.GzipFile take 'w' but internally turn it into 'wb'17:03
jammight just want to force them all17:03
mgzlooks like open-open to me jelmer17:03
mgz^the main issue is tar is a big binary blob that I'm worried may not be very consistent17:04
jammgz: just for the heck of it, I also wanted to switch to osutils.open_file()17:04
mgzeven if we're not writing mtime and other obviously variable things17:04
jamsince then it won't interact with ssh children, etc17:04
mgzsounds reasonable jam.17:04
mgzhttp://paste.ubuntu.com/580664/ <- this is my diff on top of your branch thus far.17:07
jammgz: anyway /me is in family time17:07
mgzbyebye.17:07
jammgz: also, we don't need _fs_encode for open() and I'd rather avoid it17:07
jamI'd also rather use encode('utf-8') where it gets put into headers17:07
mgzyup.17:07
jamthoguh there are arguments both ways17:07
mgzthe open argument doesn't end up in the tar anyway, it's just the branch filenames to worry over there17:08
jammgz: ! is ok, if you are sure it will fail 100%, though I'd rather take the chances on 65k * 1-in-256 chances of getting '\r' randomly17:08
mgzwell, the problem with random is that it's... random. "!" is 100% with the code on my machine, it's just a question of if tar module changes have ever modified the output it gives to gzip.17:10
mgzthe constants all look pretty constant from the code, provided stuff like file mode bits haven't been messed with.17:12
magciusjam, is my merge deployed yet?17:15
* jelmer moves17:15
jammgz: true, but 1in 2^256 is a pretty small chance of failure :)17:20
mgzfairynough.17:22
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
achianghello, having some conceptual issues, hoping to get some pointers. upstream branch has two commits, -1, and -2 that i want to drop18:11
achiangso i tried: bzr uncommit ; bzr uncommit ; bzr revert --no-backup18:11
achiangcan i just push this new local copy to upstream now?18:11
achiangi think maybe not so much...18:11
beunono18:11
beunoso, what you'll want18:11
beunois to revert to -3 and then apply -1, I think18:12
achiangbeuno: i've tried reading the bzr merge and bzr revert man pages several times and still find them rather incomprehensible. :-/18:12
beunoso, if these are revnos, say, 9 and 1018:13
beunoI'd bzr revert -r 818:13
beunocommit, and then bzr merge -r 1018:14
beunoI think that would do it18:14
maxbachiang: Hi. So, you could push your uncommitted head if you really wanted to, but rewinding a public branch leaves no evidence that you intended them to be removed18:14
beunoand will cause others that have it to maybe have problems18:14
maxbSo, other people who had already obtained those revisions would not receive any kind of information that you wanted them gone and would probably reintroduce them18:14
achiangyes, i want to leave a record of my revert18:14
maxbSo, what you actually want to do is to ensure you have your local tree up to date and clean at revision -118:15
maxband then bzr merge -r -1..-318:15
maxbActually, make that 'bzr merge -r -1..-3 .'18:15
achiangmaxb: beuno: i think i got it with what beuno mentioned... i just said, "bzr revert --no-backup -r 29"18:16
achiangand that gets rid of r30 and r3118:16
achiangand now i'm making a new commit18:16
maxbbeuno instructions confuse me, the revert and commit bits make sense, but what's the final merge for?18:16
beunoto bring back the -1 revision, which he wanted18:17
beunohe has -1, which he wants, and -2, which is doesn't18:17
achiangbeuno: no, i did not do the final bzr merge18:17
maxbNot according to achiang's initial statement18:17
achiangconceptually, it was dropping just the top two commits18:18
achiangnot commits in the middle anywhere18:18
achiangbeuno: maxb: thanks for the help (again). i know i've asked for help on dropping commits before, but the bzr way of doing it still hasn't sank in yet. :-/18:19
beunoah18:19
beunothen it was just rever, yeah  :)18:19
maxbThe bzr way is not all that different to the svn or cvs way, really :-)18:20
achiangif one starts as a git user and then tries to grok bzr, it's hard18:20
maxbwell yes, that's cos git is different to mostly everything else :-)18:21
achiang... but growing most rapidly in adoption, so maybe it's time to rethink that attitude. :)18:21
achiangbut anyway, i am not here to bite the hands that help me18:21
maxbI know it is. I just don't understand why :-(18:21
achiangi genuinely appreciate the help, so thank you18:21
maxbI am capable of using git, I just don't understand why I would want to18:22
maxbAnd when I can 'bzr branch git://......' I don't have to :-)18:22
=== Ursinha-afk is now known as Ursinha
maxbThis reminds me, I need to write some sort of hook-based branch replication solution, so I can have another go at popularizing bzr at work18:24
maxb(am continually mystified that no-one has done this already)18:26
maxbSurely someone out there must run a bzr hosting server with near-realtime syncing of pushed changes to an offsite node?18:26
vilamaxb: I think bound branches address more than 90% of the needs so nobody stepped up...18:28
maxb?18:28
maxbHow do bound branches address the use-case of bzr.someorganization.com being replicated to another server?18:29
vilathat's not what I said18:29
vilaI meant, if you know your changes are already in two different places, you don't care pushing them to a *third* place18:29
maxbI suppose18:29
vilabut I fully agree with you that we need a better backup story for hosting servers18:30
maxbBut recovering from a putative disk failure relying on individual developer workstations isn't a very palatable situation18:30
vilaindeed18:31
maxbI suppose everyone who does this is coming up with their own solution for their private architecture18:31
maxbWhich is a shame, because bzr's hooks are almost good enough to make this work really nicely18:32
vilathe hard part is handling the restore and the deleted branches and other evil details18:32
maxbstacking locations being a very evil detail :-)18:32
vilashhh, don't wake up the daemons ;)18:33
maxbI was planning to punt on that and just use shared repositories18:33
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
insanity99hey guys, im trying to set up bazaar so i can access my python folder on  2 computers. but im finding it hard to do19:47
insanity99anyone here?19:54
wilxHi.20:04
wilxI am sort of confused about workspace models provided by the Bazaar Explorer.20:05
wilxBasically, I want to mirror a SVN branch locally.20:05
wilxFrom that local mirror I want to be able to create Bazaar branches.20:05
insanity99dont think anyones here20:05
insanity99im trying to set up bazaar so i can access my python folder on  2 computers. but im finding it hard to do20:06
wilx..so that I can do disconnected development.20:06
wilxAnd when I am done with development, I want to be able to commit the changes back to the mirror and through that back to the SVN repo.20:06
wilxDo I want "feature branches" or "colocated branches" or "shared repository"?20:07
jelmerwilx, shared repository is just a storage optimization20:51
jelmerwilx, it sounds like you want feature branches20:51
wilxOk. Thanks. I will try with that.20:56
chxhi. is bzr heads supposed to be very very slow? :)21:22
lifelessno21:24
chxit just sits there21:25
chxfor quite some time now :/21:26
sorenIt's quite slow for me, too.21:26
sorenI have a /lot/ of branches, though.21:26
chxso here's why i am running it: one of teammates did a number of bzr commit --local then bzr pull and now he wants his commit history back. Is that possible?21:26
soren$ time bzr heads21:27
soren[...]21:27
sorenreal1m1.604s21:28
sorenuser0m32.600s21:28
sorensys0m8.460s21:28
sorenNot as slow as I remembered.21:28
sorenIt's doing a lot of work, though. As I said, I have a lot of branches.21:28
chxi dont have a lot of branches but the repo is quite big -- lots and lots of files and revisions.21:28
lifelesschx: sure its possible. bzr heads --dead21:28
chxjust came back empty21:29
chxafter like eight minutes or something21:29
chxbzr st -v shows them as pending21:29
lifelessoh21:29
lifelessjust commit :>21:29
lifelesschx: its not dead - its a pending merge; bzr heads --all should list his last commit21:32
chxso i am expressing myself wrong. previously bzr log showed them as commits. that's what we would like back. a bzr commit would put them into one commit.21:37
chxyes. i know this should be a branch and not bzr commit --local :/21:37
sorenchx: I don't think I understand the motivation, but something like this should do it:21:40
sorenchx: bzr pull . -r revid:the_revision_id_of_his_original_head21:40
psynaptichey there, I have lost my head21:40
sorenchx: bzr merge url_to_the_shared_repo21:40
sorenchx: bzr commit -m 'Merge trunk' or whatnot.21:40
lifelesspssibly bzr merge --uncommitted will suck the pending merge across - I'm not sure though21:41
chxpsynaptic: no you didnt21:41
chxpsynaptic: you have all your commits but now they form a pending merge21:41
psynapticmy working copy contains all the changes21:42
psynapticwhich is what scares me21:42
chxsoren: bzr pull . -r 18143 is no revisions to pull21:49
sorenchx: Not revno, revid.21:51
chxoh revid!21:51
sorenAnd make it "-r revid:the_rev_id"21:51
chxso then the question is, how do i see the revid of a pending merge that st -v shows me?21:52
sorenchx: As lifeless said, bzr heads --all should show it.21:53
sorenchx: I'm not sure bzr status gives it up easily.21:53
chxok give me ten minutes while that runs :D21:54
psynaptic;)21:54
lifelesswhat format repo is this that its taking so long?22:03
psynapticit's on launchpad22:05
psynapticwhich seems slow for us22:06
psynapticwe have tons of branches though22:06
BjornWHi there, can someone tell me if and where I can find more information on using php to script bzr?22:06
chxlifeless: i think 2a22:07
lifelessoh22:07
lifelessdon't run heads against lp22:07
lifelessyou run it against your local branch22:07
chxoh my lord it runs against LP????22:08
* chx immediately breaks22:08
chxlifeless: ok, so .... this is a checkout bastardized with commit --local and then up.22:08
lifelesschx: lightweight or heavyweight? [bzr info should say[22:11
chxlifeless: heavyweight checkout. we do not use lightweight checkouts.22:11
lifelessok22:11
chx"     checkout of branch: "22:11
lifelessso, I'm not sure why bzr heads is going to lp, but it will explain it22:11
lifeless(the performance)22:12
lifelessand why it doesn't see your head22:12
lifelessso22:12
lifelessbzr unbind22:12
lifelessthen bzr heads --dead22:12
chxahhha22:13
chxdidnt dare to unbind22:13
chxi mean, i thought of reconfigure22:13
chxbut let me try22:13
chxi am now, after all, on a copy.22:13
lifelesschx: unbind saves the location22:21
=== psynaptic is now known as psynaptic|away
lifelesschx: you can 'bind' to get it rebound22:21
chxeven after unbind it have not finished yet22:21
chxthough i ran bzr heads --all22:21
chxlifeless: i have stopped it running. it STILL did not finish.22:51
lifelesschx: :(23:04
lifelesschx: maybe spiv can give you a hand; I'm juggling too many things just now23:04
spivchx: check the output of 'bzr info'23:09
spivMaybe there's something obviously odd.23:09
chxspiv: http://paste.pocoo.org/show/354260/23:12
chxspiv: i think it's not too odd23:14
chxspiv: http://paste.pocoo.org/show/354263/ this is st -v23:14
spivchx: and the problem you're having is that 'bzr heads --all' is being very slow?23:17
chxspiv: well psynaptic mostly just wants his commits to show in bzr log as it did before bzr up :(23:18
psynapticthis is what happened:23:19
psynaptic<changes>23:19
psynapticci "commit1"23:19
psynapticsorry..23:19
psynapticci "commit1" --local23:19
psynaptic<changes>23:19
psynapticci "commit2" --local23:19
psynapticthen I had this local history:23:20
psynapticcommit223:20
psynapticcommit123:20
spivIf you're trying to find the revid of the pending merge, try using 'bzr qlog', it shows revids of pending merges.23:20
psynapticbut then I ran up, I got changes from commit1 and commit2 dumped into my working copy and lost the commit history23:20
spivAnd then "bzr pull --overwrite -r revid:..." as suggested earlier will put the commit back as the tip23:21
psynapticnot sure why but we don't have qlog23:21
spivpsynaptic: not lost, just not on the mainline anymore.  If you commit you'd still see commit1 and commit2 in in the output of 'bzr log -v'23:22
spivpsynaptic: it's part of the qbzr plugin23:22
psynapticahh, so if I commit these changes it will keep my history?23:22
spiv(Oops, I meant 'bzr log -n0', rather than 'bzr log -v')23:22
spivYes, it'll appear as a merge, essentially.23:22
psynapticright23:23
psynapticlemme try that23:23
spivThat's why 'bzr st' is telling you about 'pending merges', to reassure you that history is being kept and will be recorded when you commit.23:23
psynapticdidn't seem to work like that23:23
psynapticok, I have restored the backup23:25
psynapticst does show pending merges but they were consolidated into a single log item when I did commit --local23:26
spivTry 'bzr log -n0'23:26
spivor 'bzr qlog' (or 'bzr viz' if you have bzr-gtk)23:26
psynapticright23:27
psynapticbzr log -n0 does show all the commits23:27
psynaptic:)23:27
psynapticgreat, thanks a lot23:28
psynapticI am happy now23:28
psynaptic:D23:28
spivMostly we just show the "left-hand" or "mainline" history by default23:28
psynapticI see23:28
spivBut when you commit a merge (or "bzr up" then "bzr commit" when you have local commits, which is essentially the same situation) there's a revision with multiple parents.23:29
spivbzr log -n0, and the visualisation tools like 'bzr qlog' can tell you about the full graph.23:30
psynaptichandy23:30
SuperMMXhi, when I use bzr-svn to branch in windows, I found that there are revisions with backslap \ in one directory name, and the next revision fixed it. But now I get the error of invalid character in the directory name. bzr 2.3.0 with the bundled bzr-svn.23:36
SuperMMXis there any way to workaround this ?23:36
jelmerSuperMMX: no, Bazaar doesn't support entries with backslashes unfortunately23:38
jelmerbug 8184423:38
ubot5Launchpad bug 81844 in Bazaar "Handle backslashes in filenames more gracefully" [Wishlist,Confirmed] https://launchpad.net/bugs/8184423:39
SuperMMXno workaround at all ? That was just one revision.23:39
SuperMMXactually, I google all related bugs, mailling list, seems no luck so far.23:39
jelmerSuperMMX: none other than cloning from a location that doesn't have any backslash in the history23:39
SuperMMXjelmer: that's bad, one mistake blocks all.23:40
jelmerI think we should probably increase the importance of that bug23:41
jelmergiven the number of people that have hit it so far23:41
SuperMMXprobably shallow branch can fix the problem, but that wil be in the far future.23:42
jelmeryes23:42
SuperMMXjelmer: thanks anyway.23:46
psusiI'm trying to specify a tag with bzr branch -r that has a : in it and it seems to be interpreting the : in a way that confuses it23:50
psusiis there some sort of escape needed or something?23:50
jelmerpsusi, prefix the tag name with tag:23:51
psusiahh23:51
jelmerthat forces bzr to consider that string as a tag name23:51
Peng: is special in revison specs -- see "bzr help revisionspec"23:53

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