/srv/irclogs.ubuntu.com/2008/04/15/#bzr.txt

pooliejam, igc, spiv: call now00:02
jampoolie: waiting for you to show up :)00:02
lifelessjam: also - #ubuntu-wow00:16
lifelesspoolie: ^00:16
pooliethanks00:21
poolielifeless, igc: reading the thread now, this might take more than 15 mins00:21
lifeless-> food then00:22
igcpoolie,lifeless: let's aim for 10 then00:22
pooliek00:27
lifelessabentley: ping; are you interested in me making MPVersionedFile meet the VersionedFile (reduced) api ?00:50
lifelessabentley: also can I request a review from you for my loom push fix.00:58
ChrisPitzerHello.  I've used bzr in linux before, but now I'm trying to get it working in windows through putty.  I can run bzr in a terminal, or I can run putty and log on to my server (where I'd like to build a repository) with putty... but I'm not sure how to run bzr in putty...  I think I'm missing something.01:01
lifelesspoolie: igc: its 1001:01
igcpoolie,lifeless: normal number?01:02
lifelessigc: as far as I knew, yes.01:02
pooliewe could use skype if that's easier?01:02
lifelesselevator music @ home sucks01:02
igccalling in now on normal number01:03
dagreenhey, can someone help a noob with an admin question?01:06
dagreenI'd like to setup an server for a central repository01:06
dagreenthe docs tell me to use sftp to upload a branch01:06
dagreenbut I want to make it publicly accessible01:07
dagreenhow would I do this with sftp?01:07
bob2you can make it read-only accessible via http, and have users write via sftp01:07
dagreenso, setup an apache server?01:08
bob2well, whatever htpd you like.  you could setup an anonymous sftp account if you prefer.01:09
bob2gnu used to do that for cvs over ssh, iirc01:09
dagreenOK.  so, I tried searching for some good docs on settings up sftp, but came up short01:09
dagreencan someone point me to a good guide?01:10
dagreenI can setup sftp so users can access their own home dir, but not to a shared dir01:10
dagreenor even how to allow anonymous access for that matter?01:10
pooliethis is hard enough even if i can hear you :)01:12
pooliedagreen: on unix or windows01:12
dagreenfedora01:12
=== mw is now known as mw|out
ChrisPitzerHow do i uze bzr in putty?01:13
dagreenunix01:13
bob2ChrisPitzer: what preciesly are you trying to do?  use bzr+ssh:// urls?01:13
pooliedagreen: so basically you should put them in a unix group01:13
poolieand create a directory writeable by that group to hold the repositories01:14
poolieif you're trying to host an open source project you can alternatively use launchpad.net01:14
dagreennot open source, internal company use01:14
dagreenso, if they were to checkout a project by typing bzr branch sftp://my-server/myproject01:15
dagreendo I have to put a link to that directory from all their home directories or something?01:16
bob2no01:16
ChrisPitzerbob2: I'm trying to use putty to ssh onto a server and set up / work with bzr repositories.01:16
bob2users connected via sftp have the same access rights as they would if they logged in via ssh01:17
bob2so it can go anywhere they could normally reach it (e.g. /srv/bzr/)01:17
bob2ChrisPitzer: as in ssh in via putty, and run bzr from the command line on the remote machine?01:17
ChrisPitzeri tried that - bzr isn't installed on the remote machine.01:18
bob2there's your problem then ;)01:18
ChrisPitzerhaha.01:18
ChrisPitzeri know01:18
bob2you can access it remotely with sftp:// urls, have you tried that?01:19
ChrisPitzeri have bzr installed on *this* machine though... can't I use this bzr instance to create remote repositories...?01:19
ChrisPitzerjust from the command line - no putty...?01:19
bob2"bzr init-repo sftp://blah/blah"01:19
ChrisPitzerhu... I'll give it a shot - brb01:19
bob2I think you need paramiko installed for that01:20
ChrisPitzer(i still think very "windows" some times)01:20
dagreenpoolie:  after I shared directory and give the appropriate permissions to the group, how do I make it so that directory is the root when they sftp??01:21
=== lamont` is now known as lamont
bob2don't think regular openssh has sftp chrooting01:23
dagreenk, so the only way to make urls look like root is through http then, right01:23
dagreen?01:24
pooliedagreen: just use sftp://host//home/group/repo01:36
dagreenk.  that should work for me.   didn''t know there was a /home/group01:37
dagreenthx01:37
ChrisPitzerso... check my crummy syntax here...01:39
ChrisPitzer bzr init sftp://username:password@sub.domain.com/src01:40
ChrisPitzerbecause, that results in a bunch of happy text with a last line of "bzr: ERROR: No such file: '/src':"01:40
bob2try //src01:43
ChrisPitzersame sad ending.  "no such file: '//src' "01:45
bob2is there a /src on sub.domain.com?01:45
ChrisPitzerhehe... yes.01:45
ChrisPitzerwhere is // ? root?01:46
ChrisPitzerooooh... bingo01:46
ChrisPitzerthat's it.  I need to specify full path on the server, not relative.01:46
fullermdWith sftp you can specify relative with a ~.  sftp://user@dom.ain/~/src01:51
ChrisPitzerthanks!01:55
awmcclainHey all. So, am I right in figuring out that bzr-email ONLY works from the client-side?02:28
spivThat's right.02:28
igclifeless: was it just me that dropped out?02:29
awmcclainThat is frustrating.02:29
igcpoolie:^02:29
lifelessigc: yes, credit ran out02:29
radixawmcclain:  https://bugs.edge.launchpad.net/bzr/+bug/21196702:36
ubotuLaunchpad bug 211967 in bzr "bzr smart server should support hooks" [Medium,Confirmed]02:36
igclifeless: dropped out - I think we're done though, yes?02:38
igcpoolie:^02:38
igclifeless: if not, you can call me on my home line now02:39
lifelesspoolie: the knit fetch hotfix has landed in trunk02:40
spivawmcclain: we're working on fixing that.  I just updated the bug radix linked to with some details.02:41
radixwoot02:41
awmcclainyay!02:41
awmcclainOk. Not a problem.02:41
radixoh, so it might already be possible?02:42
radixgreat02:42
spivradix: yeah02:42
spivradix: "might" being the important word, I don't think it's actually been tested yet.  In theory it should be fine...02:42
lifelessspiv: bzr-email needs to be altered02:42
spivlifeless: right.  I didn't mean to give the impression that bzr-email specifically would Just Work, yet.02:43
spivJust that it should now be possible to write something that uses the new hook, and have that get triggered on the server.02:43
lifelessthumper: your patch is merged02:49
thumperyay02:50
thumperta02:50
abentleylifeless: Updating the MPVersionedFile API is fine with me.  I guess reducing the number of APIs is a win, but it doesn't seem like a big win to me.03:12
lifelessabentley: i just noted in passing was all03:13
abentleyOh, I thought you were offering to change it.03:13
lifelessabentley: yes, if you thought it was a good thing03:14
lifelessbut I also don't have a strong drive to do so03:14
abentleyThis loom push thing you want me to review is actually a patch to the loom plugin?03:16
lifelessyes03:20
lifelessthere are two folk writing loom code03:21
lifelessand I like peer review03:21
lifelessI've taken a short cut in fixing push; I'm hoping you'll assess whether the short cut is ok, or say 'its better to leave it broken for a bit and get a more tasteful fix'03:22
abentleybb:approve I think it's a worthwhile improvement.  I suspect the wrong hook will fire, but I guess that's tolerable for now.03:24
pygihey folks03:24
lifelessthank you03:24
abentleyre BB, I apologize for the downtime.  It messed up this morning, and I wasn't able to get it working again.03:25
lifelessouch03:25
abentleyIt's like everything I try to improve things makes it worse.03:25
lifelessis there any assistence you'd like ?03:28
abentleylifeless: I'd like to see if using pgsql clears up the locking issues.  Do you know a good way to convert the data?03:39
lifelessI'd probably export vis csv or similar03:39
abentleyReally.  Huh.03:40
lifeless*via*03:40
abentleyI did try just doing an SQL dump.03:40
abentleyBut it seems like pg doesn't recognize some of SQLite's escaping.03:40
lifelessalternatively you could do a select & insert within python03:41
lifelessI'm sure there are good toolchains to do this, I've never needed to though03:41
=== bigdo2 is now known as bigdog
lifelessgot to love the weather04:00
RAOFlifeless: It's probably different where you are than here.  Nice and sunny? :)04:03
poolfool_It's dark in Denver Colorado .. but it was a nice day.04:05
poolfool_To the BZR team, thank you for a great tool.04:05
lifelessRAOF: loud rain04:08
lifelesspoolfool_: thanks!04:08
poolfool_lifeless: have you thought about doing a pod cast? FLOSS with leo leport(sp) had somone from the GIT team on in January.04:10
lifelessthat could be interesting04:10
bob2no swearing.04:11
poolfool_http://twit.tv/FLOSS04:11
poolfool_bob2: searing?04:12
poolfool_s/searing/swearing/04:12
* spiv -> lunch05:16
igcbbiab - picking kids up from school today05:49
lifelesshttp://www.justdave.net/dave/2008/04/06/bugzillamozillaorg-now-in-version-control/05:54
lifeless^ cute05:54
=== bigdo1 is now known as bigdog
lifelesspoolie: ping06:48
pooliepong, the witch is dead,...06:49
fullermdPhew.  That'll save me the alimony...06:50
lifelessfullermd: better than 'the bitch is wed'07:10
fullermd"Fornication?  But that was in another country.  And besides, the wench is dead."07:10
joerg_Hi. Does anybody know what to do if I get the error message "bzrlib.errors.TokenMismatch: The lock token [...] does not match lock token (remote tokens)" while committing?  (bzr 1.3)07:44
lifelessjelmer: you had someone break the lock on you07:46
lifelessmeh07:46
lifelessjoerg_: ^07:46
joerg_any idea lifeless?07:47
lifelesstry again07:47
lifelessit may be out of date07:47
lifelessor if its bound it may need to be pushed at this point07:47
joerg_I'm not sure what "bound" means. Do you suppose to try bzr update and then bzr commit again?07:49
lifelessyes07:52
joerg_docu says: "If you have a local branch and wish to make it a checkout, use the bind command like this: bzr bind sftp://centralhost/srv/bzr/X-repo/X-trunk"07:53
joerg_That is not the case. Its a checkout from a branch laying on the server repo07:53
lifelessk07:56
lifelessjust do update and commit I think07:56
joerg_ok I try it. Thank you!07:56
pooliespiv: steve says you were going to speak to jam about the problem of " attempt to add line-delta in non-delta knit"08:04
pooliedo you know what's up with that?08:04
spivpoolie: No, I don't know what's up with that.08:07
spivpoolie: jam thought it might be related to the critical fix we did for 1.3.1rc108:07
lifelessbye for the day08:08
spivpoolie: which sounds plausible but not hugely likely to me. I don't know anything more about it.08:08
spiv(if anything, I'd expect the fix we did to try insert fulltexts unexpectedly, rather than line-deltas)08:09
pooliebye lifeless08:11
poolieit does seem to be in a similar area08:11
pooliei asked andreas to open a bug about it08:12
fullermdIs the ghost issue considered serious enough to be a 1.4 blocker?08:12
spivYeah.  I suspect it's related somehow, maybe the same root cause that caused the 1.3 regression?08:12
spivI don't think I've seen a traceback for it yet though, so it's hard to speculate.08:13
igcnight all08:54
pooliegood night10:20
awilkinsIf you have an SSH key in launchpad you should be able to use bzr_shh to download anything from an LP bzr repo, no?10:55
awilkinsOr is it sftp?10:56
james_wboth should work10:56
awilkinsI'm having trouble, is there a particular form for the username?10:57
james_wwhatever your lp username is10:57
james_wwhat's your lp homepage URL?10:57
awilkinshttps://launchpad.net/~adrian-wilkins10:57
james_wand which branch are you trying to fetch?10:58
awilkinsI've tried my email address (with @ escaped and not escaped), adrian-wilkins, all sorts10:58
spivawilkins: you should be able to use URLs like "bzr+ssh://adrian-wilkins@bazaar.launchpad.net/..."10:59
awilkinsHmmph, it works with paramiko but not plink11:00
spivAh, I don't know much about the magic to make plink work.11:00
* spiv -> food11:00
ubotuNew bug: #217650 in bzr "Use of authentication.conf causes update to fail" [Undecided,New] https://launchpad.net/bugs/21765011:00
awilkinsThat's a regression, it should work with either11:00
awilkinsIt used to work with plink AFAIK11:01
awilkinsInstalling paramiko on Win32 is a PITA compared to plink as well.11:01
awilkinsThat horizon feature would be nice around now :-)11:53
awilkinsWhat's the practice for submitting merges ; do you submit them all to bzr.dev, or do you submit them to the branch you are making them from?11:54
ubotuNew bug: #217666 in bzr "exceptions.MemoryError when getting http://arch.sv.gnu.org/archives/emacs/bzr/emacs.app" [Undecided,New] https://launchpad.net/bugs/21766611:55
james_wawilkins: bzr.dev, unless you are making a change to something not yet merged, or fixing something on a release branch11:56
awilkinsjames_w: It's jsut a little patch to a couple of the hidden commands to make them more consistent with bzr unknowns11:57
james_wbzr.dev sounds right then.11:58
awilkinsIs there a mail I can bzr send to? Or do I put up a bug with a merge bundle in it?11:58
awilkins(PQM is a bit much right now)11:58
james_wbzr send --mail-to bazaar@lists.canonical.com11:59
awilkinsGroovy.11:59
=== mrevell is now known as mrevell-lunch
ubotuNew bug: #217701 in bzr "attempt to add line-delta in non-delta knit" [Undecided,New] https://launchpad.net/bugs/21770113:25
=== mw|out is now known as mw
ubotuNew bug: #217737 in bzr "bzr merge gives error over Revision {('',)} not present in "<bzrlib.knit.KnitGraphIndex object at 0x01697050>"" [Undecided,New] https://launchpad.net/bugs/21773714:55
=== Pilky_ is now known as Pilky
=== kiko__ is now known as kiko
dwtMorning17:40
dwtI'm trying to use bzr with svn and have problems pushing to svn17:40
dwtit fails with error "('Mindestens eine Eigenschafts"anderung ist fehlgeschlagen; Projektarchiv nicht ge"andert', 175008)" wich roughly translates to "at least one property couldn't be changed"17:41
dwtWell, I'm quite puzzled what it means by that and am currently trying to convince it to give me a propper english response so I can search for it.17:44
andrea-bsdwt: type `LANG=en_US.UTF-8` in a shell and try to push17:46
dwtthanks andrea-bs - I'm trying it right now17:47
=== kiko is now known as kiko-fud
BrongerHow can I force a synchronisation between an SVN repo and a local Bazaar branch?  Bazaar claims that both a diverged (which is technically correct), however, de-facto both branches contain exactly the same files.  I could merge, but then I get tons of conflicts.17:50
dwtWell, now it's much more talkative. I actually get a traceback and tells me that 5 should file a bug.17:52
dwtwell....17:52
dwtThe error is: SubversionException: ('At least one property change failed; repository is unchanged', 175008)17:52
dwtI'm gonna google for that17:52
dwtbut if anybody of you can give me a hint how to debug this further, I'd love to hear it. :)17:52
andrea-bsdwt: this sounds like a bug, could you please past the entire traceback on <http://paste.ubuntu.com>?17:53
dwtsure17:54
dwthttp://paste.ubuntu.com/7133/17:54
dwtIt could be a bit more verbose about what property exactly it couldn't change....17:57
andrea-bsdwt: it seems a repo problem rather than a bzr problem17:57
dwtok.....17:58
dwtI'l test that with svn17:58
dwtand see what I get17:58
andrea-bsI have to go now, bye!18:01
dwtthansk anyway andrea-bs18:02
dwtWell, subversion works perfectly18:02
dwtand I can also pull changes I got from subversion18:02
dwtand merge them and everything18:02
dwtthough no push18:03
newz2000jam: can you remind me how your push and update plugin works again?18:15
newz2000never mind, I realized it runs automatically18:16
newz2000:-)18:16
jamnewz2000: if you have it installed (the newest version) when you do 'bzr push' it should check if it is an ssh connection, and then run 'ssh host; bzr update' fo ryou18:16
jamfor you18:16
jamnewz2000: right, an earlier version required you to run 'bzr push-and-update' instead of 'bzr push'18:16
jamthe newest version just installs a post-push hook to do it automatically18:17
newz2000nice plugin. Just what I need. :-)18:17
Stavroscan someone help me use bzr-svn? i can't figure it out :/19:19
Stavrosi do bzr branch svn://whatever and i get bzr: ERROR: Permission denied: ".": Can't get password19:19
jelmerStavros: hi19:21
jelmerStavros: See the FAQ19:21
Stavrosi did, hmm19:23
Stavrosit needed an svn info, svn up didn't cache the password19:23
Stavrosbut now it fails with permission denied19:23
Stavros:/19:24
jelmerdid you run "svn info" on the root url of the repository?19:24
jelmerWhat OS are you on?19:24
Stavroswindows19:24
Stavrosi didn't, sec :/19:24
Stavrosapparently i don't have permission to do that19:24
jelmerStavros: Ah, it's broken on Windows atm unless you have Subversion 1.5 I think19:24
Stavrosi installed the patched binding19:25
Stavross19:25
Stavrosi can't stand svn, it bogs down my entire system to do a simple diff19:25
Stavrosbah, i guess i'll have to live with it...19:25
jelmerStavros: the patched bindings don't contain the required fix for this19:25
Stavrosis it safe to push with bzr-svn?19:25
Stavrosah19:25
jelmeryes19:25
Stavrosi ah, good19:25
Stavrosi don't want to much the repo up if it works eventually19:26
abadger1999Hey, how would I get the reverse of "bzr diff"?19:47
datoabadger1999: between two revisions?19:48
abadger1999ie: the diff of working tree -> latest commit.19:48
datoah19:48
abadger1999I released a package out of a modified working tree instead of a fresh checkout.19:48
datopersonally I'd do19:49
datob commit -m foo19:49
datob diff -r -1..-219:49
datob uncommit19:49
andrea-bsabadger1999: try with "bzr merge file.diff"19:49
abadger1999dato: Thanks!  That'll work for me.19:49
abadger1999andrea-bs: k.  I'll try that first19:49
andrea-bsabadger1999: it works with patches generated by "bzr send" and I'm not sure if this will work also with diff output19:51
abadger1999andrea-bs: bzr merge just tells me "Nothing to do."19:51
andrea-bsabadger1999: patch originalfile patchfile19:53
foomhey, so, is a "bzr obliterate" feature on the plan anywhere? I just had to remove some data from svn that was committed a year ago. It wasn't trivial, but it was possible, without screwing up every developer's checkout everywhere. It seems like with all the fancy DVCSes, that's simply impossible. (which is a problem)19:54
Noia>.>21:06
Noiawhats the difference between bzr and svn21:06
Noialol21:06
asabilNoia: to keep it short: bzr is better :p21:11
lifelesshi jam21:53
jamlifeless: hi21:53
jamlifeless: have you done anything with instrumenting packs?21:53
jamI've been thinking about doing a little bit of hit/miss stuff21:53
jamand then my ISP decided it required authenticated sends, and I had to spend way too much time getting Postfix to properly talk to them.21:54
lifelessjam: exim4 ftw :P21:55
jamwell, my server is currently a really old FC4 install21:55
lifelessjam: no, as I said in my mail I don't have the time to do anything about it right now21:56
lifelessbut I wanted to share the underpinnings that seemed to be missing when folk were trying to analyse it. lsprof is good, but it can't tell right from wrong.21:56
jam(the problem was that FC4 versus Breezy, and Breezy didn't recognize my SATA hard-drive card automatically)21:56
jamlifeless: well you could pretty easily, if you broke up the cache hit into a separate function21:57
jamI've certainly done stuff like create an inner function for loops so I can see how much time is spent in each21:57
jamdef run_loop_x():21:57
jam  for foo in bar:21:57
jam  pass21:57
jamrun_loop_x()21:57
lifelessjam: that doesn't tell right from wrong21:58
jamlifeless: that is to profile the time spent in that loop (as an example)21:58
lifelessyes, but I never said lsprof can't do that21:58
jamYou could try something similar for cases where there is a hit versus a miss21:58
jamcall a different func21:58
jambut I'm not sure where the time is actually spent21:59
jamanyway, I understand your point21:59
jamit is still hard to *time* a miss versus a hit21:59
jamcounting isn't hard21:59
lifelessits also hard to decide if the amount of time per unit is as expected, or the number of units is as expected22:00
lifelessthat requires a model for the operation22:00
lifelesse.g. for working tree operations we all share the model of '1 stat per file, and 1 read per file if needed'22:01
jamlifeless: by the way, I think our pack => knit fetcher causes weird problems with revision_id references22:01
jamspecifically, I think I see it generating revisions out of order22:01
jam(newest first, rather than topologically sorted)22:01
jamI can say that my knit repository (which I push to from packs) has all sorts of crazy stuff going on22:01
jamstill technically "correct" but just improperly orderd22:01
lifelessinteresting22:02
jamThe problem is that I'm generally seeing all of this as artifacts in revisions.kndx, without actually reproducing it22:02
jamlifeless:  can I have you take a peek at a line of code22:08
jamSpecifically line 662 of bzrlib/index.py22:08
jamIt seems to be mixing indices22:08
jam            index = self._parsed_byte_index(location)22:08
jam            # if the key is below the start of the range, its below22:08
jam            if key < self._parsed_key_map[index][0]:22:08
jamlifeless: if I'm actually reading a bug, then it would indicate we are not properly "bisecting"22:09
jamor does _parsed_key_map[index] always match up to _parsed_byte_index22:10
lifelessin the __init__22:11
lifeless        # a sorted list of slice-addresses for the parsed bytes of the file.22:12
lifeless        # e.g. (0,1) would mean that byte 0 is parsed.22:12
lifeless        self._parsed_byte_map = []22:12
lifeless        # a sorted list of keys matching each slice address for parsed bytes22:12
lifeless        # e.g. (None, 'foo@bar') would mean that the first byte contained no22:12
lifeless        # key, and the end byte of the slice is the of the data for 'foo@bar'22:12
lifeless        self._parsed_key_map = []22:12
lifeless(they use the same values to lookup22:12
lifelessits not a single map to a tuple because of bisect needs22:12
lifelessoh, where is my cleanup of this code22:12
lifelessI have a branch that introduces an abstraction here22:13
lifelesspushing it now22:13
ubotuNew bug: #217917 in bzr ""bzr commit" MemoryError crash" [Undecided,New] https://launchpad.net/bugs/21791722:15
lifelessjam: whats an operation thats still problematic ?22:24
goozbachQuick question: I couldn't find an answer in the bzr user guide.22:50
goozbachI want a "pushed" branch to always have the current contents22:51
goozbacheg, I run bzr push from my laptop, and want the pushed location (a web accessable directory on a server) to automatically update22:52
jamlifeless: well 'bzr status' after a pending merge, but that is bad for other reasons :)22:52
mwhudsongoozbach: the push-and-update plugin can do that22:52
goozbachis this possible without creating a hook22:52
jama simple 'bzr log' on a very long history is bad22:52
* goozbach googles22:52
goozbachmwhudson: thanks22:53
jamlifeless: 'time bzr log --short -r -10..-1 bzr.dev' is quite a bit longer than it should be22:53
jamgoozbach: cd ~/.bazaar/plugins;  bzr branch lp:bzr-push-and-update push_and_update22:53
jam(possibly with a mkdir -p ~/.bazaar/plugins first)22:53
goozbachjam: just got it22:54
goozbachthanks though22:54
jamgoozbach: it will update if it detects that the remote location has a working tree, and you are connecting over sftp or bzr+ssh22:54
jamit won't do it if you are using ftp etc22:54
goozbachyay!22:54
lifelessjam: 2.5 seconds for me22:54
goozbachhooray for not re-inventing the wheel22:55
goozbachthanks guys22:55
jamlifeless: yeah, but it used to be <1s22:55
lifelessk22:55
goozbachI knew I wasn't the only one who wanted that to happen22:55
jamgoozbach: it does require that you have bzr installed on the remote machine, and have regular 'ssh' access22:55
jamin case that matters22:55
jam(it basically just calls 'ssh host bzr update' for you)22:56
jamlifeless: 'bzr log --long -r -10..-1' would also be even worse, I just never use it22:56
jam--long is going to do a whole revision-graph search because of dotted revnos22:57
goozbachjam: it's working.22:57
goozbachI was mostly wondering if someone else had done the legwork22:57
goozbachyay!22:58
jamgoozbach: yep, I'm glad it works for you, feel free to post bugs, etc.22:59
jamit is pretty simple, though, so I don't expect you would have problems.22:59
jamI suppose I should now trap into the 'branch_changed_revision' hook in 1.4, so that it will also work if you have a checkout of the public location, rather than only on push23:00
spivGood morning.23:50
jammorning spiv23:54
igcmorning23:55
igcmorning jam, spiv23:55

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