/srv/irclogs.ubuntu.com/2010/11/04/#bzr.txt

mgzhttp://retout.co.uk/blog/2010/11/03/gnash_from_git <- there was really no prospect of progress on savannah?00:03
mgzlosing: your earlier problem is bug 632704 perhaps?00:09
ubot5Launchpad bug 632704 in Bazaar "Can't merge a directory deletion in a wt with a pending subdirectory deletion (affected: 1, heat: 6)" [High,Confirmed] https://launchpad.net/bugs/63270400:09
peitschiemgz: I thought they were getting help with savannah... any idea wats stalled?00:11
mgznope. will poke through the mailinglist archives see what's been said.00:12
losingmgz: yep, you are correct00:15
mgzpeitschie: from January -> https://lists.ubuntu.com/archives/bazaar/2010q1/066291.html00:15
jbowtieStrange. Just added support for checking out TFS branches, but bzr info shows me that I created a standalone tree instead of a checkout.00:16
mgzlosing: metoo it, vila may be interested00:16
losingmgz: not sure what you mean.  Do you want me to add a comment with some useful details?00:18
mgzwell, if you have any that would be good. I just meant doing <https://bugs.launchpad.net/bzr/+bug/632704/+affectsmetoo>00:18
ubot5Launchpad bug 632704 in Bazaar "Can't merge a directory deletion in a wt with a pending subdirectory deletion (affected: 1, heat: 6)" [High,Confirmed]00:18
peitschiemgz: thats what I remembered seeing as well...so it seems  that the move to bzr+ssh has stalled somewhat... sftp would definitely be slow as 3-day old porridge...00:19
jbowtieMaybe I'm missing some implementation for bind?00:19
losinggotcha00:19
mgznot an area I've looked at I'm afraid jbowtie, you probably need jelmer if you get really stuck.00:22
peitschiemgz: http://savannah.gnu.org/support/?10707700:22
peitschiemgz: (links to the discussion threads are down so I cant see what's progressed since march this year)00:22
=== losing is now known as pifantastic
jbowtiemgz: It's good, I'm just walking myself through the code path for bind() to see if I'm missing any implementation.00:24
pifantasticToday is not my day.  Just got the following error after committing to launchpad: http://pastie.org/127109100:25
pifantasticthat commit hasnt shown up yet on launchpad00:25
pifantasticI think it may be lost in the ether00:27
mgzwhat fun.00:28
mgzbug 304545 may be related.00:28
ubot5Launchpad bug 304545 in Launchpad Bazaar Integration "ProtocolError for xmlrpc while pushing branch (affected: 0, heat: 0)" [Medium,Triaged] https://launchpad.net/bugs/30454500:28
mgzdiagnosis. suggests just trying again may work.00:29
pifantastictrying again gave me a TooManyConcurrentRequests error00:29
pifantasticI wonder if I could merge back and try and recommit00:30
mgzha. probably need to wait for the last process to give up.00:30
mgzI'd file a new bug against launchpad-code with your traceback.00:30
pifantasticin the mean time, where is my commit? :P00:31
pifantasticim not sure how to recover it so I can try again00:31
mgzsafely on your drive, thanks to the wonders of dvcs.00:31
pifantasticgood point :)00:32
pifantasticgood heavens, now getting Server denied check_authentication  from launchpad00:33
pifantasticI think im going to step away00:33
pifantasticah there we go00:35
pifantasticcommit looks find on lp00:35
pifantasticIm guessing the error was in the XML returned from lp after the request00:35
pifantasticmaybe a malformed response00:35
peitschiepifantastic: you really pissed off some computer god somewhere i think!00:37
pifantasticit's been one of those days00:37
jbowtieHmm. bzr.bind fails silently.00:41
jbowtieI would expect it to write something to branch.conf (bound_location=xxx)00:42
spivjbowtie: :(00:42
jbowtieOh, I'm not setting self.base in my __init__00:43
jelmerjbowtie: have you tried running the ControlDir tests against the tfs control dir implementation?00:45
jbowtieAnd branch.set_bound_location just swallows the exception, apparently by design.00:45
jbowtiejelmer: I've only just started hooking the implementations to the various test suites; clearly I need to accelerate that.00:46
jbowtiejelmer: checkout/bind/unbind was really the last piece I wanted to implement before the big testing push.00:48
jbowtieNow I have some confidence that implementation is far enough along to be worth the testing/refactoring cycle.00:49
jbowtieYay, checkout/bind/unbind works!  Now on to hooking up the all the tests!00:55
jbowtie"No module named layout.test_custom" running bzr selftest, any clues?01:25
jbowtienvm, it's a missing directory error I reported on the mailing list back when.01:27
glyphHey01:37
glyphIf I do some commits on a machine where I forgot to do 'bzr whoami'01:37
glyphis there a way to edit history to change the revision author?01:37
beunoglyph, there is not01:37
glyphwow, really?01:38
glyphis there a way to edit log messages?01:38
mwhudsonno01:38
mwhudsonwell, you can fix both things by rebasing of course01:38
glyphmwhudson: rebasing, or at least the rewrite plugin, doesn't seem to be sufficient01:38
glyphit remembers the (wrong) author and introduces a distinct 'committer' field01:39
mwhudsonwell, "some kind of rebasey operation"01:39
glyphplus there is no way to edit log messages as you rebase01:39
spivglyph: in principle rebasing is the only way to do that, it may be the bzr-rewrite plugin is a bit lacking here though.01:43
glyphspiv: Yeah.  I'm fine with rebasing01:44
spivYou could use (abuse?) bzr-fastimport for this, it has tools for filtering/editing the exported revs.01:44
glyphBasically I just want an easier way than copying patches to just do 'bzr uncommit; bzr uncommit; bzr uncommit; bzr ci; bzr ci; bzr ci;'01:45
glyphspiv: I confess I've never really understood the purpose of fastimport01:45
glyphin particular, I don't understand why bzr-svn isn't just fast by itself and it needs a whole other plugin to help it along01:46
spivglyph: fastimport isn't especially related to svn01:46
spivglyph: it's a reasonable request, and I think the rewrite plugin ought to accomodate it.01:47
spiv(after all, the rebase plugin clearly already has most of the infrastructure required)01:50
spivglyph: tell you what, I think I can see a half-baked way to hack this into bzr-rewrite, give me a few minutes and let's see...01:52
spivglyph: to be clear, you want to take revisions that say 'committer: Foo' and rewrite them to say 'committer: Bar'?01:54
glyphspiv: author: Foo to author: Bar, actually01:56
glyphspiv: but yeah, that's the general idea.01:56
spivglyph: and leave the committer: alone?01:58
glyphspiv: the committer: too01:58
glyphspiv: basically it's a machine where somehow my 'bzr whois' somehow got to be 'glyph@localhost'01:58
glyphbut I am generally interested in rewriting / cleaning up history01:59
spivOk, so it's rewrite 'glyph@localhost' anywhere it appears in committer/authors.01:59
lifelessspiv: I would love for someone to turn my manifesto into a reality; I think it would meet a missing 'must have' component for bzr in a tasteful way :)01:59
spivlifeless: yes, it would be nice.02:00
glyphlifeless: which manifesto is this?02:00
lifelessglyph: history editing support02:00
glyphlifeless: oh.  Yes, that would be great.02:00
lifelessglyph: theres a cultural knee-jerk against it in bzr-land, which I tried to inject reason into.02:00
glyphlifeless: you know what would be really extra great, would be integrating it into 'bzr qlog' (or a tool like it) so that revisions which have been pushed show up in a different color than ones which haven't02:01
lifelesshttp://osdir.com/ml/bazaar/2009-06/msg00338.html02:02
glyphlifeless: One use-case you don't talk about in there is the 'open source prep-work' case02:03
glyphI have a proprietary repository, it has a bunch of proprietary crud in it, I start working on open sourcing it, and I need to delete the revisions which contain large proprietary opaque blobs, but I don't want to lose _all_ the history02:06
spivglyph: fastexport is currently an ok way to do that, IIRC.02:07
lifelessglyph: that's covered really02:07
glyphspiv: OK, good to know.02:08
glyphspiv: where's the documentation for fastimport?02:08
lifelessglyph: once you break the history chain, its a rewrite edit full stop - in any system02:08
glyphlifeless: Yeah, I'm aware of that :)02:08
lifelessglyph: and thus that use case is covered?02:08
glyphlifeless: uh, I don't think so?  at least, *I* don't know how to do it with fastimport02:09
lifelessglyph: so, I was saying in that doc - 'these are things we need to support'02:10
glyphlifeless: anyway, the other use-case that I have is ... it's not really a direct use-case in a sense02:11
glyphI am having trouble expressing it02:11
glyphbasically it's editing unpushed stuff02:11
lifelessglyph: so use case being covered means : 'if the mythical software in that doc exists, what you want to do would be doable'02:11
glyphlifeless: oh!02:11
glyphlifeless: yes, absolutely02:11
glyphlifeless: your proposal there covers the use-case completely, i'm just saying it's a very strong motivation to _do_ those things :)02:11
lifelessediting unpushed stuff - thats a simple case of history-polishing + patch-management02:12
glyphlifeless: Yes.. I don't have any unique requirements there either02:16
glyphJust an observation02:16
lifelesssure :)02:17
lifelessYou are right that I didn't directly talk about that combo02:17
lifelessI think that I didn't because its generally known to be 'ok' - when folk are not collaborating on stuff02:17
lifelessas in, its trivially ok to do destructive local edits02:17
glyphThe best way to describe my personal experience is to say that there is a sliding scale of how 'serious' a VCS commit is02:18
lifeless'uncommit' comes to mind02:18
spivglyph: lp:~spiv/bzr-rewrite/rewrite-committer-hack.  It's completely untested beyond looking at pyflakes output.02:18
lifelessspiv: theres an older one for committer that I did02:18
glyphspiv: You the man.02:18
spivlifeless: heh.02:18
lifelessspiv: jelmer hasn't merged it :(02:18
spivglyph: it might be worth looking at lifeless' branch!02:18
glyphlifeless: More serious == worse02:19
spivAh well, time spent getting some familiarity with bzr-rewrite was probably time well spent anyway.02:19
glyphThe most serious kind of commit is to a CVS repository02:19
lifelessglyph: -lol-02:19
glyphBecause your change gets mangled and basically lost, and HEAD becomes the truth for real02:20
lifelessmodern CVS has atomic commits02:20
lifelessfwiw02:20
lifelesswith uuids02:20
spivglyph: I'm almost certain lifeless' branch will be more sensible than my hack, which really is a hack.  lp:~lifeless/bzr-rewrite/dev02:21
glyphSecond is svn; you can undo commits since they're atomic, and you can put stuff in branches, but it's still instantly public02:21
glyphbzr is not very serious at all, largely because of the convenience of uncommit and rebase02:22
lifelessspiv: I wouldn't underestimate the value of a hack ;)02:23
glyphI can save a change knowing that is easy to undo it, or merge it, or reverse it ( I discovered the 'reverse cherry pick' menu item in qlog today and it is awesome)02:24
glyphThe direct consequence of this is that I commit MUCH more often02:24
spiv\o/02:25
glyphIn particular, I typically commit before running tests, rather than after02:26
glyphWhich means that my whole development workflow is streamlined02:26
glyphAnyway... If there were a good ui for editing unpunished history, I would probably just hook up a 'bzr commit' script to run after 'save' in my editor02:28
glyphUnpushed, even.02:28
glyphHaving to think of a good descriptive change message *before* bzr will agree to save my work is the #1 thing keeping me from committing right now02:30
glyphIs there a way to tell bzr about a default protocol?03:01
glyphOn several of my domain names, the protocol specification is now longer than the domain itself :)03:01
glyphi.e. 'bzr pull foo/~/bar -> bzr pull bzr+ssh://foo/~/bar'03:02
maxbprotocol specification?03:02
maxbWell, you could use a small custom plugin to implement certain aliases03:03
peitschiewhats the easiest way to drop into a debug session with python under debian?03:03
maxbe.g. foo:bar where foo: is a shortcut for bzr+ssh://foo/~/03:03
peitschiethat is, running bzr under debian... drop into a debug python :)03:03
glyphmaxb: Hmm, I guess the launchpad plugin would be a good start for that03:04
glyphmaxb: any pointers as to where the relevant code is?03:04
maxbglyph: http://paste.ubuntu.com/525434/03:05
maxbThat's what I have in my ~/.bazaar/plugins/03:05
maxbactually come to think of it there's nothing special about the colon there, so you could alias foo/ if you wanted to, I guess03:06
maxbit might be more confusable, though03:06
glyphmaxb: wow.  just that, in ~/.bazaar/plugins/something.py?03:08
glyphI think I'll stick with a colon, don't want to do anything _too_ weird.03:08
maxbyep03:12
jbowtieAnyone know what this is about?  http://theironlion.net/blog/2010/11/03/favor-ask-everyday-bazaar-users/03:29
jbowtieI'm intrigued by the promise not to be evil.03:30
peitschieahh... found it... kill -s SIGQUIT <bzr pid>03:30
jbowtieAm I supposed to be seeing curl connection errors when running 'bzr selftest'?  (on Ubuntu if that makes a difference)03:39
spivpeitschie: typically Ctrl-\ sends SIGQUIT to the currently foregrounded process04:01
peitschiespiv: woah!  way easier :D.  Thanks!04:01
peitschienow if only I could figure out why bzr/python suddenly has started hanging on os.access calls.....04:02
spivjbowtie: supposed to?  No.  IIRC there may be some known flakiness with those tests... vila would remember the details.04:04
jbowtiespiv: FAILED (failures=8, errors=52, known_failure_count=48)04:08
jbowtiespiv: Some of those are due to my plugin (so sort of expected) but most of them seemed to be due to pycurl throwing exceptions on https connections.04:09
jbowtieGah. Can't read test output, will have to re-run the suite with a redirection in place to capture it. That's another hour of my life.04:13
spivjbowtie: if you have a multicore system then try adding --parallel=fork04:19
jbowtiespiv: Will do when I get home. Think I'm passing all the per_foreign_vcs repository tests now.04:22
lifelessjbowtie: thats awesome04:26
spivWell, the New bug count is back down into single digits.07:05
spivThat's EOD for me.07:05
lifelessnice07:10
vilahi all !07:39
spivvila: Good evening07:42
vilaspiv: hey ! Enjoy !07:42
spivvila: would you mind taking a look at https://bugs.launchpad.net/bugs/660935?  It might be a dupe, or something you can easily fix07:42
ubot5Launchpad bug 660935 in Bazaar "bzrlib.errors.InvalidEntryName when resolving path conflict (affected: 1, heat: 6)" [High,Confirmed]07:42
vilaspiv: I will, conflict resolution is back at the top of my TODO list anyway07:43
vilaach, no reproducing recipe :-/07:44
spivvila: of course not, that would be too easy!07:51
=== zyga is now known as zyga-coffee
=== zyga-coffee is now known as zyga
=== deryck_ is now known as deryck
=== deryck_ is now known as deryck
=== Guest63625 is now known as jelmer
rockyjelmer, just an fyi, looks like launchpad has bzr-svn 1.0.4 but http://wiki.bazaar.canonical.com/ForeignBranches/Subversion#releases only has 1.0.3 at this point16:15
jelmerrocky: thanks16:15
jelmer1.0.4 is indeed the latest version, I'll update the wiki page16:15
rockyjelmer, don't suppose it would be worthwhile to just remove the releases section on the wiki page and have it point to the launchpad download section? that way you don't have to maintain multiple references16:16
rockyjelmer, and update pypi's download link to point to launchpad as well16:16
jelmerrocky: I don't actually maintain the launchpad download section but it's very good at picking up new releases from http://samba.org/~jelmer/bzr/16:16
jelmerwhich is why it's the most reliable source at the moment :-)16:16
rockyjelmer, well either way, it seems like having to manually update the wiki page is a bad thing and it should just point to the most reliable download source :)16:17
rockymost reliable download listing, rather16:17
=== beuno is now known as beuno-lunch
vilajam: hi16:33
jamhi vila16:34
vilajam: aren't you PP this week ?16:34
jamI'd have to look at the page16:34
jamlooks like it16:35
=== jam changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: jam | Release Manager: vila | 2.3b2 is officially released, test it! | work on bzr: http://webapps.ubuntu.com/employment/canonical_BSE/
vilajam: did you get lp accept your emails again ?16:36
jamyeah, finally16:36
jamvila: question for you16:52
jam"bzr config" doesn't seem to pay attention to "policy:appendpath" is that intentional?16:52
jamvila: http://paste.ubuntu.com/525769/16:52
vilajam: hmm, that's a good question...16:54
jamAnd I think you already know about the bug w/ "bzr config push" not showing anything but "bzr config location" showing all *_location16:54
jamhttp://paste.ubuntu.com/525771/16:55
vilaI can find arguments both ways16:55
jamI thought I saw a bug from spiv about that one16:55
vilapush != *push* ?16:55
jamvila: but location != "*location"16:55
jamor IMO shouldn't be16:55
jamif you aren't going to make it a general match, it shouldn't be a substring match at all16:56
jamit is currently a 'tail' match which is a bit odd16:56
vilathat's a weird fnmatch side-effect anyway16:56
vilahmm, or may be it's a search/match bug16:57
jamvila: so you are using "search" which means find it as a substring, but fnmatch is turning it into a "foo$" style search16:58
jamif you want *path* != path, then you should use "matching_re.match()" and not "search"16:59
jam(and probably manually add $ at the end, because otherwise path == path*, while right now path == *path which IMO is much worse than either of the other options)16:59
jammgz: any chance you could update the review on https://code.edge.launchpad.net/~doxxx/bzr/mergetools/+merge/3866317:06
jamI now poolie is on vacation this week17:06
jamknow17:06
jammgz: also, what's up with the testtools 0.9.5 stuff? do you know vila?17:15
jamdo we have 0.9.5 on pqm yet?17:15
vilawe still don't have it AFAIK :-/17:15
mgzjam: he's covered most of the things I raised... except the non-ascii problem, which he's struggling to test because that's all screwed... which is blocked on pqm updating testtools :)17:16
vilabut 0.9.7 is out too I think17:16
jamvila: yeah, I just checked your rt, and it looks blocked on having a .deb file, and that is blocked on backporting to hardy17:16
jamwhich we can't upgrade because we want to support py2.417:17
jamwhich I personally want to keep until RHEL6 is out17:17
jamat which point, everyone has at least an upgrade story, so I don't care anymore17:17
jamthough keeping 2.0/1/2 py2.4 compatible would be nice17:17
jammgz: I thought *successful* tests with non-ascii work, just when they fail they spew garbage at you17:18
mgzgenerally, but that makes developing a decent test hard.17:18
jammgz: https://code.edge.launchpad.net/~gz/bzr/escape_selftest_console_output_633216/+merge/3489017:18
jamthat's also blocked on the 0.9.5 stuff?17:19
mgzis that rt thing just a process failure? can install testtools the normal way for 2.4 no problem17:19
jam(note that *I* only have 0.9.3)17:19
mgztry running the test that branch adds then.17:19
jammgz: sys admins don't like to install anything without apt17:19
jamsince it makes system management quickly get out of hand17:20
jamat least, AIUI, we could ask a l-o-s-a t o be sure17:20
mgzokay, so it's blocked on lifeless? can't we have some less busy person handle that?17:20
jammgz: well, jml is also involved in testtools17:21
mgzit's not hard (he says, largely in ignorance) to debianise a python package17:21
jamI'm not sure if they realize it is blocked17:21
jmlmgz: I'm working on it in my copious spare time17:21
jammgz: also, you commented on https://code.edge.launchpad.net/~ryorke/bzr/140563-optparse-barfs-on-unicode/+merge/3922217:21
mgzjml is hardly idle either.17:21
jamany chance for a follow up, he seems to have added more work17:21
vilajml: ha ! finally ! :-P17:22
mgzah, I wish lp would tell you when that happens, can forget to check back otherwise.17:22
jmlactually, I'm not working on it. sorry.17:22
jammgz: it is meant to happen via switching WIP => Needs Review17:22
jmlwhat I'm working on is daily builds of testtools17:22
maxb<jam> vila: yeah, I just checked your rt, and it looks blocked on having a .deb file, and that is blocked on backporting to hardy17:22
maxbWhat's wrong with the one in the ~bzr PPA?17:22
jammaxb: just saw that on the rt as well17:23
mgzokay, rorryy's change looks good now. I'll follow up on both those reviews... and try and get some of my own bits progressing too.17:23
jamlooks like the discussion got side-tracked and nobody realized we had a possible solution already17:23
jammgz: overall, don't fret too much. You've been doing great with reviews. I'm only poking here because I would have to start the review from scratch17:23
jamso if you know what's up, it is a bit smoother17:24
vilajam: I'm about to EOD, but thanks for the feedback about config, could you turn your pastebins into a bug so I don't forget ?17:24
mgzGordan's branch will want another thorough review, but perhaps poolie will continue on it when he gets back17:25
vilajam: and do you know where poolie is ?17:25
jamvila: poolie is on vacation in Disney World this week17:25
vilaoh, ok, I missed that17:26
jamI don't remember an email17:26
jambut he certainly told me in person last week17:26
vilaok17:26
jamvila: bug #670251 is already my basic bug17:28
ubot5Launchpad bug 670251 in Bazaar "'bzr config pqm' does not find "pqm_email" setting (affected: 1, heat: 6)" [High,Confirmed] https://launchpad.net/bugs/67025117:28
=== zyga is now known as zyga-nc10
mgzthere was a very similar bug with qbzr on that17:28
mgzthe fix was adding '*' to the input string.17:28
mgzfnmatch.translate behaviour changed at some point.17:29
vilajam: meh... I didn't see this one...wth ?17:29
jammgz: well you could obviously always add "foo*" :)17:29
mgzwoho! my lazr.restfulclient mp just got approved.17:30
vilaI'll blame my perl background here, such bugs are... unexpected :)17:31
vilaouch, bunch of bug mails ignored for... unknown reason :-/17:32
mgzbug 57533817:34
ubot5Launchpad bug 575338 in QBzr "qlog search not working correctly. (affected: 1, heat: 19)" [Critical,Fix released] https://launchpad.net/bugs/57533817:34
mgzhm, not exactly the same, but the same approach for the fix would work.17:35
jamvila: bug #671050 is the one about "policy:appendpath" not working correctly17:35
ubot5Launchpad bug 671050 in Bazaar ""bzr config" ignores policy:appendpath (affected: 1, heat: 6)" [High,Confirmed] https://launchpad.net/bugs/67105017:35
=== beuno-lunch is now known as beuno
vilakthk17:36
jamvila: go be with your family now. :)17:37
vilaalmost there :)17:40
vilajust one last selftest run ;)17:41
vilato fix a bug that will allow me to fix a bug that will allow me resume working on conflict resolution ;)17:41
TresEquisanybody here up to speed on the setuptools bzr plugin?19:20
roryymgz: hrm.  sorry about the spacing etc.  i moan enough about it in C code at others19:26
mgzno worries roryy :)19:28
mgzalso, PEP 257 talks about always using triple quoted docstrings19:28
mgzjust to take the trivia even further.19:29
roryyi think i've at least read pep 8, even if it was a while back.  never heard of 25719:30
mgzwhen I'm reduced to formatting nitpicks, you must be on the right track.19:30
roryycool.  thanks for the review.  bed-time for me!19:32
mgznight!19:32
cody-somervilleHow can you make a pack file smaller?19:38
james_wdelete half the file?19:40
james_w(not guaranteed to keep all of your data)19:42
mgz`bzr pack` redoes the repo (and will happen periodically anyway), but if you've committed giant binary files in the past you may be reduced to rewriting history to get sane pack sizes19:44
peitschiemornin all :)21:35
spivvila: I don't think 'bzr config' should use fnmatch.  jam's right, I did file a bug two days ago.22:54
=== r0bby is now known as robbyoconnor
=== ddaa1 is now known as ddaa
doughuloo23:28
dougi want to claw back the last commit, add some more changes to it, and then commit the whole bundle...23:28
dougthere an easy trick for that?23:28
fullermduncommit?23:28
dougthat simple, huh23:28
fullermdAs long as nobody else has had a chance to get a hold of that revision, yah.23:29
dougcoolio23:29
dougi was worried because of the message it gives23:29
doug"The above revision(s) will be removed"23:29
fullermduncommit backs you up to the state right before you ran 'commit', so you'll wind up with a bunch of pending changes.23:29
dougas long as that just means repo changes, i'm happy.23:29
fullermdWell, that's what it does   :)23:29
doughm, now it says i can restore the old tip by running the given pull command23:30
dougthat just reverts the uncommit?23:30
fullermdFrom 30k feet, yah.23:31
dougright23:31
dougfullermd++23:33
dougthanks23:33
peitschiedid you just get incremented fullermd?!23:36
fullermdGreat, now I have to go punch a new hole in my belt...23:38

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