/srv/irclogs.ubuntu.com/2008/07/20/#bzr.txt

dvheumenHi, just a quick question, is there and if so what is the difference between having a branch and doing a commit and having a checkout and doing a local commit?00:35
cody-somervilleIf you do a checkout and do a local commit, it doesn't push to the server.00:37
dvheumentrue, but if you branch from a server and do a commit then it also doesn't push to the server00:38
dvheumenso that behavior doesn't seem so different (except from the default action)00:38
cody-somervilledvheumen, yup.00:39
dvheumenso the choice depends mostly on what you would like to do most of the time? If you'd like to work mostly centralized (for example at the office) then you'd do a checkout and when you're on the plane temporarily commit locally. And if you would like to work decentralized you'd branch and commit (locally) and only push once the piece is done00:41
cody-somervilleyup00:44
cody-somervilleThere is a guide on the wiki for more info.00:44
dvheumenYeah I know, the problem is that the small differences between a branch, a checkout and a repository aren't that clearly described00:45
dvheumenow wait... on the wiki you say... I'm actually talking about the documentation on the website00:45
dvheumenthe reference guide and such00:46
dvheumenah, the website is a wiki, so now we're talking about the same thing again :P00:47
dvheumenanyways, thanks again, that was all I needed to know :P00:49
Mecha25anybody know why my bazaar.launchpad.net page has gotten my committed revisions and my code.launchpad.net page hasn't?  it's been over an hour since I pushed it01:31
Mecha25hello?01:34
Mecha25113 people everywhere and not a voice is heard01:37
Mecha25anybody out there?01:44
Odd_Blokeubottu: weekend01:49
ubottuIt's a weekend.  Often on weekends, the paid developers, and a lot of the community, may not be around to answer your question.  Please be patient, wait longer than you normally would, or try again during the working week.01:49
Odd_BlokeMecha25: ^01:49
Mecha25hey, finally somebody01:49
Mecha25cool01:49
Odd_BlokeMecha25: I don't know, #launchpad is a better bet.01:49
Mecha25thanks01:49
jelmerkiorky, pong03:35
jelmerhmm04:03
=== sdboyer is now known as sdboyer|coding
kiorkyjelmer: yep08:18
* Yurim nods.08:35
kiorkywith shared repository, do  the branches isinde the repo have .bzr directories?10:09
kiorkyI have understood the contrary with http://bazaar-vcs.org/SharedRepositoryTutorial10:09
lifelessKeltia: they have .bzr directories, but the .bzr for each branch only has 'branch' not 'branch and repository'10:11
kiorkyok10:11
kiorkylifeless: do you know the status of nested trees support10:12
kiorkyi didnt find much doc on it10:12
kiorkyit seems to be implemented since .15rc110:12
lifelessI believe it is beta quality in larsiq's branch10:12
lifelesscore capabilities are done in the code base but not the UI10:12
kiorkynot in bzr.dev or one of the 1.6 beta's ?10:12
lifelessno changes have been made to nesting uspport recently :(10:13
lifelessI must go - breakfast awaits10:13
kiorkyhave fun :)10:13
=== thumper_laptop is now known as thumper
scippiohello12:44
scippioI have a problem with bazaar via webdav12:45
scippiobzr: ERROR: Unsupported protocol for url "http+webdav://scippio:pass@repo.example.com/bbb"12:45
scippio:-/12:46
Odd_Blokescippio: Are you trying to use the webdav plugin?12:55
pygiisn't webdav plugin a bit broken atm?12:55
scippioOdd_Bloke: yes .. i have this plugin12:55
Odd_Blokepygi: vila's fixed it up recently.12:56
pygiwhile I have no idea who that is, good news12:56
Odd_Blokescippio: What version of bzr are you using?12:56
scippioOdd_Bloke: 1.512:57
Odd_Blokescippio: Ah, the webdav plugin requires 1.6.12:57
Odd_BlokeThat said, the only reason for that is that vila hasn't tested it with 1.5 enough.12:58
scippioOdd_Bloke: hmm ... ok I  trying it... thanks12:58
Odd_Blokescippio: You could try just editing the requirements in the plugin and see if it'll work with 1.5.12:59
* Odd_Bloke --> breakfast13:02
scippioOdd_Bloke: hmm and where is the version in webdav plugin?13:08
scippioOdd_Bloke: hmm still unsupported protocol on 1.6b313:28
bob2bzr selftest bzrlib.plugins.webdav13:28
bob2maybe just 'bzr plugins' will show if it is installed or not13:29
scippiowebdav plugin is installed ok13:29
scippio[scippio@jerry bzr]$ bzr plugins13:30
scippiolaunchpad  Launchpad.net integration plugin for Bazaar.13:30
scippiowebdav  Implementation of WebDAV for http transports.13:30
scippiohmm ... webdav plugin is unusable :(    i must use ftp :/13:34
=== sdboyer|coding is now known as sdboyer
Odd_Blokescippio: Did you try running 'bzr selftest bzrlib.plugins.webdav'?14:18
scippioyes14:18
Odd_BlokeWhat was the outcome?14:18
scippio[scippio@jerry bzr]$ bzr selftest bzrlib.plugins.webdav14:18
scippiotesting: /usr/bin/bzr /usr/lib/python2.5/site-packages/bzrlib (1.6b3 python2.5.2)14:18
scippio----------------------------------------------------------------------14:18
scippioRan 0 tests in 0.001s14:18
scippioOK14:18
scippiotests passed14:19
Odd_BlokeOK, that suggests you don't have the plugin installed correctly, as I get 11 tests running.14:20
scippiohmm14:20
Odd_BlokeWait, when and from where did you get the webdav plugin?14:21
scippiofrom launchpad ..14:22
scippiobut maybe i install bad ....14:22
scippioits my first plugin ..14:22
Odd_BlokeOK, I get a different string in 'bzr plugins'.14:22
scippiofirst: bzr branch lp:bzr.webdav14:22
scippiosecond: i copy webdav.py to .bazaar/plugins/14:23
Odd_Blokescippio: Ah, no, you want the entire directory in ~/.bazaar/plugins/.14:23
Odd_BlokeSo 'bzr branch lp:bzr.webdav ~/.bazaar/plugins/webdav'.14:23
scippioi mean ~/.bazaar/plugins/14:23
scippio ~/.bazaar/plugins/webdav.py14:24
Odd_BlokeYeah, you want the entire directory which it branches in there.14:25
scippioi have it in14:25
Odd_BlokeOK, try running 'bzr selftest webdav'.14:26
scippio[scippio@jerry plugins]$ bzr selftest webdav14:26
scippiotesting: /usr/bin/bzr /usr/lib/python2.5/site-packages/bzrlib (1.6b3 python2.5.2)14:26
scippio----------------------------------------------------------------------14:26
scippioRan 0 tests in 0.001s14:26
scippioOK14:26
scippiotests passed14:26
scippio[scippio@jerry plugins]$ ls /home/scippio/.bazaar/plugins/14:26
scippiowebdav.py  webdav.pyc14:26
Odd_BlokeOK, remove both of those files.14:27
Odd_BlokeAnd run 'bzr branch lp:bzr.webdav ~/.bazaar/plugins/webdav'.14:27
scippio[scippio@jerry plugins]$ ls ~/.bazaar/plugins/webdav14:29
scippio__init__.py  NOTES  setup.py  tests  TODO  webdav.py14:29
Odd_BlokeOK, now try running 'bzr selftest webdav'.14:30
scippioyes14:30
scippio[scippio@jerry plugins]$ bzr selftest webdav14:30
scippiotesting: /usr/bin/bzr /usr/lib/python2.5/site-packages/bzrlib (1.6b3 python2.5.2)14:30
scippio----------------------------------------------------------------------14:30
scippioRan 11 tests in 0.074s14:30
scippioOK14:30
scippiotests passed14:30
Odd_BlokeOK, now try using it for whatever you were trying to use it for before.14:30
scippioexcellent!14:31
scippioOdd_Bloke: thank you!14:31
scippio:)14:32
Odd_Blokescippio: Glad I could help. :)14:32
kiorkyuhm, in bzr world, what's the tip or head equivalent to designate the most up to date revision ? last:1 , isnt it ?16:08
Odd_Blokekiorky: In what context?16:09
kiorkyOdd_Bloke: i want to get the head 'explicitly' from a bzr repo, so -r last:1 seems nice16:10
Odd_Blokekiorky: -r-1 also works.16:12
kiorkyok16:13
Peng_-N is exactly equivalent to last:N, right?16:22
luksyes16:22
=== Pieter|Brussel is now known as pieter
=== pieter is now known as Pieter
kiorkyjelmer: so finnaly, i got it working, nice work !18:09
kiorkyjelmer: i may submit you a patch for compilation stuff when you didnt install your things in standart locations18:10
kiorkyjelmer: i would be interrested to know more on the problems with server side subversion server < 1.5 and the properties that bzr sets up. I ve read somewhere that it can be problematic. Because on our production server, the svn is pretty old (1.3 i think, the one on debian stable)18:11
kiorkyjelmer: uhm 1.4, but with have some repo on a sarge server, so it's 1.1 :p18:12
j1mchi all - just a quick question.  will 'bzr uncommit -r 3686' revert the branch to version 3686, or will it revert 3686 revisions?  i would prefer the former.18:52
nevansupgrading to bzr 1.6beta3... what's the safest branch of bzr-svn to use?18:52
nevansj1mc,  bzr revert -r 3686 will do what you want, IIRC18:53
j1mcnevans: thanks18:53
nevansactually...18:53
nevansuncommit might also do it...18:53
Peng_uncommit doesn't revert the working tree.18:55
Peng_j1mc: Bazaar's -r arguments always do the same thing.18:55
nevansPeng, thanks... I knew there was an important distinction18:56
j1mcPeng_: what would i want to use then if i wanted to revert the working tree?18:57
Peng_j1mc: Um, what do you want to do? Remove revisions from your history or revert the working tree?18:57
radixj1mc: if you want to actually delete the history from the branch, then do "bzr uncommit -r X; bzr revert". If you just want to bring the working tree to the state that it was at a particular revision, use "bzr revert -r X".18:57
j1mcbasically, i pushed a small change up to LP, but had an error in it, and just want to revert the change up on LP to the prior revision.18:57
radixj1mc: the difference is whether you want to delete it from history, or add a new revision which brings it back to the old state.18:58
j1mcdelete it from the history18:58
radixthen use uncommit18:58
j1mcthanks18:58
Peng_j1mc: You should just fix it and make a new commit.18:59
techIIi want to use bzr with a huge svn repository, but i don't want to wait for the history to download, any suggestions?20:05
Peng_Time machine?20:06
Peng_BTW, be careful. Unless you're using a dev version of bzr-svn and/or svn 1.5, it'll probably leak massive amounts of RAM.20:07
uwstechII: checkout perhaps?20:31
uwstechII: or wait ;)  (my webkit conversion took ~2 days)20:31
techIIok, i need something between a lightweight and regular checkout/branch, that only has a partial history of a project, but can be branched from without going over the network20:42
uwstechII: Yeah, I would like that as well20:47
uwstechII: e.g. lightweigh checkout that caches all history ever requested from te master branch20:47
Peng_That'll be a large portion of the history...20:48
uwsPeng_: Well, just the diffs you requested, and subsequent updates after the initial branching20:49
lifelessuws: have you tried the new rebase ?21:00
uwslifeless: I tried your branch from the bug report but it requires bzr > 1.521:00
Odd_BloketechII: Stacked branches are on their way, which allow you to only download the history you need.21:03
Odd_BloketechII: I'm not sure of their exact status though.21:03
Peng_"Merged into bzr.dev"?21:05
Peng_They require the development1 format though.21:05
Odd_BlokeMost of it is, but I don't know if everything is there.21:05
Peng_Main thing, policies, docs. That's definitely most of it, but I don't know if it's all either.21:06
Odd_BloketechII: Basically, that use case should be fully supported in 1.7 (I think).21:06
uwsbtw, is bzr's on disk format roughly the same size as git's on disk format?21:07
uws(with rich root pack)21:07
Peng_uws: No.21:07
Peng_There's currently work on making indexes much smaller, and I'm sure there will be other stuff next.21:07
Peng_Repo size benchmarks are complicated. Git, hg and bzr are all good enough, IMO.21:08
lifelessuws: yes it does21:14
lifelessuws: by default bzr is smaller than git, but common wisdom amongst git users is to run a 'repack' with large window and depth, and that makes it smaller than bzr21:15
lifelessuws: like Peng_ says though, we have a better compressor on the way21:15
uwslifeless: does it have impact on read performance?21:15
lifelessthe new compressor? untuned its about the same21:16
uwslifeless: no, the repacking and window size21:16
lifelessits complex :) - depends on the operation etc.21:17
uwsdiff and log lookups are the most common methinks21:17
lifelesshowever, git is gast either way (speed is not a problem of git) (well, except http pulls perhaps but that doesn't affect most users)21:17
Peng_lifeless: What do you think of xdelta?21:18
lifelessuws: could you try rebase with 1.6b3 ? I'd like to know that I've fixed the bug and I don't have enough info to be completely sure...21:19
lifelessPeng_: good, I may end up using it for groupcompress, if I can. But I suspect i can't21:19
Peng_Why can't you?21:19
lifelessfor performance I need to preserve compressor state as additional documents are added21:20
lifelessits a streaming compressor like e.g. gzip21:20
lifelessxdelta is a binary compressor - 2 in, one out21:21
uwslifeless: will do, but not now. will have to wait for a bunch of commits on webkit.trunk first21:21
lifelessuws: no worries21:21
lifelessuws: let me know if its not snappy and I'll look at it more. I'll need another callgrind naturally.21:22
Peng_lifeless: Oh.21:22
lifelessPeng_: so if xdelta's interface is suitable I will be able to essentially [ab]use it, but if its not I'd need a custom version21:23
uwslifeless: sure21:24
lifelessuws: thanks21:27
Peng_lifeless: Well, good luck. :)21:29
uwslifeless: are you the bzr marketeer these days? ;)21:30
lifelessuws: I think igc has a much better marketing feel than I :)21:30
lifelessuws: I'm happiest doing deep hacking or understanding user issues :)21:31
uwslifeless: your conversations sound like salesmen buzzword technobabble, in which everything is possible21:31
lifelessuws: LOL21:31
uwsbut in your case most things are actually real21:31
Jc2klifeless: i have a technical question :-)21:31
lifelessJc2k: shoot21:31
lifelessJc2k: also, are you still hung over ? :)21:31
uwslike "what does gnome need?"  [xyz]  "ok, will fix it"21:31
Jc2klifeless: there was no drinking for me, i came home after my talk21:32
Jc2k:(21:32
lifelessuws: well zeenix had some that were trickier - largely about the fact we use python AFAICT21:32
lifelessJc2k: shame; I would have bought you a beer or something :)21:32
Jc2klifeless: hehe21:32
Jc2khow much longer are you in the UK?21:32
Jc2kanyway, nzjrs (conduit dev) has been trying to get started with the playground21:33
Jc2khe has a branch in jstowers/conduit/devel21:33
lifelessJc2k: I fly out tomorrow21:33
lifelessok21:33
Jc2khe's trying to merge in http://johnstowers.co.nz/bzr/conduit-gio/21:33
Jc2khe encounters fail21:34
Jc2kabout things been missing21:34
lifelesspastebin ?21:34
Jc2kone sec while i recreate :p21:35
Jc2khttp://pastebin.com/d38d71f4d21:35
Jc2khe tried to create a bundle, but that seems to refer to a local branch so its useless to me21:36
lifelessah21:36
lifelessso two tings21:36
lifelessthe send ui seems to confuse people21:36
lifelessjam and I are discussing with abentley how to tackel that21:36
lifelessbasically you want to bundle against trunk always, then it refers to a branch people have in common21:36
Jc2ki suspected his bundle was just fail, aye21:37
Jc2kbut im not sure why the merge is fail21:37
lifelessthat looks like he is missing data?!21:38
lifelessbzr check <URL> going now21:38
lifelessdeifnitely21:40
lifelessrobertc@lifeless-64:/tmp$ bzr branch http://johnstowers.co.nz/bzr/conduit-gio/21:40
lifelessbzr: ERROR: Revision {john.stowers@gmail.com-20080607075424-nebves9oo6tiry7z} not present in "1252@1811c9d2-c306-0410-a128-ae57aa55c946:trunk:conduit%2Fmodules%2FGoogleModule%2Fgdata%2Fmedia".21:40
lifelessI'd like to know his bash history, did he rsync things around, that sort of thing21:40
lifelessbasically, its 'missing ref'21:41
Jc2khe's in NZ so when you are synced back to local time correctly you'll be better set to talk to him :)21:41
lifelessits 8:40am for him21:42
lifelessbut yes21:42
Jc2khe has no online presence right now :)21:42
Jc2kbut i'll tell him to get his butt in here with his bash history21:42
lifelessk21:43
Jc2ki know that he's encountered stuff like this before and his solution is to bundle and merge it into a fresh branch21:43
nekohayohey there, could someone try using http://ecchi.ca:8000/spec-merge/specto-ULTIMATEMERGE/ as a base, and bzr replay http://ecchi.ca:8000/spec-merge/specto-woutcR2/ from revision 2?21:50
nekohayoit does not seem to work on my end21:50
nekohayoeven though the contents are strictly equal21:50
=== edcrypt1 is now known as edcrypt
lifelessnekohayo: hi21:59
nekohayohoy lifeless21:59
lifelessnekohayo: what you say doesn't work, what do you mean?21:59
nekohayohmm lemme try21:59
nekohayolifeless: 16 conflicts encountered.22:00
nekohayobut I shouldn't have any conflicts, the contents are exactly equal, no?22:00
lifelesswell, replay applies patches22:02
lifelessso you can have conflicts yes22:02
lifelessbut I'm pulling it now22:02
nekohayolifeless: because the goal is simply to stitch the history of those two branches together22:05
lifelessnekohayo: es, I assumed so22:06
nekohayolifeless: oops, I think the specto-woutcR2 branch is the wrong one though22:06
lifelessnekohayo: they have no common history at all22:06
nekohayowait a sec22:07
lifelessheh, not even same repository type :)22:07
nekohayolifeless: http://ecchi.ca:8000/spec-merge/specto-woutc/ is the one, not specto-woutcR222:08
nekohayolifeless: so if I try to replay from -r2.. , I get 16 conflicts. If I try from -r3.. , I get 28 conflicts!22:12
lifelessnekohayo:  bzr merge ../specto-ULTIMATEMERGE/22:13
lifelessbzr: ERROR: Repository KnitRepository('file:///tmp/specto-woutc/.bzr/repository/') is not compatible with repository KnitPackRepository('file:///tmp/specto-ULTIMATEMERGE/.bzr/repository/')22:13
nekohayolifeless: are you using bzr 1.5?22:13
nekohayobut I'm not using "merge" here, but "replay"22:13
lifelessnekohayo: 1.6b3  :) Point is you have apparently disconnected branches22:14
lifelessnekohayo: one is from svn22:14
lifelessnekohayo: one is from a local import22:14
nekohayoyeah they are. that's why I'm trying to use replay?22:14
nekohayoyeah22:14
lifelessnekohayo: replay works on file ids - the inode abstraction22:14
nekohayobut the code is the same, darnit22:14
lifelessnekohayo: the conflicts you are getting is because bzr *thinks* the files are different files with conflicting file names22:15
nekohayoso what if I replay, bzr resolve, and then.. uh what would happen?22:15
nekohayoand should the replay be done starting at revision 2, or 3?22:15
lifelessif you replay, resolve, commit, replay the next one etc; when you are done you should be able to continue forward22:16
nekohayothe contents from "ultimatemerge" last revision === contents  from specto-woutc revision 222:16
lifelessthen you would start from 322:16
lifelessbut I have a suggestion for you22:16
nekohayo... I need to do that for ~80 revisions?!22:16
nekohayoo_o22:16
lifelessreplay it a bit more by hand :(22:16
lifelessbzr branch ULTIMEATEMERGE working22:16
lifelesscd working22:16
lifelessbzr diff ../specto-woutc -r 2..3 | bzr patch22:17
lifelessbzr commit22:17
lifeless(and copy log message)22:17
nekohayox_x22:17
lifelessits a bug that we don't have a good conflict resolver for file-path conflicts; it makes the particular pattern of use that you have made frustrating22:18
lifelessyou could try http://spacepants.org/src/bzrgraft/22:18
lifelessbut AIUI its not up to date with current bzr22:18
nekohayowell yeah, it kind of depresses me that bazaar is claimed to be smarter with merges or even stitching history22:18
nekohayowhen in the end it comes down to manually committing everything o_o22:19
lifelessnekohayo: why did you start a new branch ?22:19
nekohayoit wasn't me :(22:19
lifeless(as in from-scratch, rather than branching from svn in the first place ?)22:19
lifelessoh22:19
nekohayoaw shoot, it's a shame graft is unmaintained22:22
=== splodge2 is now known as splodge
kiorkyyo23:01
kiorkywhen doing bzr branch foo bar23:01
kiorkyi think i dont understand something23:01
kiorkywhen i do local changes/commits, then i want to push back my things23:01
kiorkywhy do i need to precise the "from location" again the first time and bzr do not remember it ?23:02
Odd_Blokekiorky: Because it's fairly rare that a user will want to push back to the location from which they branched.23:05
mwhudsonkiorky: it does, or at least should, remember23:05
lifelessgnight all23:05
bob2'night23:05
kiorkymwhudson: the first time, i need to precise agi the from location, after that it remembers23:05
bob2perhaps push should default to the parent if a push location isn't set23:05
kiorkybob2: 'xactl23:06
kiorkybob2: 'xactly23:06
kiorkythis behaviours seems natural for me23:06
Odd_BlokeAgain, often it's not what people intend to do.  If you've branched from a trunk which you can push to, you don't necessarily want to push to it when you forget that you haven't specified the correct location yet.23:09
Odd_BlokeFor example, I do "bzr branch pqm.dev foo", *HACK*, 'bzr push bzr+ssh://me@there.com/bzr/foo' so people can access my changes.  I wouldn't want my changes pushed to pqm.dev by accident, because that will affect other people (theoretically).23:11
kiorkyOdd_Bloke: thats the default on many dvcs :p, just an habit23:19
MatthewWilkesHey, is there a record for longest time spent trying to install bzr-svn?  Just wondering how much longer I have to take before I get my certificate23:22
Odd_BlokeMatthewWilkes: What problems are you having?23:33
thumperMatthewWilkes: :)23:33
MatthewWilkesOdd_Bloke: Using OSX, svn 1.4.5 managed with macports.  Trying to get to a version that bzr-svn supports is proving very difficult, I don't care enough about wanting to try bzr to replace my system python, subversion and py-svn, then patch setup tools as macports wants me to, so trying to muddle though doing part of it23:40
mwhudsonoh os x23:41
mwhudsoninstall ubuntu in parallels, use that23:41
mwhudson(only about half joking)23:41
MatthewWilkesmwhudson: I have ubuntu in a vm, and I could play there, but then that would be all I ever did with bzr23:42
mwhudsonMatthewWilkes: you could just do the bzr-svn requiring stuff in the vm23:43
Ng13923:43
kiorkyjelmer: why does svn+http://s cache my credentials but https:// does not ?23:43
Ngbah23:43
kiorkyjelmer: i mean the svn credentials23:43
mwhudsonif you push from the vm to your os x install, you can use that there without bzr-svn, then push back to the vm so you can push back to bzr-svn23:43
mwhudsonMatthewWilkes: not ideal, obviously23:43
mwhudsonare there svn 1.5 os x binaries yet?23:43
MatthewWilkesmwhudson: Everything would require it, I'm in a company infrastructure that only supports svn, and it will only ever support svn unless it becomes easy23:44
mwhudsonNg: hi :)23:44
VerterokMatthewWilkes: Hi, I'm using bzr-svn on OS X (10.4), tell me if I can give you a hand to get it working :)23:44
kiorkyMatthewWilkes:  show bundlebuggy to your workmates23:44
Ngmwhudson: hey :)23:44
MatthewWilkesVerterok: Thanks, how are you managing svn?23:45
VerterokMatthewWilkes: I'm using the DMG from collabnet, but I think the macports version should be fine23:46
MatthewWilkeskiorky: If the features were all that mattered, no problem, but if it doesn't work, it's useless23:47
Peng_You only have to convert everyone from svn once. Then it won't be an issue anymore! :D23:47
Peng_</useless>23:47
pygiMatthewWilkes, you mean unless hosting bzr branches becomes easy? :p23:48
VerterokMatthewWilkes: and bzr-svn trunk (0.4.11)23:49
MatthewWilkespygi: No, I mean working with all the other repositories people have to deal with ;)23:49
pygiMatthewWilkes, aha, ok, sorry :P23:49
* pygi just plugged himself in, so :)23:49
* MatthewWilkes knows of 1 bzr formatted repository that houses code relevant to his work23:49

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