/srv/irclogs.ubuntu.com/2008/08/21/#bzr.txt

jelmerhi *!00:00
beunoOMG, jelmer is back00:00
jelmerhey beuno :-)00:01
BrianRicehi. is there a way to run, say, the update command and have it only indicate what it *would* do rather than take action?00:01
jelmerbeuno, Do I have you to blame for the bzr-search upload? If so, thanks !00:01
beunojelmer, yeah, I took advantage of debcamp  :)  welcome'00:02
beunonow, I'm about to release loggerhead 1.6.1, which would be nice to have in debian/ubuntu too  :)00:02
beunoeven PPA meanwhile00:02
beunoBrianRice, I don't think there's a --dry-run option. Feel free to file a bug requesting it00:03
BrianRiceok00:03
lifeless08:46 < mwhudson> "Port Loggerhead should listen on (default 8080 is the default."00:03
jelmerbeuno, ah, cool00:03
BrianRice"bzr log" comparison seems to do well enough in the mean-time00:03
jelmerbeuno, will see what I can do to get into debian once I'm rested00:04
lifelessmwhudson: perhaps00:04
lifeless"Port Loggerhead should listen on (8080 is the default)."00:04
beunojelmer, where were you, btw?  vacation?00:04
mwhudsonlifeless: that was a typo, yes00:04
jelmerbeuno, yep, went cycling in the alpes for ~10 days00:04
lifelessjelmer: wow back already00:05
pickscrapeBet you're knackered now :)00:05
beunojelmer, cool. Welcome back then.00:06
beunopickscrape, I still owe you your review. I'm sucking at getting to stuff quickly lately00:06
jelmerlifeless, yeah, bad weather so came back one day early00:06
jelmerlifeless, thanks for the bzr-gtk pqm update00:06
=== RAOF_ is now known as RAOF
pickscrapebeuno: no rush at all00:09
jamlifeless: Some interesting results when tweaking the knobs on ChunkWriter for the btree index00:13
jamhttp://rafb.net/p/owGbxj90.html00:13
jamThis is with the artificial nodes from the test suite.00:13
jamBut still interesting.00:13
jamI'm planning on putting something together with real data tomorrow.00:13
jamThe only problem with using copy() is that it will change the page sizes if it is/isn't available00:14
jamwhich means the test suite will become very brittle.00:14
jamThe "current" algorithm creates 490 pages, the "best" creates 39000:15
jamSo there may be some room to either be a bit faster, or compress a bit better in the same time00:15
jamAnyway, I'm done for the evening.00:16
=== mw|brb is now known as mw
lifelessjam: gnight00:19
lifelessjam: perhaps we should do the zlib interface ourselves00:19
=== `6og is now known as kgoetz
jelmerhmm, rc5!?01:03
beunojelmer, don't ask01:04
AfCIt's ok. It's called "quality". That's a good thing.01:07
LarstiQAfC: what is this "quality" thing you speak of?01:15
AfCIt's what happens when you take the time to polish a release after you've decided to make one in the first place. There is a point of diminishing returns, but I've long felt that being shackled to particular dates and thereby shipping arbitrary bugs does not result in a better user experience.01:23
beunothumper, working on the gnome theme, progress so far: lp:~beuno/loggerhead/gnome_theme   (still have to fix quite a few things)01:24
lifelessbeuno: cool01:24
LarstiQAfC: a hard shackling to a specific date, no. But I feel it's better to not ship it if it needs too much polish.01:25
beunolifeless, you have access to gnome to push this once it's finished, don't you?01:25
lifelessbeuno: maybe:)01:26
beuno:)01:26
* beuno -> dinner01:26
lifelessLarstiQ: so if something needs too much polish, what - you give up on the project?01:46
LarstiQlifeless: include it in the next release01:47
lifelessLarstiQ: well, thats what we're doing :)01:48
LarstiQlifeless: I was disagreeing with AfC's general statement, I think :)01:50
lifelessoh suck02:05
lifelesssome plugin is making TestOutsideWT.test_url_log fail hard02:05
jelmerlifeless, have you updated bzr-svn recently?02:06
lifelessjelmer: FSVO recent02:06
lifelessjelmer: remember it segfaults for me02:06
jelmerlifeless, ahh02:07
jelmerlifeless, it should no longer segfault02:07
jelmerlifeless, if it does, please let me know02:07
lifeless0.4 still ?02:07
jelmerit also contained a bug that made test_url_log hang02:07
jelmeryep02:07
jelmerI worked on a fix for this with Mark Hammond, which made it into the 0.4.11 rc02:08
lifelesspullink02:08
lifelesseek02:11
lifelessI'm in install-revisions, in fetch :(02:11
lifelessEFREAKINGSLOW02:12
lifelessjelmer: editor.c: In function 'py_dir_editor_change_prop':02:15
lifelesseditor.c:358: warning: unused variable 'p_c_value'02:15
jelmerlifeless, thanks, fixed02:16
lifelessalso,02:16
lifelessra.c:1141: warning: 'py_revstart_cb' defined but not used02:16
lifelessra.c:1161: warning: 'py_revfinish_cb' defined but not used02:16
=== mw is now known as mw|out
lifelessmeh,02:18
=== kiko is now known as kiko-zzz
* lifeless disables Werror02:18
jelmerah, looks like that happens when you build against svn 1.402:19
jelmerfixed as well02:19
lifelesshmm, build_ext -i is broken02:20
lifelessactually, no, its fine02:20
lifelessok, that test isn't hanging now, thanks02:20
* lifeless returns to log hacking02:20
=== toytoy_ is now known as toytoy
lamont 'No handlers cound be found for logger "bzr"'03:55
lamont^^ wassat?03:55
lamont1.6~rc3-1~ bzr and 1.6.0-1~ bzrtools03:55
lifelesslamont: a race?04:30
lifelesslamont: from pqm or something?04:30
lifelesslamont: also, bzr-playground?04:30
mneptokthat'll teach him to unidle.04:31
jmllifeless: testresources?05:38
lifelessjml: yes, high on my queue05:38
lifelessjml: or are you wanting to chat about it right now?05:39
jmllifeless: no, just thought I'd take the opportunity to pester :)05:39
lifelesscan I review-by-mail?05:46
lifelessjml: I see why you wanted the review; you went rather critical.05:48
lifelessunfortunately, some of what you did isn't suitable05:48
jmllifeless: that's ok. I figured that would be the case.05:48
lifelessin particular the licence changes are incorrect05:49
jmllifeless: review by mail is fine by me.05:50
lifelesswe'll see if lp forwards it to you05:55
chmacbeuno: I'm loving bzr upload, it works like a charm. :)06:27
lifelesslater all08:05
sadlederhi, i've a question regarding launchpad-cscvs, is this the right place to ask?08:38
siretartbeuno: jelmer: I've prepared an upload for bzr1.6rc3 to experimental, I've compiled it locally on hardy, and a bzr selftest tells me this: FAILED (errors=32, known_failure_count=14)08:42
siretartbeuno: jelmer: is this something to worry about or shall I continue uploading it?08:42
thumpersadleder: probably #launchpad is better08:42
sadlederthumper: thanks08:44
=== BasicPRO is now known as BasicOSX
luksis it intentional that http://bazaar-vcs.org/releases/src/ doesn't have the latest 1.6 RCs?10:27
luksoh10:27
* luks is blind10:27
awilkinsSince MarkH is producing .exe installers, would you like my builds of the Python-flavoured ones?11:28
* awilkins finds the python ones to be easier to hack/dogfood on11:32
luksjam: (when you are here, and if you are interested) http://bazaar.launchpad.net/~luks/bzr/packaging-tools/annotate/3?file_id=ppa.txt-20080821102811-jhoajulm56uo6vgm-111:33
* luks wonder why https://launchpad.net/~bzr/+archive has 1.6rc5 for hardy12:09
luks+s12:11
awilkinsIs everyone dead at their desk?12:11
bob2yes!12:13
awilkinsArrgh, 'tis zombie bob212:13
bazaarhi. is it possible to change commit metadata (message, commiter etc)?12:25
bob2no12:31
bob2unless you count "bzr uncommit"12:31
bob2or merging them and giving better information in the merge revision12:31
jelmersiretart, hi12:42
siretarthey jelmer12:43
siretartjelmer: I've prepared an upload for bzr1.6rc3 to experimental, I've compiled it locally on hardy, and a bzr selftest tells me this: FAILED (errors=32, known_failure_count=14). is this something to worry about or shall I continue uploading it?12:44
jelmerwhat are the errors exactly?12:45
AfCjam: did you cut bzr-1.6-rc5 yet?12:45
jelmerAfC, yep, according to the website :-)12:46
siretartjelmer: I can mail you the full log if you want to know12:48
siretartjelmer: where should I mail it to?12:48
jelmersiretart: jelmer@samba.org12:49
=== prateeksaxena is now known as prTk
jelmersiretart, It's probably nothing, but let's check just in case12:49
siretartjelmer: should be in your inbox now12:50
AfCjelmer: ah. Nice. Someone should change channel topic then.12:50
=== siretart changed the topic of #bzr to: Bazaar version control system | http://bazaar-vcs.org | please test 1.6rc5! / http://irclogs.ubuntu.com/ | http://planet.bazaar-vcs.org/ | http://blogs.mysql.com/kaj/2008/06/19/version-control-thanks-bitkeeper-welcome-bazaar/
siretartAfC: this channel is -t12:51
lifelessbazaar: please choose a different nickname; you will confuse people with the nickname you have :)12:56
lamontlifeless: in my case, it was a root owned ~/.bzr.log13:05
lamontthe other person seeing it doesn't have such a simple explanation13:05
jelmersiretart, thanks13:06
siretartjelmer: is that expected breakage, local breakage or is there something really wrong?13:11
jelmersiretart, I haven't received your email yet13:14
jelmerah, got it13:15
siretartthe file has been created with this command: env -i bzr --no-plugins selftest -v | tee selftest.log13:17
jelmerah, it's all poll errors from pycurl13:25
jelmerlifeless/jam: ping13:25
AfCOh dear. I got the error at https://bugs.launchpad.net/bzr-svn/+bug/229419 / https://bugs.launchpad.net/bzr-svn/+bug/234010 and, upon upgrading to bzr-1.6-rc5 and bzr-svn trunk, trying to bzr pull in a (from Subversion) checkout seg faults13:30
ubottuLaunchpad bug 229419 in bzr-svn "WorkingSubversionBranch.test_create_checkout fails" [High,Fix released]13:30
* AfC is not even sure where to turn next13:32
fullermdIs bzr-svn trunk something runnable?13:32
fullermdI thought jelmer was doing all his stuff in the 0.4 branch or something...13:32
AfCOh?13:33
* AfC tries that...13:33
* fullermd doesn't really know, just vaguely remembers conversations here.13:34
AfCfullermd: sure. Thanks13:34
fullermdHe must be dead, though.  It's been two minutes since I said 'jelmer' out loud, and he hasn't shown up.13:34
AfCI'm not entirely sure he is required to come running just because someone says his name.13:34
jelmerAfC, did you rebuild bzr-svn after updating it?13:37
jelmerfullermd, coffee brake :-)13:37
jelmer*break13:37
Peng_Is it safe to have another web server serve Loggerhead's static files, instead of passing them back to Paste?13:37
fullermdOh, good.  I was getting worried about you   ;)13:38
jelmer(-:13:39
AfCjelmer: so I just did a fresh branch of 0.4 (ok, branch + pull --overwrite --remember, whatever)13:40
AfCjelmer: and then ran `make` there.13:40
AfCjelmer: and it too segfaults13:40
AfCjelmer: .bzr.log shows it getting as far as "opening SVN RA connection to 'svn+ssh://afcowie@svn.gnome.org/svn/gtk+/trunk/"13:41
AfCjelmer: and then that's it13:41
jelmerAfC, any chance you can run it inside gdb and paste the backtrace?13:41
AfCSure, I can try13:41
AfCgdb bzr pull ?13:42
* AfC doubts13:42
luks`gdb python` and inside gdb `run /path/to/bzr pull`13:42
AfCk13:42
AfCjelmer: http://rafb.net/p/2Gm5ck59.html I hope13:45
* AfC has never tried Python inside gdb before, but has plenty of scars from trying to debug segfaults in Java code reaching to a native library. Pain.13:45
jelmerAfC, thanks13:46
jelmerAfC, It's not too bad with Python13:46
jelmerAfC, there's even gdb macros that allow you to inspect the python stack13:46
AfCjelmer: single threaded :)13:46
AfCjelmer: oh yeah? Nice.13:46
AfCjelmer: [now that Java is finally free, we're starting to see some progress along those lines]13:46
jelmerAfC, Ah, of course. Multiple threads would make things more complex in java13:46
rockyhrm, if i bzr merge something but don't commit it, what's the standard way to revert the merge?13:54
fullermdrevert?13:54
rockyi bzr revert'ed each of the individual file changes but when i run bzr stat it still says i have a pending merge13:55
jelmerrocky, just revert without any arguments13:55
fullermdrevert <file> doesn't touch the merges, just the full version.13:55
jelmerrocky, (which will revert all changes in the working tree)13:55
rockyah thanks ;)13:55
jelmerrocky, or revert --forget-merges13:55
fullermd(there's an arg to touch ONLY the pending merges too, but if you're blowing away the merge, you don't care about that)13:55
rockyjelmer: btw... i've troubleshooted the speed issue with bzr-svn 0.4.10 a bit again... and i'm seeing that everytime i commit, it basically checks properties on every folder in the remote svn repo (100's of svn requests)13:56
jelmersiretart, seems fine to me to upload13:56
jelmersiretart, there's an issue with pycurl, but I think that's known13:56
jelmerrocky, even with 0.4.11~rc1?13:56
rockyjelmer: 0.4.11-rc1 only works with bzr 1.6rcX right?13:57
jelmerrocky, yep13:57
rockyjelmer: i tried playing with that in a sandbox the other day and got tracebacks all the time13:57
rockyjelmer: does that mean you won't be trying to fix this in the 0.4.10 branch?13:58
jelmerrocky, what backtraces exactly?13:58
jelmerrocky, yes, 0.4.10 won't see any further development13:58
rockyjelmer: i'll have to try again (i didn't at the time because you weren't around) to see the tracebacks13:58
AfCjelmer: (am I in error to be working from your 0.4 branch? Should I grab the 0.4.11-rc1 tarball instead?)13:59
AfC(or trying to bludgeon Subversion, or...?)14:00
fullermdWouldn't you be doing that anyway, just on GP?   :p14:00
AfCfullermd: I was thinking more a rapier missile battery on fully-automatic, but yes14:01
jelmerAfC, no, the 0.4 branch should work just fine (atm it's the same code as 0.4.11~rc1)14:01
jelmerAfC, I'm not sure what's causing your backtrace, still looking into it14:01
AfCjelmer: (that's what I figured)14:01
rockyjelmer: what version of svn does bzr-svn 0.4.11 require?14:02
AfCjelmer: Most kind. I hope it's not something stupid I'm doing (or with my environment).14:02
jelmerrocky, 1.414:02
rockyjelmer: will it work with svn 1.5.x ?14:02
jelmerAfC, even then it shouldn't be segfaulting14:03
jelmerrocky, yes14:03
rockyjelmer: atm i'm testing with http://bazaar.launchpad.net/%7Ejelmer/bzr-svn/0.4/  ... should i keep testing with that or switch to your tarball or?14:03
jelmerrocky, that seems fine, though you may want to use the original location (http://people.samba.org/bzr/jelmer/bzr-svn/0.4 instead since the lp mirror may be out of date)14:04
AfC(I would automatically blame Subversion, except that I was able to do an `svn checkout` of a different project whereas that URL segfaulted for bzr-svn trying to do a checkout)14:04
rockyjelmer: gotcha14:04
rockyjelmer: here's a traceback just trying to check out a svn branch...  http://cluebin.appspot.com/pasted/60114:22
jelmerrocky, was this in a clean sandbox?14:23
rockyjelmer: that toplevel "repo" dir was a fresh repo i just created with "bzr init --rich-root-pack repo" if that's what you mean14:24
rockyjelmer: but... the remote svn repo it's connecting to has lots of bzr props set from other versions of bzr-svn14:25
rockyjelmer: and, the remote svn repo i'm connecting to is publically available so you can play with it if you'd like14:29
jelmerrocky, thanks, will give it a try14:36
ktenneyfor a while my prompt (Ubuntu) included the version of the current tree, now it doesn't14:53
ktenneywhere is that set?14:53
james_wktenney: I think there may be something in /usr/share/doc/bzr/examples , but I'm not sure14:56
jelmerbeuno, ping14:59
beunojelmer, pong15:00
jelmerbeuno, any chance you can set a tag for the loggerhead release?15:00
beunojelmer, I've never used tags. Do I have to change the repo format?15:01
jelmerbeuno, if the branch is in a packs format, you should already be able to use tags15:01
jelmerbeuno, e.g. "bzr tag -r213 loggerhead-1.6"15:02
beunojelmer, sure then. Tag && push?  IIRC, they don't propagate automatically?15:02
beunoalthough I have a checkout, that may do it15:02
jelmerbeuno, yep, a checkout should do it15:03
jelmerbeuno, they should propagate automatically15:03
beunobeuno@beuno-laptop:~/bzr_devel/loggerhead/trunk$ bzr tag -r213 loggerhead-1.615:03
beunoCreated tag loggerhead-1.6.15:03
beunoAKA, done  :)15:04
beunowe should have 1.6.1 out tomorrow, the code is up for review15:04
LarstiQdon't you need to commit it though?15:04
jelmerbeuno, I see it here, thanks!15:05
ktenneyjames_w .. no examples, I'll poke around. Odd how it appeared and disappeared ...15:05
beunoLarstiQ, it seems not. I never quite got my head around how tags propagate15:05
jelmerrocky, thanks, I can reproduce that15:06
rockyjelmer: excellent :)15:07
rockyjelmer: if you can get this issue fixed i'll try again and if everything's ok i'll start using bzr-svn 0.4.11 for all my stuff ;)15:07
rockysince i'm using a bzr branch of your bzr-svn 0.4 i should be able to test quickly15:08
jelmerrocky, cool15:12
rockyjelmer: if it wasn't for the fact that i love bzr so much i would have given up by now due to the speed issues with 0.4.10 :(15:12
jelmersiretart, while you're at it, any chance you can sponsor an upload of loggerhead to debian and ubuntu?15:14
jelmerrocky, 0.4.11 should really be a lot better in that regard15:14
rockyexcellent :)15:14
=== mw|out is now known as mw
awilkinsDoes anyone want my rc5 Python/Win32 installer builds?15:20
=== kiko-zzz is now known as kiko
=== toytoy_ is now known as toytoy
jelmerawilkins, somebody asked me about them15:27
jelmerawilkins, perhaps just add them to the releases wiki page?15:27
awilkinsjelmer: As attachments?15:28
jelmerawilkins, Just pointing at the URLs if you have uploaded them somewhere15:28
jelmerawilkins, alternatively, maybe you can upload them to the bzr launchpad project?15:29
jelmerawilkins, It may be useful to talk with John or Mark about that15:29
awilkinsjelmer: The "exe" version is convenient but I prefer the Python version which is more hackable15:30
awilkinsjelmer: I have no inkling of how to upload a file to the launchpad project (I feel certain that I have no rights to do so)15:31
jelmerawilkins, I think it makes sense to have both available for users to download15:31
jelmerawilkins, John, Mark or Martin should be able to help there15:31
awilkinsmarkh: Ping? jam: ping?15:32
awilkinsjam: Ping?15:32
jamjelmer: pong15:33
jamawilkins: pong15:33
jelmerjam, siretart is seeing select/poll errors in the testsuite from pycurl15:34
jelmerjam, is that a known issue?15:34
awilkinsjam: Hello, I have a build of the python-installer packages for windows if you want them15:34
jamjelmer: there is a known issue with newer versions of pycurl giving select/poll errors, yes15:34
jamI don't know that anyone has really dug into it15:34
jelmerjam, ah, ok15:34
jelmerjam, So this occurs with older versions of bzr as well?15:34
jamI thought vila poked at it a bit, but has been gone the last 3 weeks, and doesn't really start up again for about 24hrs15:34
jamjelmer: it has to do with the new pycurl, not so much bzr15:35
jamAs I understand15:35
jamso <hardy works15:35
jelmerjam: Ah, cool - thanks15:35
jelmersiretart, ^^15:35
jelmerjam, well, not *cool* but good it's not a new issue introduced by bzr :-)15:36
siretartjelmer: sec15:37
siretartjelmer: okay, I'll upload then rc5 in a minute then15:38
siretartjelmer: where to find the loggerhead packaging branch?15:38
jelmersiretart, http://bzr.debian.org/pkg-bazaar/loggerhead/unstable15:39
jamawilkins: thanks, I would guess it is easier to just have me reboot and build them, or have markh do it when he does the full installer. Mostly because someone needs to upload them, and sending 5MB email attachments isn't great :)15:39
timnikwhen doing a "bzr pull" is it possible to tell bzr to not overwrite a particular file? (ever?)15:39
timniki.e. one of the files under version control15:40
timnikI'm guessing it's not, but if I'm wrong would be cool :-)15:41
Peng_beuno: ping15:44
beunoPeng_, pong15:44
Peng_beuno: Just to make sure, is it safe to have Loggerhead's /static/ directory served by another web server instead of LH itself?15:45
jamtimnik: generally not15:45
beunoPeng_, sure, I don't see why that would blow up at all15:46
awilkinsjam: Fair enough15:46
Peng_Yeah, it seems to be working fine.15:46
beunoit accesses everything through the URL, so you should be fine15:46
Peng_Thanks. :)15:46
awilkinstimnik: A pull will never overwrite a file. It may move it, but not destroy it15:47
beunoPeng_, anything for our star tester  :)15:47
timnikjam, thanks15:47
Peng_:)15:47
timnikawilkins, would it not attempt to update it, if it's contents had changed?15:47
awilkinstimnik: Unless that's part of the revisions pulled of course....15:47
timnikawilkins, well, yes15:48
timnikawilkins, not to worry. It's more a matter of me being lazy than any real problem.15:48
timnikthanks!15:48
awilkinstimnik: You could write a post-pull hook that restored your file I suppose15:52
timnikawilkins, Thanks for the hints. What I should really do is fix my program to use a custom settings file not under version control. :-D15:53
timnikawilkins, admittedly I was looking for the lazy way out15:54
awilkinstimnik: I like a versioned template that you copy, but it's on the ignore list in it's "active" position15:54
timnikawilkins, hmm, that's an idea15:55
luksthe problem with this is that you have to manually copy any change to the real config15:55
* timnik runs to try it15:55
luksI'd really like to see a proper solution to that problem15:55
luksbut I can't think of anything15:55
awilkinsPrimary file is versioned but secondary ignored file overrides it?15:55
timnikluks, it should really ever be a problem. If it's needed, the developer is doing something wrong, imho.15:55
timnikIn this case it's me, and I'm too lazy to fix it.15:56
lukstimnik: well, software evolves and you need to add some configuration options15:56
timnik*never15:56
timnikluks, well, have a default file, and use it, unless a custom file exists. The settings in the custom file override that of the default.15:56
timnikdefault is under version control, custom is not, and is only ever used if it exists.15:57
lukshmm, yeah, that works for some cases15:57
luksbut it's still not as flexible as I'd like15:57
timnikheh, now you sound like me :-P15:57
timnikis in possible to undo a "bzr ignore" other than edit the ignore file?15:58
luksI don't think so15:58
timnikoh, ok. Almost had it. :-D15:58
awilkinsIs it just me or are the google IMAP servers being a right pain in the bum today...16:07
pickscrapeThey go through spells. Unfortunately Thunderbird doesn't deal with it particularly well :(16:09
Peng_The only issue I ever have is having to log in frequently.16:12
Peng_Is that what you meant?16:12
awilkinsPeng_: Yes, that's what I mean16:16
Peng_That is a pain, but I've gotten used to it. :\16:16
Peng_That shows how much it happens.16:17
beunoawilkins, FWIW, I'm having problems with gmail through the web interface16:17
beunoit's doing odd things16:17
LeonidasWhat does hgext.convert.common.getchanges mean by "where id is the source revision id of the file."16:18
siretartjelmer: oh, loggerhead is a completely NEW package, isn't it?16:19
LeonidasI thought it was the revision id where the file was last modified.16:19
jelmersiretart, yes16:19
Leonidasoops, sorry, wrong channel ;)16:19
Leonidas(although the question is bzr-related, too)16:19
awilkins Leonidas Filthy mercurial user! Begone!16:19
siretartjelmer: oh, that meas I have to do a more thourough license check and such, I won't get to it today, will try tomorrow. If I fail to manage it until saturday, please ping me again16:20
jelmersiretart,16:20
siretartjelmer: btw, did you run 'licensecheck -r .' on the source?16:20
Leonidasawilkins: hey, when i implement the bzr_sink, you'll be able to convert hg repositories to bzr ;)16:20
jelmersiretart, thanks!16:20
jelmersiretart, no, wasn't aware of that tool yet16:20
jelmersiretart, I will, now :-)16:20
siretartjelmer: it is a rather simple tool using regex to determine the license of each file. of course not bulletproof, but a great asset for ftpmasters ;)16:21
siretartit is in the 'devscripts' package16:21
jelmersiretart, yep, found it16:22
jelmersiretart, I did a recursive grep for Copyright, that seemed to've covered everything16:22
jelmersiretart, I'll keep this in mind for next time though, very useful16:23
jamLeonidas: my understanding was that with hg fast-export | bzr fast-import you already *can*16:24
jamOr with the bzr-hg plugin, though I don't know if it has received any polish in a while.16:24
jamLeonidas: I don't really understand that sentence, in the context of hg or bzr16:24
jam"source revision id of the file" sounds like the revision id that initially added the file?16:25
LaneyIs this bug known and/or fixed? http://paste.ubuntu.com/39425/16:25
Leonidasjam: Yeah, but as far as I have seen it should be the "current" revision.16:26
Leonidasjam: I haven't tried fast-(im/ex)port, need to give it a try. I am currently hacking up hg convert so there is support for continous integration of new changesets into repositories.16:27
jamLaney: sounds like you have the bzr-dbus plugin installed16:27
jamI don't know why it would need X1116:27
jamyou could do "bzr pull  --no-plugins" and have it work16:27
jelmersiretart, any chance you can commit your changes for rc5 in the bzr branch on alioth?16:27
LaneyI have no idea what that is jam16:27
LaneyI'll file the bug16:28
jelmerLaney, that's a known issue in bzr-dbus16:28
LaneyOh!16:28
jamLaney: I don't know who did your setup then :) But you seem to have the bzr-dbus package installed. If you don't use it, you could "apt-get remove" it16:28
Laneyjam: Maybe it was pulled in as a dep of something?16:28
Laney"Automatically installed: yes"16:29
LaneyWell if it's known then I will wait16:29
jelmerLaney, https://bugs.edge.launchpad.net/bzr-dbus/+bug/10716916:29
ubottuLaunchpad bug 107169 in bzr-dbus "Failed to execute dbus-launch to autolaunch D-Bus session" [Low,Confirmed]16:29
jelmerbzr-gtk suggests or recommends bzr-dbus these days, I think apt may automatically install it when you install bzr-gtk by default16:30
LaneyProbably. But I don't know why bzr-gtk would be involved at all - I'm invoking this over SSH16:31
LeonidasTo read a file from a repo I just need to lock_write it, right? Because lock_read 8which is unfortunately undocumented) would lock it also for reading, as far as I can guess. Am I right?16:32
jelmerLaney, If you install bzr-gtk, apt may also install bzr-dbus for you16:32
jelmerLaney, bzr-gtk isn't involved here, but bzr-dbus probably came along with it if you installed it16:33
siretartjelmer: err, I already did?16:33
Laneyjelmer: Right, I get that. But shouldn't bzr-dbus be disabled if calling over SSH too, or?16:33
siretart>> bzr missing sftp://bzr.debian.org/bzr/pkg-bazaar/bzr/unstable/                                                          :0.016:33
siretartBranches are up to date.16:33
Laneyjelmer: Anyway, removing bzr-dbus has fixed it. Many thanks16:34
jelmersiretart, sorry, my bad16:34
jelmersiretart, my mail is just very slow today16:34
jelmerpulling manually does indeed work16:34
siretartjelmer: I work with checkouts, my local branch is bound to alioth16:36
jelmersiretart, I was checking for a commit email from alioth, but for some reason are not seeing any16:38
siretartok, heading home now, cu later!16:39
jelmersee you!16:40
=== mvo_ is now known as mvo
jambeuno: did you see luks: http://bazaar.launchpad.net/~luks/bzr/packaging-tools/annotate/3?file_id=ppa.txt-20080821102811-jhoajulm56uo6vgm-117:32
jamvila: I submitted my patch (with test) for bug #259855 so I closed that bug, but opened a new one about FTP transport and assigned it to you. It is priority low, so you are welcome to ignore it, unassign it17:33
ubottuLaunchpad bug 259855 in bzr "Wrong mode of .bzr files when pushed via FTP" [Medium,Fix committed] https://launchpad.net/bugs/25985517:33
beunojam, oh, open source rocks!  :)17:34
jambeuno: I haven't tried it17:34
* beuno branches17:34
jambut it looks like he set up a few packaging branches17:34
jamand has the whole thing fairly scripted17:34
jamI noticed he left out "intrepid"17:34
jamand he hosted the packaging branches as "bzr" project branches, which isn't quite correct.17:35
jambut in general, it could make things a lot easier.17:35
luksjam: they already were under bzr17:35
jamI would probably create a "bzr-packaging" project, and migrate things over to ~bzr/bzr-packaging etc.17:35
jamluks: ah, well, that doesn't make it *right* :)17:35
jamProbably martin did that17:35
luksI think it's common on launchpad to have debian/ubuntu packages under the product17:36
beunoluks, very cool. I'll poke at it in a bit17:36
luksbeuno: the main advantage is that it uses bzr-builddeb17:36
luksso you don't have to mess with tarballs17:36
luksthe scripting is just extra bonus (yes, I was bored :))17:37
beunoluks, so you worked around the .c/pyrex problem?17:37
luksthere is no .c/pyrex problem17:37
* LarstiQ waves a spoon about.17:37
* pickscrape watches the spoon bend17:38
* timnik thinks there is no spoon17:39
beunoluks, didn't jam mention something yesterday?17:39
luksyes, and he was wrong17:39
lukssorry :)17:39
beunothat's great news!17:39
jamluks: so how do you get the .c files into the output?17:39
jamif you aren't using tarballs?17:39
luksjam: *you* put them there17:40
luksit does use tarballs17:40
luksbut bzr-builddeb takes care of it, not the packager17:40
jamluks: ok, you just said: (11:36:52 AM) luks: so you don't have to mess with tarballs17:40
jamJust a bit confused17:40
jambut as long as it works :)17:40
lukssorry17:40
beunojam, can you release a rc6, so I can test this?17:41
* beuno ducks17:41
jambeuno: You'll get a 1.6-final in a few days17:42
jamis that sufficient :)?17:42
jamYou could do everything but upload17:42
beunosure, let's alpha-test with 1.6 final  :p17:42
beunoI'm kidding, yes17:42
beunoI can upload to my own PPA n' stuff17:42
fullermd1.6-final is a RC for 1.7   :p17:42
luksheh17:42
* beuno slowly moves away from jam 17:43
jambeuno: isn't that what 1.6.1 is for? :)17:44
jamactually 1.6~bazaar217:44
jamsince the tarball doesn't change17:45
jamjust the packaging17:45
teratornbeuno: back away, slow. don't take your eyes off of it17:45
jamor maybe 1.6~bazaar1~hardy2 ?17:45
beunoyeah, as of today, I can upload all bzr packages with "control + r" and changing 4 or 5 characters17:45
jamI don't strictly understand all the numbering ideas17:45
fullermdYeah.  Like "1.6i+5".  It gets so complex.17:46
=== kiko is now known as kiko-fud
Odd_BlokeI checked out part of a Subversion repo using bzr-svn.  I did some local commits and then tried to do a non-local commit (which I was expecting to sync up all the commits).  I was told that the local branch was out of date with the SVN branch.  Nothing has changed in that part of the repo (though I don't know about the repo as a whole).18:16
jelmerOdd_Bloke, you need to "bzr up" first18:16
jelmerOdd_Bloke, and you may have to push the changes to svn first18:17
Odd_BlokeI'm now trying to push my changes into there and bzr-svn seems to be browsing the ~245 branches (as per the branching scheme) on the server, without any actual pushing seeming to happen.18:17
vilafullermd: ROFL18:18
jelmerOdd_Bloke, it is checking whether the revisions are already there somewhere in one of the other branches18:18
Odd_BlokeOK, I'm now pulling from my branch into a pristine checkout of the SVN.  Which seems to be working...18:18
vilajam: ok, I'll look into it in 12.5 hours 8-)18:18
* fullermd clicks off a stopwatch.18:19
* vila tweaks fullermd's watch to adjust it: 12h40m18:20
kek2hi18:40
=== kiko-fud is now known as kiko
kek2hi everybody. i'am using bzr first time. I Committed revision 1. How can i push the commit to a server over ssh?18:45
Odd_Blokekek2: 'bzr push sftp://<user>@<server>/<path>'.18:47
jelmerOdd_Bloke, "bzr push <svn-url>" would've also worked18:47
kek2ok, i will test18:47
Odd_Blokejelmer: Yeah, I realised this just now (when it did work :D).18:47
Odd_BlokeBut the pulling option is actually quicker, because it doesn't feel the need to scan for the revision in every branch.18:47
kek2kekz@firefly:~$ bzr push sftp://kekz@kekzkbook/home/kekz/test18:47
kek2bzr: ERROR: Not a branch: "/home/kekz/".18:47
kek2whats the mistake?18:48
Odd_Blokekek2: Well, '/home/kekz/' is not a branch.18:48
kek2the same error when i use bzr push bzr+ssh: ... usw.18:48
Odd_Blokekek2: So you can't use bzr to push it anywhere.18:48
Odd_BlokeWhich directory were you in when you committed revision 1?18:48
kek2oh ... so i must initalize an empty commit on server?18:49
Odd_Blokekek2: No, locally.18:49
Odd_Blokekek2: What directory were you in when you committed revision 1?18:49
kek2/media/daten/devcenter18:50
kek2no .. the last time i try from /home/kekz18:50
kek2aah :)18:50
kek2ssh: kekzkbook: Name or service not known18:51
kek2bzr: ERROR: Unable to connect to SSH host kekzkbook; EOF during negotiation18:51
kek2ok, i think i have an dns problem18:51
kek2wrong hostname18:51
kek2ok, it works18:51
kek2Odd_Bloke: Thank you18:51
kek2its pushing =)18:52
Odd_Blokekek2: No worries, glad I could help. :)18:53
kek2i have a pc and a notebook and a server (in vmware on the notebook). Sometimes i work on my pc, sometimes i work on my notebook. What is the best practice .... to push and pull from server      OR    to push and pull between pc and notebook directly?18:57
Odd_BlokeArgh, I'm having to commit for the third time because I forget that bzr-svn will prompt for passwords multiple times.18:58
=== cody-somerville_ is now known as cody-somerville
uwsOdd_Bloke: ssh keys to the rescue?19:04
jelmerOdd_Bloke, bzr-svn doesn't prompt multiple times, bzr does :-)19:10
=== mw is now known as mw|food
jelmerkek2, either will work fine I think19:17
jelmerhmm, bb down again?19:17
jelmerjames_w, hi19:17
=== herb_ is now known as herb
beunojelmer, it's been down for a while, and abently is on vacation19:19
jelmerbeuno: ah, ok19:25
Odd_Blokejelmer: Hmm, I've only noticed it when using bzr-svn.19:28
jelmerOdd_Bloke, the checkout logic is all inside of bzr19:28
jelmerOdd_Bloke, have you used local commits with checkouts and native bzr branches?19:29
Odd_BlokeNo, I suppose not.19:29
kek2bye19:31
kek2and thanks for help19:31
vilajam: I agree 60% with your analysis and 100% with your patch for #259855, I'll address the remaining 40% while fixing #260131, so BB:approve19:33
mwhudsonjelmer: i was trying to help a guy the other week who (it turned out) was doing 'bzr ci' in a svn working tree when the svn server was inaccessible19:33
mwhudsonjelmer: the error was not very clear :)19:33
vilaubottu: grrr, bug #25985519:34
ubottuLaunchpad bug 259855 in bzr "Wrong mode of .bzr files when pushed via FTP" [Medium,Fix committed] https://launchpad.net/bugs/25985519:34
ubottuError: I am only a bot, please don't think I'm intelligent :)19:34
jelmermwhudson, did you file a bug ? :-)19:34
jelmermwhudson, or, do you perhaps remember what the error message was?19:34
jamvila: shame on you for harassing the ubottu :)19:34
vilaubottu: grrr, bug #260131, yeah, mister bot, but come on #226131 is *obvious* !!!19:35
ubottuLaunchpad bug 260131 in bzr "FTP stat() does not return valid permission bits" [Wishlist,Triaged] https://launchpad.net/bugs/26013119:35
ubottuError: I am only a bot, please don't think I'm intelligent :)19:35
mwhudsonjelmer: oh, it was https://bugs.edge.launchpad.net/bzr-svn/+bug/211683, you commented already19:35
ubottuLaunchpad bug 211683 in bzr-svn "bzr-svn crashes on branch with exception 170000" [Undecided,Fix released]19:35
vilajam:  :-P 23.5 hours to go :)19:35
mwhudsonjelmer: that's what the comment from chris perkins was about19:35
fullermdWhat?  It was 12.5 an hour and a quarter ago!19:36
beunomwhudson, hi. Want to see something weird?  bug #26019020:30
ubottuLaunchpad bug 260190 in launchpad-bazaar "One cannot access to the "Help" section while working on "Changes"" [Low,Triaged] https://launchpad.net/bugs/26019020:30
mwhudsonbeuno: !?20:31
=== kiko is now known as kiko-afk
beunomwhudson, I have *no* idea how different tabs can be show on different places20:33
jamvila: wouldn't that mean you start late in the evening on Friday? I should get your TZ sometime so I can keep track of your offset.20:37
jamThough I guess knowing your working hours is just as important :)20:37
beunovila should be UTC +220:38
jambeuno: so basically your template is der-broken?20:38
jamThat is kind of odd20:38
jamBut I certainly see the same thing20:38
jamthe help tab disappears when you are under changes20:39
beunojam, well, the tabs are generated from one place only, so this kinda throws me off  :)20:39
james_whey jelmer20:45
jelmerjames_w, Have you had any time to look into my debian directory service patch for bzr-builddeb yet?20:45
james_wjelmer: I put it on hold, sorry.20:46
jelmerjames_w, No hurry, just making sure it's not forgotten20:46
james_wah, ok.20:46
jelmerjames_w, How's the bzrification of the archive going?20:46
james_wI may try and fold it in this week, but I'm wondering how it interacts with my other work20:46
=== mw|food is now known as mw
james_wI haven't started another conversion run since the sprint as I have been focusing on other things, but it's hopefully on track20:47
jelmerjames_w, ah, cool20:52
jelmerjames_w, you've probably already seen it, but just in case: https://wiki.ubuntu.com/BzrMaintainedPackages20:53
james_wah, great, thanks20:53
james_wthat's probably going to be useful20:53
=== kiko-afk is now known as kiko
* mwhudson hmms21:16
mwhudsonlifeless: awake yet?21:16
rockyanyone here using TracBzr ?21:27
rockycurious what it's "status" is21:28
pickscrapeI am21:29
pickscrapeThough I'm not sure of its status21:29
rockypickscrape: is there a released version to use or is using a snapshot from bzr the best bet or?21:29
pickscrapeIt seems to have some problems with bzr 1.6.21:29
pickscrapeWe're using a snapshot from bzr21:29
rockythis branch seems to be working on bzr 1.6 compat21:29
rockyhttps://code.launchpad.net/~scott-idealist/trac-bzr/bzr-1.621:29
pickscrapeooh, I hadn't seen that...21:30
pickscrapeThanks for pointing me at that :)21:30
rockynp :)21:30
rockyi'm not so interested in 1.6 support yet ... what i'm more curious about is just how fast it is compared to trac's native svn support and being sure it won't blow up my server ;)21:30
pickscrapeOur experience is that it seems to be slower, though that could be because we have it pointing at a directory containing multiple shared repositories that contain multiple branches21:32
rockyhm21:32
rockydoes it have any kind of support for cross-referencing revision links in wiki formatting? (ie with svn support, if in a ticket you reference r23 it automatically links to svn/browser r23 changeset url)21:33
pickscrapeYes21:34
pickscrapeIt looks like [branch_name,revno]21:34
pickscrapee.g. [trunk,34]21:34
rockyoh cool21:35
rockyi'ven ever hosted an actual bzr repo before so that's something i'll have to play with anyhow21:35
pickscrapeThough there is an annoyance in that if the branch name contains a slash, it gets escaped and looks awful. Not sure if that's a problem with trac core or trac-bzr though.21:35
brl4njust installed and started playing with bzr an hour ago. Trying to do a push via sftp but I'm getting an "Connection abandoned.21:41
brl4nbzr: ERROR: Unable to connect to SSH host localhost; EOF during negotiation21:41
brl4nnot exactly sure if it is an ssh problem or bzr problem21:42
mwhudsonbrl4n: sounds like an sftp problem21:42
brl4nwell I am able to connect through a sftp client.21:43
mwhudsonhmm21:43
mwhudsonwhat platform?21:43
brl4nwinXP using openshh21:44
brl4nbzr returns the rsa2 key finger print21:44
brl4n"Connection abandoned" then the Error: Unable ... etc21:45
brl4ni've googled around but wasn't able to come up with anything21:45
=== meteoroid is now known as quiznoroid
mwhudsonoh windows21:46
mwhudsoni know things can be a bit hard to set up there, don't know the details though :/21:46
mwhudsonmarkh probably does, but i guess he's asleep21:47
brl4nyah that is what I'm thinking21:47
brl4nokie21:47
brl4ni'll idle around then.21:47
brl4nthanks21:47
mwhudsonjam, vila: maybe you can advise brl4n ^ ?21:47
lifelessjam: ping22:12
jamlifeless: pong22:12
lifelessthat log patch was against bzr.dev22:12
lifelessno missing revisions22:12
lifelessif you'll note it was started on rev 3642 of trunk -   (jam) Merge in 1.6rc5 and revert disabling default stack on policy22:13
lifelessalso, good morning22:14
jamlifeless: well, the patch I see includes the NEWS entry for 1.6rc4 and 1.6rc522:14
jamAre you sure it was against bzr.dev proper?22:14
jam(are you sure your bzr.dev copy is up-to-date)22:14
lifelessoh wrong parent,22:15
lifelessits got integration as my parent for some retarded reason22:15
jamaha22:15
jamgood morning to you, too :)22:15
lifelessresent22:15
rockstarIs there a way you can put a plugin in the plugins directory, and blacklist it so it doesn't load in bzr?22:17
lifelessyes, don't put it in there22:17
lifelessrockstar: why do you want to do that?22:17
rockstarlifeless, because we need the functionality of the plugin, but don't want bzr actually trying to use it22:24
lifelessrockstar: 'we' ?22:24
rockstarAll the imports are 'from bzrlib.plugins.foo'22:24
rockstarlifeless, lp-code22:24
lifelessrockstar: a little more detail and I can probably be really clear and helpful :)22:24
rockstarlifeless, sorry22:25
lifelessif you have python code you want to use froma python program that also uses bzrlib22:25
lifelessyou can just import it22:25
* rockstar winds up22:25
lifelessif its not a bzrlib plugin, don't put it in plugins22:25
lifelessif it is a plugin, put it in plugins22:25
rockstarSo, I'm trying to implement a new layer into cscvs which will use the work jelmer did for svn.22:26
rockstarSo, we need the bzr-svn code, but we don't actually want it used by bzr22:26
lifelesswell22:26
lifelessyou'll need to restructure bzr-svn then22:26
lifelessor22:26
lifelessonly have it in the bzrlib plugins path when cscvs is running22:27
lifelessBZR_PLUGINS_PATH22:27
rockstarYea, that's what I had figured, and that's what mwhudson and I decided would be a good idea22:27
lifelessthough I'd just install it normally and use it22:28
lifeless(where normal is probably in the lp rollout system)22:28
lifelessunless you have a specific reason /not/ to have it available22:28
lifelessbzr.dev is looking at shipping bzr-svn by default22:29
mwhudsonlifeless: it seems like it would be a bad idea to have bzr-svn active when running the supermirror-pull.py mirror script22:30
mwhudsonunless we want to start supporting imports via bzr-svn essentially by accident22:30
lifelessmwhudson: doesn't the pull check the branch type already?22:30
lifelessmwhudson: seems like the 'manually create an identical format in the target' step will fail epicly with bzr-svn branches and repositories :)22:31
mwhudsonlifeless: that's true i guess, but a bit of a detail22:31
mwhudsonlifeless: also, we use clone() for the initial branch creation now22:31
mwhudsonlifeless: which relates to something else really i want to talk to you about...22:32
mwhudson('manually create an identical format in the target' is also broken for bzr+http of course)22:33
lifelessmwhudson: indeed22:34
lifelessso, what I'd do is to integrate and test bzr-svn carefully22:34
lifelessrather than doing something complex and hoping noone says 'this is too complex' and 'fixes' it later22:35
lifelesswithout thinking of the things you have thought of22:35
mwhudsonthough oh god, we'll probably completely re-mirror a bzr+http branch each time the puller runs now :(22:35
* mwhudson biles a fug22:36
lifelessbetter than buggering a file22:38
mwhudsonbug 4527722:53
ubottuLaunchpad bug 45277 in bzr "[bzrlib] No easy way to compare format objects" [Medium,Confirmed] https://launchpad.net/bugs/4527722:53
AfCSo revision specs can be used with -r arguments, all good; is there a way to use them with commands that just take a branch URL (ie, I'd like to do `bzr missing push:` but that doesn't fly)23:22
mwhudsonwell23:22
mwhudsoni think you mean bzr missing :push23:22
mwhudsonthat works and isn't a revisionspec23:23
AfCooooh23:25
AfCnifty23:25
* AfC wonders where he could have learned that himself23:25
AfCmwhudson: (but I was referring to forms like `bzr diff -r parent:` )23:25
mwhudsonAfC: it's not documented yet23:37
james_wAfC: I think parent is also :parent23:43
AfCInteresting23:43
jonnyde1hi, I've got a question regarding bundles: is it possible to backup a bazaar branch and all its revisions using a bundle? if so, how would it look like?23:43
james_wAfC: but if you mean e.g. "branch:" then I think "branch:29:wherever" is the way23:43
AfCI'm going to observe that it seems a bit strange that the thing: pattern was inverted to :thing23:44
james_wthe :thing things are not revision specs, they are location specifiers23:44
AfC(if it's meant as a suffix, then fine, it makes sense, but it is rather glaring as using the same names in an inconsistent way. That tends to be a UI foible)23:45
james_wI'm not sure that they are the same names23:45
AfCjames_w: parent, branch?23:45
mwhudsonit's not really the same class of thing, even23:45
AfCsame23:45
mwhudsonthough i agree it's a bit confusing23:45
james_wI'm not that keen on :parent et. al., but I don't think they conflict23:45
james_wAfC: it's branch: and :parent, they are two different words23:45
AfCjames_w: bzr command -r branch:path23:46
AfCjames_w: bzr command  path:branch23:46
james_wyou can say using very similar things is a problem, but I don;t think they are the same23:46
james_wAfC: the second doesn't make any sense as far as I am aware23:46
jonnyde1(I would like to have a backup which is independent of the repository format)23:46
james_wor is that one I'm not familiar with?23:46
AfCok23:46
AfCjames_w: bzr command -r parent:23:47
AfCjames_w: bzr command :parent23:47
james_wI could imagine it as "the branch of this tree wherever it is"23:47
AfCyou're trying to tell me that people aren't going to go out of their minds trying to remember when to use which?23:47
james_wI don't think parent: is recognised23:47
james_woh, I don't dispute that, but you said "same words", and I don't think there are any actually replicated23:48
AfCjames_w: as may be.23:48
AfCjames_w: were I a betting man, I'd be wagering heavily on this one.23:48
james_wAfC: is the very nature of these things a problem, or is it just the presentation?23:49
james_wwould e.g. branch: and @parent be easier?23:49
jonnyde1I think somehow creating a diff (bundle) between an empty branch and the branch to be backed up should do it, shoudn't it?23:50
james_wjonnyde1: I think so23:51
jonnyde1so this should also be a way to convert a format into another format where no direct upgrade/downgrade is available...?23:52
james_wdirect upgrade is available from every format since 0.4 or something as I understand23:52
james_w(so long as you don't try and go rich-root->non-rich-root or similar)23:53
jonnyde1well, but as I figured out this is not true for downgrading23:53
james_wand as a bundle contains the revision data you won't be gaining anything23:53
bob2going via bundles won't let you downgrade repository formats23:54
jonnyde1why not? is the bundle format specific to a repository format?23:54
james_wI think it just serialises the source repository format23:55
jonnyde1ok, I see. So a cannot apply a bundle to a repository where the formats are incompatible...23:55
bob2well, pretty sure it works upwardly23:57
bob2but you can't go back (from rich-root to plain)23:58
jonnyde1I wonder why there is no way to just export a series of commits. This way, I could just replay the commits, no matter what format the repository has...23:58
james_wyou can fast-export, but it's lossy23:58
jonnyde1bob2: btw, thanks for your feedback23:59
bob2you can, as diffs or fast-export, but that doesn't help you23:59

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