/srv/irclogs.ubuntu.com/2010/03/16/#bzr.txt

stewartlifeless, is there any way to trace what bzr is reading from remote? basically i want to strace the stuff read from bzr+ssh00:08
lifeless-Dtransport00:08
thumperlifeless: does bzr handle utf-16 files?00:08
lifelessif you are lucky :)00:08
lifelessthere is also log+lp:...00:08
lifelessand trace+ I think - see bzrlib.transport/*00:08
lifelessthumper: in what way00:08
stewartlifeless, trying to trace what sync-pipeline is doing.00:08
thumperlifeless: in storing them, diffing, normal stuff00:09
thumperlifeless: so you can diff two utf-16 files00:09
thumperat least that is what I think they were asking00:09
lifelessuhm00:10
lifelessbroadly yes, but we can do better than we do00:10
lifelessthey may, at the moment, be detected as binary files some of the time.00:10
lifelessour storage treats binaries and texts the same way, so no change to efficiency there00:11
thumperhmm..00:11
thumperlifeless: I'm writing up the result of my talk00:11
lifelesshowever if they detect as binary, diff will just say 'binary changed'00:11
thumperlifeless: on the whole it went well00:11
thumperyeah, that is binary check is a big hammer00:11
thumperutf-16 files have a specific header block don't they?00:12
lifelessthe BOM00:12
lifelesssometimes00:12
thumperoh?00:12
thumpernot all the time?00:12
lifelessright00:12
thumperBOM?00:12
lifelessutf16 is an encoding00:12
lifelessBOM (the byte order mark) is something you can put in any utf* document to let content sniffers figure the encoding out00:13
lifelessyou can have a BOM on utf800:13
thumperkk00:13
lifelesshttp://en.wikipedia.org/wiki/Byte_order_mark00:14
lifelesslol00:16
mathrickit's almost always a bad idea though00:16
lifeless'The only solution is to hunt down the affected PHP file(s) and manually remove the BOM characters with another editor.'00:16
lifelessI want to edit it and add 'or fix php'00:16
lifelessmathrick: oh, I know.00:16
mathricklifeless: seriously, it's Win32 being idiotic here00:16
lifelessmathrick: I know00:16
mathrickBOM for UTF-8 is a dumb, dumb, dumb idea00:16
lifelessthe order is guaranteed in the encoding, its not needed. *I know*.00:17
stewartlifeless, didn't do anything. trying every other -D option on the help page.00:17
lifelessstewart: add trace+ to the start of your url00:18
lifelessactually not00:19
lifelessadd log+00:19
stewartlifeless, could bzr+ssh be having some sort of caching launchpad side?00:20
lifelessno00:20
stewartlifeless, where does the log go? or do i also need -D ?00:20
lifeless~/.bzr.log00:20
stewartit seems much slower at least...00:23
stewarti wonder if there's cache hiding or something.... eep.00:24
stewartwhat. the. fsck...00:28
stewartlifeless, it seems to be working now that i've specified log+ on the command line.00:28
stewartabentley, ^00:29
thumperigc: screenshots/windows/menu-Start.png seems to be missing on http://doc.bazaar.canonical.com/explorer/en/visual-tour-windows.html00:48
igcthanks thumper: I'll take a look00:49
thumperigc: I also sent an email about the talk to the internal list00:53
igcthumper: so the file was called menu-start.png accidentally. Fix committed now. Should refresh on the website soon.00:57
thumperigc: cool00:57
* igc lunch01:28
stewartlifeless, abentley: after that magic (run with log+ and then it works better), then having to fix up branch.conf on an *old* pipe... things seem to be working again.01:38
lifelessstewart: no idea why log+ would influence it01:53
lifelessstewart: its a passthrough decorator01:53
stewartlifeless, *weird*01:53
GungaDinis it possible to turn a checkout into a branch?02:38
fullermdYes, you can use 'reconfigure' for that.02:40
parthmhello, i am looking at bzr-grep bug #539258. any unicode experts here?02:54
ubottuLaunchpad bug 539258 in bzr-grep "UnicodeDecodeError while grepping emacs repo" [High,Confirmed] https://launchpad.net/bugs/53925802:54
parthmthe fix i had in mind was to simply "line = line.decode('utf-8', 'ignore')" before printing.02:55
parthmis that reasonable?02:55
thumperis there a bzrlib module for dealing with paths and filenames?02:58
thumperlike a special os.path thing?02:58
thumperlike getting the basename of a full path02:58
thumperand such02:59
thumperparthm: we do something similar in launchpad, let me look02:59
james_wthumper: there's osutils02:59
james_wand urlutils IIRC02:59
thumperparthm:         try:03:01
thumper            diff = preview_diff.text.decode('utf-8')03:01
thumper        except UnicodeDecodeError:03:01
thumper            diff = preview_diff.text.decode('windows-1252', 'replace')03:01
thumperthat seems to catch most issues03:01
thumperjames_w: thansk03:01
thumperjames_w: in bzrlib?03:01
james_wIIRC03:01
james_wyeah03:02
parthmthump: thanks. so windows-1252 is used by windows?03:02
james_wthumper: bzrlib.urlutils.basename seems like it might be what you want03:02
thumperjames_w: yeah, just looking at the pydoctor docs03:02
thumperjames_w: thanks03:02
thumperparthm: yes, it is one of the standard windows encodings03:03
thumperparthm: it is similar to the extended latin-103:03
thumperparthm: but with a few differences03:03
james_wthumper: do you know if there is a request in the works to get more hardware for vcs-imports?03:04
parthmthumper: thanks. that seems to be working fine. what does 'replace' do as compared to 'ignore'. the help(x.decode) isn't very clear.03:05
thumperparthm: I don't remember03:05
thumpersorry03:06
parthmthumper: no problem. thanks for your help :-)03:06
parthmgot it. 'ignore' lets the bad chars be, 'replace' replaces them with '?'03:10
thumperparthm: handy to remember03:11
lifelessjames_w: its early for you, isn't it ?03:16
james_wlifeless: late, I'm out of timezone once more03:18
lifelessah03:18
lifelesswell when you're in $worktime, can you please mail me the stuff remaining for the watch-ppa bzr-builder branch to land03:19
lifelesswe're moving to UEC and I really need to be able to just install a package at this point, so I'll do whatever you want03:19
Pengstr.decode('replace') replaces them with the Unicode "I dunno WTF that was" character. unicode.encode('replace') replaces characters that the encoding doesn't support with '?' (or perhaps something else if that isn't supported?).03:22
parthmPeng: yes. i am seeing the unicodes little white on black '?' as I am using str.decode :-)03:24
PengU+FFFD, to be specific,.03:25
james_wI've just done annotate to get the revno of a change that I am interested in03:40
james_whow do I get the log of all the revisions that were done between that branch diverging from LH ancestry and being merged back in there?03:41
james_wthe change I am actually interested in was done on that branch, but not in the indicated revision03:41
lifelessdo a log -r --show-ids to get the rh parent03:41
lifelessuhm, and we don't have a good pithy-graph-operator, sorry.03:42
lifelessbzr viz :03:42
james_whow do I find that revision in bzr viz?03:42
* james_w does it the silly brute force way03:46
lifeless /revid03:47
lifelesstime for some wotw03:56
fullermdFurrfu, SF is still on 1.10.05:25
lifeless,ee[05:29
lifelesssorry05:29
lifelessmeep05:29
fullermdHm.  Or maybe not.  The shell service actually has 2.0.3.  The site still claims 1.10 though.05:30
lifelessperhaps a 'min version'05:31
fullermd'd be nice if they at least said explicitly somewhere.  Then I'd know if I should bother trying to convert and upload a 2a branch of a project I don't have time to work on anyway...05:33
GungaDinshouldn't commit push the history to the original repository I checked out?05:34
fullermdCommit puts a new revision on the branch you're working on.  So it depends on what branch you're working on.05:36
GungaDinit's a checkout.05:36
fullermdIf you ran a command like "bzr branch some/where here", your branch is 'here'.  If you ran something like 'bzr checkout some/where here', your branch is 'some/where'05:36
GungaDinI have a checkout of a branch in linux05:37
GungaDinand a checkout of the linux  checkout on windows05:37
GungaDinI commited on windows and can't see the new commit on linux05:37
fullermdMaking a checkout of a checkout is unlikely to work well.05:37
fullermdRegardless, check 'bzr info' to be sure you actually have what you think you have.05:38
GungaDinyeah, like I described05:39
GungaDinI committed on the checkout of a checkout05:39
GungaDinand can't see it on linux05:39
fullermdI have dark suspicions that checkouts of checkouts invoke nasal demons.05:40
GungaDinso what should I do? try to push to the original branch?05:40
fullermdBut still, I suspect at least that first hop may work right.  How are you expecting to see it?05:40
GungaDinin bzr log05:41
fullermdWell, I can make all sorts of strange, bizarre, and unhygenic things happen with some local fiddling with co's of co's.05:46
fullermdBut after a commit at the tail of the chain, the next step up has the rev, at least until I 'update' it.05:46
fullermdSomewhat annoyingly, all local links properly prohibit commiting in a co of a co, but across a network protocol it doesn't.05:48
vilahi all !07:25
PengGood morning!07:26
jelmer_moin vila07:34
=== jelmer_ is now known as jelmer
* vila waves@jelmer (my god, already up ? Not at home ? :-P)07:34
jelmervila: Yeah, I'm in London :-)07:35
vilajelmer: hehe, I spent the week-end there, that was nice :)07:35
thumperwhy is workingtree.commit undocumented?07:56
thumpernot helpful07:56
* thumper reads the source07:59
tasslehoffWe use svn, and need to pull down an external git repo for our project. I don't think svn allows me to have a git repo as an external. Is this something bazaar can help me with?08:11
lifelessthumper: its MutableTree.commit08:13
lifelessthumper: and the guts are in bzrlib.commit08:13
thumperlifeless: that isn't documented either08:13
thumperlifeless: the source told me enough08:13
lifelessthumper: the older the code is the less well documented. commit was _very_early08:13
thumperlifeless: heh08:13
* igc dinner08:34
=== gerard_1 is now known as gerard_
lifelessthumper: hows the hacking10:03
=== jelmer_ is now known as jelmer
persiaGood day.  I'm curious how well/badly bzr branches would deal with being hosted in ubuntu one.11:13
persiaI heard somewhere that bzr tracks inodes, which might break because of how ubuntuone copies files.11:13
lifelessbzr has an inode concept of its own11:15
lifelessit doesn't track fs inodes11:15
lifelesshowever, given ubuntu one doesn't act like a posix file system, theres every chance of weird shit happening.11:16
persiaAh, so if one just randomly copies a bzr branch, it ought still work?11:16
lifelessI wouldn't do it.11:16
lifelessoh yes11:16
persiaOK.  Why wouldn't you do it?  rye tells me svn works fine.11:16
lifelessby doesn't act like a posix file system, I mean that unordered changes made on machine A are applied to machine B11:16
lifelessan svn *repository* or an svn *checkout* - totally different things.11:17
lifelessa bzr lightweight checkout (which is approx a svn checkout) would work fine, and only be buggered if you ran 'status' on two different machines, for instance.11:18
lifelesspersia: the problem is that if bzr writes to a file - any file; u1 tries to replicate that.11:18
persiaSeems it was just a checkout.11:18
lifelesspersia: but bzr is treating the fs as a place to do locking, and store a database.11:18
lifelesswould you put postgresql in u1?11:19
persiaThat might be my next question :)11:19
persiaSo it's a locking semantics thing?11:19
lifelessthats part of it11:19
lifelessthe basic problem is that u1 writes to bzr's storage area.11:19
lifelessonly bzr or your 'I am restoring now' should ever do that.11:20
lifelesseverything else flows from this11:20
persiaIs this a structural issue or an implementation issue?11:20
lifelessstructural11:20
lifelessapplies to putting any DB or structured data in something like U111:20
lifelesspostgresql11:20
lifelesssqlite11:21
lifelessbzr11:21
lifelessgit11:21
lifelesssvn (repo)11:21
lifelesshg11:21
lifelessthey [probably] won't be a problem as long as you only ever have one machine signed into u1 at a time.11:21
lifelessas soon as you have two, and have both active: *boom*11:21
persiaRight, which breaks the use case.11:22
lifelessunless both the software in question is designed for cluster fs's, and u1 were to expose a cluster fs API11:22
lifelessneither of which is the case for any of those AFAIK11:22
lifelessI've seen one user lose a bzr repo to u1 so far11:22
persiaThat's a cogent explanation, and an excellent data point.11:23
persiaThanks a lot.11:23
lifelessIt would be nice if it worked better, but I don't think it can without a lot of effort, and I don't think it reflects *at all* on U1's quality.11:23
lifelessdatabases syncing isn't their use case (note that they sync couchdb *totally differently*)11:24
lifelessgnight11:25
persiagnight.11:25
sttng359hello12:05
sttng359I'm looking for a way to replicate the behavior of svn:externals in bazaar.12:06
sttng359or some method of easily pulling in changes for a large number of Bazaar projects at once.12:07
dvheumensttng359, I think there's a plugin called bzr-externals, I'm not familiar with the project though.12:39
sttng359I found that project, but I also keep running into references of nested branches, but can't find much documentation on it.12:52
sttng359If I do a branch into a subdirectory of another branch, does it automatically create a nested branch?12:53
sttng359The main goal I am trying to achieve is nothing more than allowing users to easily update all checkouts up to date.13:02
beunosttng359, no, unfortunetely bzr doesn't support nested trees at the moment13:04
=== mrevell is now known as mrevell-lunch
sttng359was that a feature that was never completed or removed?13:07
parthmhello. i am trying to optimize revision searching in bzr-grep. it seems "text = tree.get_file_text(..)" is taking most of the time.13:10
parthmsetting that to "text = random_block_of_text" makes the time go from 33s to 8s.13:10
beunosttng359, never completed13:10
parthmis there a faster alternative to get_file_text?13:10
vilasttng359: did you look at bzr-externals ?13:19
sttng359vila: yes, I now have that installed and am testing it.13:23
sttng359seems like it will satisfy my needs.13:23
sttng359On a separate note, if I branch from a checkout made using bzr-svn, can I safely repoint the branch to the original subversion repository?13:25
sttng359in other words, do branches retain all the meta-data used by the original checkout bzr-svn does?13:26
kfogelIt kind of worries me that if you go to http://bazaar.canonical.com/en/ and do a search (upper right hand corner search box) for the terms "bzr" and "ssh" together, you get no results.13:31
vilakfogel: file a bug please, I get no results for 'bzr' alone either :-/13:39
kfogelvila: whoa13:39
vilathat's so big the bug ought to be obvious...13:39
kfogelvila: yup13:39
kfogelvila: btw, do you have any experience setting up bzr+ssh:// access where users have only restricted logins on the server machine?  If you do, and can spare 5 min right now, I'd be grateful.13:40
dvheumenI think it's a different problem: it seems that the search on the top-right expects a wiki pagename13:40
kfogelvila: I've been running into some problems setting that up.13:40
kfogeldvheumen: either way, it's a bug13:41
dvheumentrue13:41
kfogeldvheumen: whether it's the intended behavior or not :-)13:41
dvheumenwell, it's certainly not expected behavior :P13:41
vilakfogel: I've done it once, let me dig how13:41
vilakfogel: right, I've done it in .ssh/authorized_keys by prefixing lines with: command="/bin/false",permitopen="localhost:nnnn"  to allow tunneling13:42
kfogelvila: in authorized_keys?13:43
kfogelvila: oh13:43
vilakfogel: yup13:43
kfogelvila: yes, you said that :-)13:43
kfogelsorry13:43
vilanp13:44
kfogelvila: interesting -- this is somewhat different from the advice lifeless gave, but I think he was speaking off the top of his head.13:44
kfogelvila:  the behavior I'm seeing is that if I create a user 'kffsshtest', and give him /bin/false for shell in /etc/passwd, then when ~kfftest/.ssh/authorized_keys contains this:13:44
kfogelcommand="/bin/sh -c 'echo fish'" ssh-rsa [...]13:45
kfogelit will not echo the string fish when I ssh in.13:45
kfogelBut if I change shell to /bin/sh in /etc/passwd, it does echo fish.13:45
vilahmm, too many possible explanations here :-/13:46
kfogelWhich strikes me as bizarre -- you'd think it would work to specify an exact command in authorized_keys13:46
kfogelvila: yeah13:46
kfogelvila: but I'm thinking: who cares if /etc/passwd lists /bin/sh for people's shells, if the only way they can get in is via ssh, and ssh runs a command?13:46
kfogelcommand="/usr/bin/bzr serve --inet --allow-writes"13:46
kfogel...will be the actual command, of course13:46
kfogelplus maybe a --directory option13:47
kfogelvila: but anyway, that recipe seems different from what you've done, so I'd be curious to see what you've done.13:47
vilakfogel: it wasn't for bzr use13:47
kfogelvila: ah13:48
vilakfogel: where I need bzr I already have shell access but I need to set bzr_remote_ssh in locations.conf13:48
vila.. for ... various reasons (mostly not using the ystem-wide installed bzr)13:49
kfogelvila: ok.  This is for a situation where the bazaar committers should *not* have true login access on the server, just bzr access.13:49
vilathen command="/usr/bin/bzr --inet..." sounds fine13:49
vilakfogel: and you set up as many users as committers right ? (i.e. not a single shared one)13:51
kfogelvila: that's the idea13:51
vilathen if the server is configured to refuse authentication by password you should be fine, the only way will be by the key and I don't remember an ssh option to work around that13:52
kfogelvila: so I just filed bug 539587 about the search breakage.  It was a horrific experience -- total Launchpad fail :-(.13:55
ubottuLaunchpad bug 539587 in bzr "search broken on bazaar.canonical.com web site" [Undecided,New] https://launchpad.net/bugs/53958713:55
kfogelvila: I went to launchpad.net/bazaar, thinking that was the product name.13:55
kfogelIt somehow decided I meant the Uninstaller for the Bazaar Macintosh Bundle project.13:55
kfogelBy the time I noticed I'd already filed the bug.13:55
kfogelSo I added a new bugtask for project 'bzr' (whose display name is "Bazaar"), and tried to delete the other task.13:56
kfogelBut nooooo, turns out what I was supposed to do was just *change* the task on the old one.  But when I try to do that, entering 'bzr' for the new task fails, and so does 'bazaar': "Too many matches; please try to narrow your search."13:57
kfogelaaaaargh13:57
vilabazaar is bzr + supporting tool, that was fine13:57
kfogelvila: well, it's totally unrelated to the mac uninstaller13:57
vilayeah, that one is more puzzling :)13:58
kfogelvila: and that there's no way to delete a wrong task, or at least make it disappear (when "invalid", it is still listed on the bug by default)... sigh.13:58
kfogelvila: anyway, bug filed.  I hope someone can fix it.13:59
vilaigc will certainly have a look at it13:59
=== mrevell-lunch is now known as mrevell
Takcan I not propose a junk branch for merging?14:41
Tak(on launchpad)14:41
james_wyou cannot14:42
* Tak grumble, repush14:42
vilaTak: lp use stacked branches, pushing in the right project should be *far* faster (and less bandwidth intensive) than pushing to a +junk branch14:45
Takyeah, I didn't have a project set up for this one14:48
PengFWIW, LP used to allow changing a branch's project through the website, and it may still allow it through the API.15:20
=== beuno is now known as beuno-lunch
=== salgado_ is now known as salgado
=== salgado is now known as salgado-lunch
kfogelvila: when I 'bzr push' up to my remote test project, I get this warning on the client side:16:21
kfogelThis transport does not update the working tree of: bzr+ssh://kffsshtest@sp.red-bean.com/projects/deepproj/. See 'bzr help working-trees' for more information.16:21
kfogelvila: I did 'bzr help working-trees', but it wasn't clear from that whether I'm supposed to use remove-tree locally (???) to suppress the warning, or use --no-trees on the server side.16:21
kfogelvila: i.e, use --no-tree when I had created the server-side shared repos16:22
vilakfogel: do you want yo update the remote working tree ... use --no-trees is what you want I think16:22
kfogelvila: no, no update of remote tree -- just want to not get the warning.16:22
kfogelvila: I think remove-tree on the remote side is what I want16:22
kfogeltesting now16:22
vilaI think so, I'm pretty sure you got the warning only if a remote working tree exists16:23
kfogelvila: yup, that was the answer16:24
kfogelvila: oddly, you'll get the warning even when the remote tree *doesn't* exist, but only if it theoretically could -- that is, the remote branches were not created with --no-trees, and 'bzr remove-tree' has not been run on them.16:25
kfogelpushing to those remote branches will not create a working tree, but you'll get the warning until you configure the remote side to stop thinking that it "ought" to have a working tree.16:25
vilakfogel: if you don't configure the remote side with --no-trees, then you *want* to be warned that your working trees are not updated16:26
kfogelvila: well, if you know bzr, sure :-).16:27
vilaeven more if you don't IMHO, even knowing it, I keep running into out-of-date working trees :)16:27
kfogelvila: however, experience teaches me that plenty of people create remote trees without that option, but this does not actually mean they "want" working trees on the remote side.  It merely means they didn't know they needed to tell Bazaar that they didn't want that.16:27
vilakfogel: I'm pretty sure that a bzr push outside a repo creates just a branch with no working tree16:28
vilaif you have created a shared repo, that's another matter though... may be the default should be --no-trees... but on the other hand, most of the time when you create a repo that's because you have many wts....16:29
bialixheya vila, kfogel16:29
vilabialix: hey16:30
kfogelbialix: hey16:32
=== deryck is now known as deryck[lunch]
=== salgado-lunch is now known as salgado
=== deryck[lunch] is now known as deryck
=== salgado_ is now known as salgado
=== radoe_ is now known as radoe
=== beuno-lunch is now known as beuno
=== andreas__ is now known as ahasenack
=== salgado is now known as salgado-afk
NfNitLoopHrmm.21:07
NfNitLoopBest-practice question with SVN:21:08
NfNitLoopI tend to develop like this.   1) Create local branch.  2) Do work on local branch.  3) Merge from upstream as needed.21:08
NfNitLoopwhen I'm ready to commit I merge back onto the latest upstream and push it back to SVN.21:08
NfNitLoopwhich is cool from my perspective, but my commit message doesn't include any of the details of my inner commits.21:09
NfNitLoopUnless I manually copy & paste them all.21:09
NfNitLoopwhich is a pain.21:09
NfNitLoop(I mean:  It doesn't include any of those details for SVN users.   I can see the merges in my logs, of course.)21:10
NfNitLoopany better way to do that?21:10
NfNitLoopRebasing doesn't really work well, since having merged from SVN seems to break rebase.21:10
lifelessyou can use dpush21:15
lifelessotoh I would say you should just write a clear summary commit on the merge21:15
=== _mathrick is now known as mathrick
NfNitLoopOh, I like push.  IMO keeping as much metadata is good.21:17
vilalifeless: can't commitfromnews be tweaked for that ? (Or is it newsfromcommit ?)21:17
NfNitLoopI just want to put more of it into the comment that SVN users can read.21:17
NfNitLoopas much metadata as possible*21:17
lifelessvila: its commitfromnews; I'd start by writing a new 'commitfrommerge' plugin or so21:18
spivGood morning23:03
pooliehi all23:13
spivpoolie: good morning23:16
dvheumenhey poolie23:20
pooliehi dan23:20
pooliei just saw your mail23:20
dvheumenpoolie, okay. I hadn't expected you online so soon :P23:21
GungaDinHow can I remerge a directory from a branch I someone skipped in a previous merge?23:31
PengGungaDin: bzr merge -r 123..124 some_branch23:32
GungaDinand how can I find out where it was left out exactly? during which revision?23:32
Peng'bzr log directory/' on the original branch, perhaps?23:33
* Peng /away (maybe)23:33
GungaDincan I specify the directory I need to merge in so only the changes in it will be merged in?23:34
dvheumenpoolie, thanks for the info. I'll wait a few days so the FAQ + Contributor Agreement can be updated23:36
=== Adys is now known as Disconnected
=== Disconnected is now known as Adys
lifelessGungaDin: yes23:41
GungaDinhow?23:41
lifelessbzr merge -r x..y branch/directory23:42
GungaDinwhat if I need the whole directory as it looks in the latest revision (not just the latest change to that directory)?23:48
GungaDinx = 1 y = last revision?23:48
lifelessx would be 0 then, I guess23:49
dvheumenpoolie, changed my mind, agreement is sent, since you've already updated me on the details.23:51
pooliethanks23:51
pooliei'm sorry it's so slow23:51
pooliei don't understand why23:51
dvheumenpoolie, no problem. It's just that ... like I said ... it's lawyer stuff ... sigh23:52
dvheumenbut I understand why it's necessary :)23:53
lifelesspoolie: you have mail; would like to chat by voice today about it23:53
poolieoh, you're going to recommend a bulk-delete?23:54
poolieor some mail in particular :)23:54
lifelesspoolie: GNU meetup talk items23:54
poolieok23:55
pooliei think that's a good list of things23:59

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