/srv/irclogs.ubuntu.com/2009/07/06/#bzr.txt

mwhudsonjelmer: did i tell you before about bzr-svn tests segfaulting with python 2.4 ?00:07
jelmermwhudson: no00:16
jelmermwhudson: please file a bug with gdb backtrace if possible00:16
mwhudsonok00:17
mwhudsondoesn't happen with 2.500:17
mwhudsontrying on hardy w/ec2 now00:17
mwhudsonoh waht00:20
mwhudsonjelmer: any ideas? http://pastebin.ubuntu.com/210808/00:20
mwhudson(haven't dug at all, maybe i'm doing something dumb)00:20
pooliehello00:31
Peng_Hi00:31
jelmermwhudson: that one should be fixed now00:34
mwhudsonjelmer: in bzr-svn?00:34
mwhudson(i was testing the release-0.6.3 tag)00:34
Pilkypoolie: did you get my email about the bzr licence?00:44
pooliehi00:44
pooliei did get it on friday00:44
Pilkycool00:44
pooliei'll reply today00:44
Pilkythanks00:44
Pilkyjust wanted to make sure, been having a few problems sending emails recently00:44
Pilkyanyway time for bed for me, night00:45
spivHello.00:50
pooliehello spiv00:50
mwhudsonoh hm, does happen on hardy too01:14
mrooneylifeless: checking out grisbi, eh? saw your bug reports :)01:18
lifelessmrooney: yah01:19
lifelessmrooney: for 'easy to use' it seems harder than gnucash01:19
lifeless><01:19
pooliehello lifeless01:20
lifelesshi poolie01:20
poolieis it better in some other way?01:20
pooliei think i tried it...01:20
lifelesspoolie: I think it may have saner defaults, but in my limited experiment it wasn't really better/worse01:20
pooliegnucash doesn't seem to be changing very fast01:21
lifelessI was hoping for something like MS Money, which I used inthe late 90's, that was at least polished, for all its defects01:21
mrooneylifeless: I popped in to ask if you had a minute to evaluate the personal finance software I am working on, wxBanker, and let me know what you think coming from grisib/gnucash. I am currently working on a newer version for Karmic01:21
RAOFI've quite liked Homebank's interface, but I'm may well be looking for something a little bit different to you.01:21
pooliemrooney: what do you think is better than gnucash in wxbanker?01:22
lifelessmrooney: karmic package is the thing to try?01:22
mrooneythere are some screenshots at wiki.ubuntu.com/wxBanker I do believe :)01:22
mrooneynope bzr branch lp:wxbanker is the thing to try, it just needs python-wxgtk2.8 and python-numpy01:22
mrooneypoolie: gnucash is more featureful and advanced, I tried it and initially was overwhelmed and just wanted something simple to keep track of basic transactions in arbitrary accounts01:23
lifelessRAOF: could be; I need to manage (today) a mortgage, bills that are paid by proxy, income in multiple currencies (pay + investments), and an utterly useless export facility from my bank01:23
mrooneylifeless: oh no multiple currencies yet, although you can csv import01:24
poolieah01:24
poolieyay Vanguard :)01:24
RAOFHomebank manages the last criterion with reasonable applomb, and the rest are use-cases I've never tried.01:24
lifelessvanguard?01:24
pooliethe RMS of finance :)01:24
poolies/^/John Bogle is/01:24
lifeless$ apt-cache search vanguard01:25
lifeless$01:25
lifelesspoolie: did you play with https://edge.launchpad.net/bzr-guess/trunk ?01:25
pooliehttp://en.wikipedia.org/wiki/The_Vanguard_Group01:25
jelmermwhudson: yeah, in bzr-svn01:25
pooliefeatured in his screenshots01:25
jelmermwhudson: it can be worked around by installing python-apt01:25
jelmers/python-apt/python-tdb/01:25
poolielifeless: nup, i only saw the mail so far01:26
mwhudsonjelmer: oh01:26
mwhudsonjelmer: ok, have gdb on a python2.4 segfault01:26
mrooneyanyway I was just poking around looking for UI / intuitiveness opinions / reviews so I can improve it for karmic, let me know if you have any :)01:26
pooliemrooney: i might try it too01:26
pooliei use gnucash quite a lot01:26
mrooneyhmm, I suspect you will find it lacking but, let me know what is most lacking01:26
poolieand can see many ways in which it could be improved up01:26
poolieupon01:27
mwhudsonjelmer: this is the start of the traceback http://pastebin.ubuntu.com/210848/01:27
pooliecan it do the 'total for this financial period'? i use that a lot01:27
mrooneypoolie: my target audience is people overwhelmed by gnucash or people who want to start tracking finances, so people happy with gnucash will probably find features missing in wxbanker01:27
lifelessI can tell you what I find most frustrating about most of these tools01:27
lifelessand thats polish01:27
lifelessI mean, I can run a double entry system on cards if I want to01:28
lifelessSimple reports and data entry for that are *not a win*01:28
mrooneypoolie: hm, you can search by date regex, I could also add a start and end date control to the graph01:28
mrooneyI should just add a start and end option in the search, let me do that now :)01:30
pooliemrooney: to do my tax, i need to answer things like "how much did depreciation of the work-related fraction of my computer equipment cost between 1 jul 08 and 30 jun 09"01:31
mrooneyyeah, that isn't really possible to do in an automated way currently :)01:32
mrooneyit will be soon with recurring transactions, and then searching on those based on description / account01:32
mrooneybut these are already good things to write down :)01:33
poolieso, for me too, like lifeless01:37
pooliei am not at all overwhelmed by the double entry concept01:37
pooliei just wish there was more polish01:37
poolieoh maybe more speed wbn too01:37
poolieit takes about a minute to start01:38
poolieat this rate it would take years to01:38
poolieat this rate it would take weeks* to boot for Mark :)01:38
garyvdmI got a question about trees.01:41
pooliewould probably be rewarding to try MYOB or some windows program01:41
pooliehello gary01:41
garyvdmBackground: for qcommit, the user can select files to be added.01:41
garyvdmHi poolie01:41
garyvdmThis only happens when the ok is press, and is achived by running bzr add01:42
garyvdmWe also have a diff button which show a diff of all selected changes.01:43
garyvdmBut due to the design, it does not include the files that the user has selected to be added01:44
garyvdmIs there a way that I can temporally add files to the working tree without anything being written to disk?01:44
lifelessno01:45
lifelesstrees don't have a transactional model01:46
lifelessyou could use a preview tree01:46
garyvdmlifeless: Hi01:46
lifelessor you could just add the files, and unversion afterwards01:46
* garyvdm looks at preview trees01:46
lifelessmrooney: I want two key things: planning features: what-if on mortgage, debt management, investment management. And country specific glue - a chart of accounts that dumps everything into the right buckets for AU tax returns01:57
mrooneylifeless: interesting, I have some budgeting stuff planned so you can add your own lines to the graph, like saying, I want my savings account to grow by 7% plus 10K a year, and see that in comparison to the actual balance01:59
mrooneyso that could work to set debt paying guides as well. the tax stuff sounds more complicated :)02:01
pooliebudgets would be nice02:16
poolieyou could do a lot there02:16
poolielike if i've budgeted to spend say $x on ugg boots per year02:17
pooliewell, actually for a simpler example02:17
poolie$x on groceries02:17
poolieit could show if i'm running a bit high for this month02:17
pooliebut some things are very lumpy, if they're only paid for once per year02:18
poolieand it could help take that into account too02:18
pooliefor quoted investments i'd like to see the current value compared to what i spent on it02:18
pooliegnucash could do that, but doesn't02:18
poolieoh and then you could calculate the irr02:18
* SamB wishes the daily PPA builds would now have versions of form bzr 1.16.1+XXXX02:34
lifelessSamB: why not 1.17~02:37
SamBlifeless: well, right now it's 1.16+XXXX02:38
SamBwhereas the latest is "1.16.1"02:38
pooliei wonder what the trunk currently02:38
pooliesay02:38
pooliesays*02:38
pooliei noticed that the other day too02:38
SamBI mean, that's what aptitude thinks is the latest ;-)02:38
lifelesswhat is it about GUI help that they all a) want to run a browser and b) want to *not run my default browser*02:39
SamBlifeless: it's because you aren't using Windows, maybe ;-P02:40
SamBwhere they probably have a simple API to run the default browser02:41
mwhudsonjelmer: the subverpy tests pass for me, of course :)02:47
lifelesskfogel: please put backtraces in bug reports02:51
lifelessok deepish hacking mode on; SMS me if you want my attention02:54
lifelesspoolie: install bzr-guess, would like to see what you think03:09
kfogellifeless: I did (or so I thought...?)03:32
lifelessno, you linked to a pastebin site03:33
lifelesstotally useless for reviewing bugmail03:33
lifelesswhat I mean is, it adds a lot of latency to the task of figuring out what the bug is03:34
lifelessbecause I have to fire up a web page03:34
lifelessthis turns a 5-10 second operation into more like a minute03:35
lifelessunless its an lp web page03:35
lifelessin which case its a couple of minutes03:35
kfogellifeless: uh, did you see the attachment on the bug?03:36
kfogelthe one that my initial comment said I was attaching, and that I did attach? :-)03:36
lifelesskfogel: launchpad doesn't forward attachments03:37
kfogellifeless: I would happily paste a backtrace directly into the bug desc/comment form *if* that form would give me any clue about what its formatting rules are.03:37
lifelesskfogel: just paste them, it preserves CR03:37
kfogellifeless: CR only?03:38
lifelessif you paste it will work03:38
kfogellifeless: I will try to remember that, but shouldn't have to :-).03:38
lifelesskfogel: agreed03:39
lifelesslp should have attached the attachment to the bug mail03:39
lifelessbut what it does is send a separate mail out with the url03:39
lifelessits very frustrating03:39
kfogellifeless: also, not sure how, but your comment comes after a conversation between James and me in which we find out exactly what you said in your comment.03:40
kfogelIs that because of the "lp bugs don't implement mid-air collision" thing?03:40
lifelesskfogel: I do bugs via email03:41
lifelesskfogel: I was replying to your 4:06 comment "This could be related to bug #120930, though I tend to think not, as no"...03:41
ubottuLaunchpad bug 120930 in bzr "commit of files with unicode names fails in 0.17rc1" [Critical,Fix released] https://launchpad.net/bugs/12093003:41
kfogellifeless: While I appreciate the convenience of an email interface, I do think that makes you more likely to enter into a conversation without having heard what was most recently said.03:41
lifelesskfogel: be generous in what you accept :)03:42
lifelesskfogel: for all that you had both decided on bzr-search, I still needed to make the backtrace more visible for me, as i"ll need it when investigating the cause.03:42
lifelessI had seen all the discussion when I replied03:42
kfogellifeless: I think you know all the things I might say at this point in the conversation, so I won't say them :-).03:43
kfogelThank you for looking into it, anyway.03:44
lifelessI haven't yet, but I will03:44
lifelessoh03:44
lifelesswhat bzr-search revno do you have?03:44
lifelesskfogel: ^03:45
kfogellifeless: 7003:45
lifelessupdate03:46
kfogellifeless: I haven't fetched in a while03:46
kfogelshould I?03:46
kfogelok03:46
kfogellifeless: commit seems to work now03:47
kfogellifeless: closed bug as invalid, therefore03:48
lifelesskfogel: fixreleased actually03:49
lifelesskfogel: I've already done it03:49
kfogelheh!03:49
kfogelnow, even though I'm using the web interface, I did the same thing you did -- I didn't see a previous comment, and therefore had a non-reported mid-air collision.03:49
kfogellifeless: ^^03:49
lifelessone of the things that makes the email interface frustrating actually, is latency03:49
lifelesstheres no good technical reason that smtp events should be any higher latency than http, for in or out.03:50
lifelesskfogel: well, I closed it by email03:50
kfogellifeless: I think the method by which you closed it doesn't matter here -- even if you had done it via web, that problem still would have happened, b/c the bug tracker doesn't do conflict detection.03:50
pooliehm03:50
lifeless(time to close, 3 seconds - 1/5th the time to close the web page)03:51
lifelesskfogel: yes, and it doesn't do real-time update on open views either03:51
pooliei suspect, without strong evidence, that midair collisions actually do _worse_ than just taking the latest values03:51
kfogellifeless: as I said, no argument about the convenience (to that user) of email.03:51
lifelesskfogel: I filed a couple of bugs last week about the webui in this regard03:51
poolielet alone taking the latest values of changed fields i03:51
poolieit's hard to see how that could be true03:51
kfogelpoolie: I've worked with both, and this way is worse.03:51
kfogelpoolie: mid-air collision just means notice the conflict, inform the user, and let them figure out what to do.03:52
pooliekfogel: both which?03:52
kfogelthe way I just described, and the current way03:52
poolieoh you mean you'd prefer it gives you an error03:52
kfogellifeless: I thought that was an old bug, though?03:52
poolielike um bugzilla does?03:52
kfogelpoolie: VASTLY03:52
lifelesskfogel: which-was ? :)03:52
kfogelpoolie: or like every other tracker I've worked with, as far as I know? :-)03:52
lifelesskfogel: debbugs doesn't.03:53
kfogellifeless: that the bug tracker not doing conflict detection is a bug03:53
kfogellifeless: ah, good example.  okay, except debbugs (which could, though -- email interface vs web interface has nothing to do with this)03:53
poolieok03:54
lifelesskfogel: I didn't file bugs about c-d, rather about stale-pages.03:54
lifelesskfogel: if you have a view on e.g. a list of bugs03:54
lifelessand poolie closes one03:54
lifelessit would be nice if the list updated03:54
kfogellifeless: oh, I see -- yes, great idea03:55
poolieyes03:55
pooliea real pony of an idea :)03:56
pooliebtw Black Sheep A+03:56
mwhudsoni watched black sheep on the way back from allhands/uds03:58
lifelessglad you like it03:58
mwhudsonat one point i had half the cabin crew watching it over my shoulder, which was a bit of an odd experience03:58
lifelessLOL03:59
kfogelis this some movie?03:59
thumperpoolie: black sheep isn't that funny04:00
thumperpoolie: certainly a good b-grade movie, but A+? B+ maybe04:00
lifelesshttp://en.wikipedia.org/wiki/Black_Sheep_(2007_film)04:02
mwhudsonjelmer: still awake?04:04
lifelesshttp://en.wikipedia.org/wiki/Wilhelm_scream wow.04:05
mwhudson(i hope not)04:05
kfogelanyone know the bzr flag to ignore ~/.bazaar ?04:11
kfogelbzr help hasn't turned it up yet, though I'm sure it's there somewhere04:11
thumperkfogel: are you versioning ~/ ?04:11
thumperkfogel: bzr ignore .bazaar04:11
kfogelthumper: Yes.  In Subversion :-).04:11
kfogelthumper: no, not to ignore for vc04:12
kfogelthumper: to ignore for running a command04:12
thumperkfogel: huh?04:12
kfogel    bzr --behave-as-if-i-had-no-.bazaar-dir04:12
thumperkfogel: ah04:13
thumperkfogel: something to do with $HOME or $BZR_DIR04:13
* thumper thinks04:14
spivkfogel: perhaps "BZR_HOME=/dev/null bzr ..." ?04:16
lifelessspiv: will error04:17
spivIt generates a bit of "No handlers ..." noise on stderr probably due to being unable to initialise the .bzr.log trace file, though.04:17
lifeless(I think this is a bug) - bzr writes a default ~/.bazaar/ignore on first use.04:18
spivAh, drat, so it does.04:18
spivI tried 'bzr whoami', and that worked.04:18
spivBut actual working tree ops die as you say.04:18
lifelesskfogel: why04:18
spivI guess there's always "tmpdir=$(mktemp -d); BZR_HOME=$tmpdir bzr ... ; rm -r $tmpdir", although you'd need more complexity to preserve the exit code...04:20
lifelessand still. why?04:20
kfogellifeless: I wanted to test some pulls over http and know for sure that my launchpad identity was not affecting them.  I just moved the dir out of the way temporarily, it's no problem.04:27
spivOops, streaming is still generating more root records than IDS.  I guess I need to more ruthlessly reuse more of the IDS logic...05:07
lifelessspiv: did the test suite catch it?05:33
spivlifeless: not directly, I found when digging into a inventory-parents/stacking related failure.05:34
spivI'll certainly add a direct test.05:34
lifelesscould you add tests then ?05:34
lifelessthanks05:34
spiv:)05:34
lifelessspiv: direct-interface level would be my preference05:34
spivlifeless: I was thinking interrepo test for any non-rr -> rr, with rev1:[] and rev2:[rev1], do a fetch, rev2's inv should have (root-id, rev1) (and corresponding text record).05:36
lifelessspiv: there's one like that already05:37
spivYeah, I expect so.05:37
lifelessspiv: rev2's inv should have (root-id, rev2)05:37
itistodayi have a lightweight checkout that's bound to a bzr:// address, but that address has changed, how do I point the checkout to the new location?05:37
spivHmm.  Really?05:37
fullermditistoday: switch05:38
lifelessspiv: yes, the algorithm is meant to be identical in the presence of ghosts05:38
mwhudsonitistoday: i think you have to edit the .bzr/branch/location file by hand :(05:38
mwhudsonunless that bug has been fixed05:38
lifelessmwhudson: --force05:38
mwhudsonah good05:38
lifelessmwhudson: fixed about a year ago05:38
fullermdHeck, who has time to keep THAT up to date?05:39
itistodayfullermd: yeah, doesn't work :-(05:39
itistodaymwhudson: hmmm... thanks i'll try that... odd that there isn't a command to do this05:39
lifelessitistoday: there is a command05:39
lifelessitistoday: bzr switch --force NEWURL05:39
itistodaylifeless: it doesn't seem to work, i get a connection refused error for the  old location05:40
spivlifeless: ah, I see.  So it's actually IDS that's wrong then, not the streaming.  Hmm.05:41
lifelessitistoday: oh, thats odd.05:42
lifelessitistoday: what bzr version do you have?05:42
lifelessspiv: look in log for a commit from me about this05:42
lifelessspiv: and you'll find the test I wrote for it05:42
itistodaylifeless: 1.1605:42
spivlifeless: will do05:43
itistodaymwhudson: thanks, that seemed to have worked, although very odd, it will give an error if that file ends in a newline.05:43
lifelessitistoday: what does 'bzr plugins' report?05:43
mwhudsonitistoday: ah, could have warned you about that05:44
lifelesswe have a test that this works05:44
mwhudsonitistoday: bzr switch --force worked for me though05:44
lifelessso its being cause by something outside of bzr core, or something unusual05:44
lifelessbzrlib.tests.blackbox.test_switch, test_switch_lightweight_after_branch_moved05:44
itistodaylifeless: bzr_push_and_update (0.2dev), bzrtools 1.16, launchpad 1.16, netrc_credential_store 1.1605:44
itistodayperhaps it's a bug to do with switching from a URL that looks like this: bzr://foo/  => bzr://foo:9990/repo/trunk ?05:46
mwhudsonitistoday: i guess it's too late now (maybe you could copy the tree and mangle the location file in the copy?) but if you can reproduce the problem, could you run with -Derror and pastebin the traceback?05:46
itistodaymwhudson: it might be easy to turn things back... just by editing that file again, i'll try, one sec05:47
mwhudsonlooking at the code i can't see how --force isn't working05:47
mwhudsonunless as lifeless says, switch is being entirely replaced somehow05:47
lifelessitistoday: also if you can reproduce it, please try 'bzr switch --no-plugins --force NEWURL'05:47
itistodaylifeless: ok05:48
itistodaywhere does the -Derror go?05:48
itistodayimmediately after bzr?05:48
itistodayor after the command?05:48
mwhudsonanywhere05:48
lifelessbetween bzr and the command normally05:49
itistodayk, able to reproduce, 1 sec05:49
itistodaywhat's a good pastie site?05:49
lifelessrafb.net05:49
lifelessor paste.ubuntu.com05:49
lifelessor whatever05:49
mwhudsonspiv: can reproduce the pyflakes problem btw05:50
itistodayhttp://pastie.org/53531505:50
itistodayhope that's helpful05:52
mwhudsonspiv: and fixed it05:52
lifelessitistoday: it is thanks05:52
lifelessitistoday: i'll turn it into a bug05:52
itistodaylifeless: k cool05:53
mwhudsonaaah05:53
spivmwhudson: oh, great.  Thanks!05:53
mwhudsonspiv: r29 of my branch05:53
mwhudsonitistoday: the code was expecting "not branch", not "connection refused"05:53
itistodaymwhudson: sorry, don't really follow, but does that mean you know what the problem was?05:54
mwhudsonitistoday: yes05:55
itistodaymwhudson: cool :-)05:55
itistodaybtw, is 'cool' still in use today?05:55
itistodayi come from the past you see...05:55
mwhudsonso do i, in internet terms :)05:57
fullermdI like living in the past.  I know when to cringe.05:57
thumpermwhudson: aren't you still under 30?05:57
mwhudsonthumper: no05:58
thumperwell... at least I never used punch cards :)05:58
fullermdMy FORTRAN book instructs me to use punch cards in the exercises...05:59
fullermd...  OK, now I have to go see if Google knows who makes a USB card reader...06:00
lifelessgood luck with that search term06:00
mwhudsonhaha06:01
fullermdWhoah.  I should know that doing a search like that is likely to give me even weirder results than what I'm looking for...06:06
fullermd"Proposed solution: Construct an adapter that interfaces a standard PC USB port to the tape drive interface of the 1401."06:06
fullermdhttp://ed-thelen.org/1401Project/IBM_1401_to_PC_Interface_Adapter.html06:06
fullermdSo, just follow those instructions, feed your cards into the 1401, and write them to the tape [PC].06:06
fullermdAll you need is a 1401...06:07
vilahi all07:27
vilago away vila , damn ghost mouse events ! I swear I didn't click...07:31
fullermdAre ghost mice more or less frightening to elephants?07:35
vilafullermd: far more ! Imagine mouse clicks occurring not even where your pointer is...07:44
vilaelephants just can't support that...07:44
=== domas_ is now known as domas
lifelessnight all08:12
vilanight lifeless08:13
poolielifeless: are you still here?08:17
pooliecan i now lazily register commands?08:18
pooliei can certainly be lazy by asking rather than digging more :)08:18
poolievila, your comment "Turn test_non_ascii.py test_mv errors into failures." is interesting to me08:19
vilapoolie: hehe, command lazy registering is certainly a continuum :)08:19
pooliei wonder if at least getting to actual failures rather than other types of exception is a good intermediate step08:20
vilagood, the idea was to either start discussion during review or leave a starting point for a better diagnostic or bug filing08:20
vilaoops, message crossing08:21
poolieso you did find it useful?08:21
vilawe have the actual failures, but keeping them undiagnosed is counter-productive for the test farm08:21
vilagiven that the failures date back to 1.6 ....08:22
poolieoh, you meant into known failures08:22
pooliei agree about that08:22
vilayes, thinking more about it I should just turn the TestSkipped into a KnownFailure08:22
vilaI was thinking about doing that as a tweak during the week-end08:23
pooliei was thinking about something else which is whether a TestFailure (or whatever it's called) is better than say a TypeErorr08:26
poolieprobably not enough better to be worth making a separate step for it08:26
poolieum08:26
poolieregarding TestSkipped etc08:26
pooliei'd like to overhaul that too08:27
pooliei think we're missing a couple of useful classes08:27
vilaI don't get it. What TypeError are you talking about ?08:27
pooliealso, marc tardif(?) recently posted about the taxonomy of test failures used by different frameworks08:27
poolieit might be worth looking at that08:27
poolieum08:27
poolieit's just an abstract example-08:27
pooliei'm talking about the difference between tests that crash when run08:28
poolieand those that fail with in a specific test assertion08:28
vilaOh ERROR instead of FAIL08:28
pooliesome people think that failures of the first type are worse than the second type08:28
poolieright08:28
pooliei don't think that's that ERROR is worse, or even very different, in our case08:28
lifeless(program over :P)08:29
lifelessso I think there is a good concrete difference08:29
lifelesssay you break something08:29
vilaI view ERRORs as compilation issues as opposed to FAIL as run-time issues. The former should indeed occurs only during dev08:29
lifelessthings /testing/ the thing broken are more likely (one hopes) to FAIL, and all the ERRORS are fallout that one can ignore until the FAILures are fixed08:29
lifelessand probably once the FAILures are fixed the errors will go away08:29
vilalifeless: interesting counter-example :) I should try that next time, but I'm pretty sure I always try to address the ERRORs first...08:30
pooliethis is kind of a beer question :)08:32
lifelesspoolie: so, re lazy - I don't think its good to have to manually maintain a cache08:32
poolieso i'm going back to your review then to my code08:32
lifelesspoolie: other than that its all open ;)08:33
poolielifeless: i agree, once and only once is better08:33
lifelessand, try bzr-guess :):)08:33
poolieok08:33
pooliei'd rather have better zsh completion :)08:33
lifelessfortunately its not an exclusive choice08:33
lifelessanyhoo - see you all tomorrow08:34
poolielifeless: ok, very cute08:35
poolievila, +108:36
poolieto your osx patch08:36
lifelesspoolie: this might be something to put in core08:36
pooliewhich?08:36
lifelessbzr-guess08:36
poolie:? maybe08:36
poolieum08:36
poolieit's an interesting test case08:36
pooliei don't know how many people will specifically go out and get it separately08:37
poolieand it's presumably small08:37
lifelessdistributors could08:37
poolieotoh people may want it off by default?08:37
lifelessgit has something similar - type 'git inti'08:37
vilalifeless, poolie : I'd like bzr-guess to be put in core *as a plugin* so that it gives one more plugin example and leave the core code simple08:37
poolieinteresting08:37
pooliemm08:37
poolieas i posted a while ago08:37
pooliei think shipped plugins are probably a bad idea08:37
pooliemerge or merge not08:37
* poolie attempts to get his nose down08:38
lifelesspoolie: I still disagree with you. We have lots of plugin structured code - repo formats, merge handlers etc.08:38
vilapoolie: and thanks for the review08:38
poolieum08:38
pooliewe might be talking about somewhat different variables08:38
lifelessnot an urgent discussion08:39
lifelessput your nose down.08:39
pooliei completely support having it cleanly separated08:39
pooliethrough registries or whatever08:39
poolieactually maybe i mainly care about 'selftest --no-plugins' etc08:39
* lifeless waves08:40
lifelesslets chat about this later08:40
poolievila: would you agree in principle with a patch for bug 391411?10:14
ubottuLaunchpad bug 391411 in bzr "want "reconfigure --unstacked" or --stacked-on" [High,In progress] https://launchpad.net/bugs/39141110:14
vilapoolie: I agree that it should be part of reconfigure, it would be nice if it works with remote branches too... ha! Yes, bug #391405 already linked10:18
ubottuLaunchpad bug 391405 in bzr "want an option to force stacking or not when creating a branch" [High,Confirmed] https://launchpad.net/bugs/39140510:18
vilapoolie: that will require a bunch of tests though...10:18
poolievila, i was hoping to tackle that later10:23
pooliei think they can be fixed separately10:23
pooliei was hoping for fairly small smoke tests at the ui layer10:23
poolieat least for this one it should be mostly a matter of using apis that are already there10:23
vilapoolie: can't you raise NotLocalUrl until your address the problem ?10:24
YoussefHi guys!!!10:27
YoussefI come to report a litte bug!!!!10:27
YoussefWho want to liste to me...?10:28
vilaYoussef: https://bugs.launchpad.net/bzr/+filebug !!! :-)10:29
Yousseflol10:29
Youssefim already there10:29
Yousseflol10:29
Youssef:D10:29
vilaYoussef: otherwise: ask, don't ask to ask !!!10:30
vilaUntil you ask, nobody knows if he/she can answer10:30
Youssef:P10:30
vilapoolie: the LockNotHeld in a stacking env reminds me of jam encountering the same kind of problem...10:31
vilapoolie: I vaguely remember him sending a patch even... not sure it landed though10:32
pooliehm10:49
pooliewell, if you can find it that would be nice10:50
pooliei'm not sure what you mean about NotLocalURL10:50
pooliethat i could make it work only locally at first?10:50
pooliei guess so10:50
vilapoolie: yes, make it work locally first10:56
poolieany idea about that patch for the unlock error?10:59
vilapoolie: from jam you mean ?11:02
poolieyeah, for the problem jam reported11:02
pooliejust if you happen to have it11:02
* vila doing a quick search11:03
vilapoolie: [MERGE] Cleanups for fallback repos and stacking is what I had in mind11:06
vilapoolie: so I think this has landed, but you may still find it inspiring11:06
vilapoolie: part of 1.1611:07
vilapoolie: hmm, just see your comment, you may be right about the branch not having a stacking-on branch anymore11:08
pooliehm, i'm working off today's trunk11:13
Pilkypoolie: hey, just read your reply11:14
PilkyI've tried --xml before but the big issues I've had is that going through the main UI makes working with push, pull, branch etc awkward as getting the progress and giving the authentication credentials is very hacky11:15
Pilkyit also seems like bzr-eclipse have the same issue11:18
poolievila, i'm running out of concentration, i think i'll leave it there for today11:21
pooliei think that fix won't be very hard11:21
pooliePilky: ok, so how about just keeping a compatible licence and then dealing with what arises?11:21
Pilkycould work, I mean would it be a huge problem with the API being LGPL. I'm not planning on modifying bzr itself, the API will be designed to work with the standard bzr implementation11:23
PilkyI just want something that would allow others to use the API in any sort of app, open or closed source11:23
vilapoolie: ok, lunch time for me anyway, cu11:23
Pilkyas I think it could really help get bzr support into many tools on the Mac11:24
pooliei guess it just seems a bit speculative to me11:24
pooliechanging licence is a big deal and basically irrevocable11:24
Pilkyyeah11:24
poolieand the question of lgpl vs gpl is hard to understand for python code11:25
pooliei'd definitely like to see good support in xcode and other mac apps, certainly11:25
Pilkywell the idea is for me to write the API in PyObjC and bundle it in a framework11:26
pooliewell11:26
Pilkyof course the issue is I'll be looking at bzrlib.builtins to learn how to use bzrlib11:26
pooliei'll talk to other people here about it11:26
Pilkyok cool11:27
poolieum11:27
Pilkyyeah11:27
pooliei think this is going to be a lot more convincing if there's already a good mac ui and people are then saying "we'd like to integrate with $app but we need $thing"11:28
pooliethan just 'will you change your licence?' right from the word go11:29
Pilkyyeah11:29
pooliei think if there's an objc api that provides a similar level of functionality but that can be called as a component11:29
pooliein principle that should be fine11:29
Pilkyok11:30
pooliebut, maybe there's some good mechanism like the os x Services rpc (the details are rusty) that actually turn out to be a better way to integrate11:30
Pilkywell one way that is in the back of my mind is to make the Obj-C API into a separate binary and then use distributed objects to communicate between the two processes11:31
Pilkymuch more complicated that I'd like but it satisfies the GPL11:31
poolieok11:32
pooliewell,11:32
pooliework on the objc library and we'll see how it comes out11:33
pooliegood night11:33
Pilkyok, ttyl11:33
bialixlifeless: https://bugs.launchpad.net/bzr/+bug/285055/11:39
ubottuUbuntu bug 285055 in bzr "switch --force on lightweight checkout connects to original remote branch" [Medium,Confirmed]11:39
=== montabeau is now known as abeaumont
=== umontabea is now known as abeaumont
jammorning vila15:16
vilamorning jam !15:16
=== beuno_ is now known as beuno
LarstiQlifeless: could it be that I no longer have PQM access? I'm not seeing any rejection mails, but it did show up on http://pqm.bazaar-vcs.org/16:07
vilaLarstiQ: what are your public and parent branches (precise URLs as shown by bzr info) ?16:26
LarstiQlp:~larstiq/bzr/reinvoke-2.6 and /home something, but I specified --submit-branch=http://bazaar-vcs.org/bzr/bzr.dev16:27
mozmck_workquestion: if I have used bzr init to put a project under bzr, can I later change it to a shared repository?16:27
Peng_mozmck_work: Yes, using "bzr reconfigure".16:27
Peng_I think. Even if not, you could still do it; it'd just take a little more work.16:28
vilaLarstiQ: don't use lp branches16:28
vilaLarstiQ: convert them to their http equivalent, there seems to be one bug related to lp that keeps coming and going ...16:29
mozmck_workPeng_: thanks16:29
LarstiQvila: k, will try that16:29
LarstiQvila: it seems to be running16:35
vilaLarstiQ: ping spiv, I think he's the last who encounter that kind of problem16:35
vilaLarstiQ: by the way, do you know how to automatically start ssh tunnels ?16:36
LarstiQvila: automatically? /me feels he is missing context16:37
LarstiQvila: I've got a jumphost setup though16:37
LarstiQvila: http://blog.ganneff.de/blog/2007/12/15/using-a-ssh-jumphost.html16:38
vilaLarstiQ: from my laptop I use local forwarding to my desktop for smtp, but that requires me to manually initiate an ssh connection or starting the tunnel manually,16:38
spivLarstiQ: last time I tried lp: URLs weren't working with PQM, I need to pester spm about that again.16:38
vilawow, good night spiv :-)16:39
spivLarstiQ: try setting the public_location for your branch to http://...16:39
spivvila: yeah, I know... I'm about to sleep :)16:39
LarstiQspiv: I did, PQM is rrunning the tests now :)16:39
spivLarstiQ: ok, good, it's still that problem then :)16:39
* spiv -> land of zzz16:39
vilaLarstiQ: now I'd like these tunnel to be up when I need it so I'd like to put it in a @reboot cron entry, but ssh ask for my password at that time instead of waiting for a connection on the local port16:41
=== abentley1 is now known as abentley
LarstiQvila: ah, right16:42
LarstiQvila: I believe mutt has some support for setting up ssh tunnels16:42
LarstiQpersonally I deliver over tlsed port 58716:43
vilaLarstiQ: ok, more context :-) I said mail but I want to do that other uses so I'd like a ssh-only solution if possible :-)16:43
vilas/other uses/for other uses/16:44
LarstiQvila: you could use an openpgp card with an auth key and then pinentry-qt for the passphrase, to deal with the password prompting?16:44
vilano16:44
vilamy two problems are: 1) starting without password or reliably delay until the ssh agent is up, 2) restart if the connection is lost16:46
vilaI wonder I should wrap the process in python script myself or if there is already some solution I can't think about :-/16:47
vilajam: didn't you use ssh tunnels yourself ?16:47
rockyis there anyway to specific file ignores for stuff on your own local workstation such that they don't have to get committed with .bzrignore ? (ie inside bazaar.conf)16:48
vilarocky: there is a global ignore file alongside bazaar.conf16:49
rockyheh16:49
rockytoo obvious =P16:49
vilarocky: sometimes it helps to think: "If I were programming that tool, I'd put that feature here" and just go checking :)16:50
vilasometimes it doesn't though, like my ssh tunnels :-D16:51
jamvila: Sometimes16:51
jamI didn't quite see what was going wrong (network went flakey)16:52
vilajam: don't tell me you use an ssh tunnel for chatting :16:52
vila:) Ooops, typo in smileys now :)16:52
jam*I* don't16:52
jamI believe Robert uses a remote IRSSI correction16:53
vilajam: Do you use ssh tunnels for anything ?16:53
jamMostly for sending mail when I'm away from home16:53
vilajam: do you start manually or automatically ?16:53
jammanually16:53
vilaI'd like to automate that (I now have three of them smtp/ssh/buildbot)16:54
vilaI used to start the smtp one manually by issuing an ssh connection and declaring the local forwarding in ssh/config, I've seen that I can do: "ssh -L port:host:port -N&",16:55
vilabut I still need to issue that manually and the process errors out under some conditions16:55
vilaso,16:55
vilamy two problems are: 1) starting without password or reliably delay until the ssh agent is up, 2) restart if the connection is lost16:56
vilajam: thoughts ?16:56
* awilkins uses an SSH tunnel for chat, what's wrong with that?16:57
* awilkins uses SSH tunnels for many things16:57
vilaawilkins: do you know how to start them while addressing my 2 points above ?16:58
awilkinsI have 2 mins until train, I shall look briefly but may speak later16:58
vilaok16:58
awilkinsvila: Yes you can define port forwarding in .ssh/config16:59
awilkinshMM16:59
vilaawilkins: been there, done that, want more :)16:59
awilkinsNot sure this is issue but now must run16:59
=== awilkins is now known as awilkins_train
jamvila: I've seen people do stuff like "ssh-add -l" to determine if keys have been added to the agent.17:23
jamAs for "wait until agent starts", isn't it enough to just put your script as starting after the ssh-agent script starts?17:23
jamyou could also use a script like17:23
jamps -efww | grep "ssh.*-L..."17:24
jamto check if your process is running17:24
jamand then add something into cron that checks17:24
jamif [ssh-add -l] and not [ps -efww | grep "ssh.*-L..."]; then ssh ... -L17:24
jamThough I might wrap the complex logic into a python script17:24
vilajam: I need to use that from various OSes, so the ssh agent... is not well standardized :-/ But thanks for the hints (ssh-add -l may works everywhere)17:27
jamvila: ssh-add is present under Cygwin...17:27
jamand -l works here17:28
jamand fails with an error if the ssh-agent isn't available, etc.17:28
vilaAs for cron checking, I'm always a bit uncomfortable with scripts that starts again even if *I* stop them :-)17:28
vilassh-add -l works well on OSX too17:29
jamvila: well, you just asked for it to restart if you drop a connection17:29
jamcron works well for that17:29
jamyou can write your *own* cron replacement as a python script...17:29
jambut blah17:29
jamjust create something like a "proc.no-autorun" or "proc.stop" file17:30
jamand have that checked as well.17:30
vilabut cron is hard to stop or easy to forget to stop, I ran into the issue with my croned fetchmail (restarted every hour)17:30
vilajam: thanks for your answer, I'm searching for something easier to setup (I can handle hacks but I want it to be easy for others), so all your advices are good but make me think there is no known and supported packaged solution :-/17:33
vilajam: I think I'm more into #3 at http://www.debian-administration.org/article/SMTP_via_a_SSH_tunnel17:33
vilaaka special ssh private/public key without password and start at connection17:34
jamvila: interesting thought. Though starting an ssh connection for each time you want to send an email seems a bit heavyweight17:35
jamI suppose if you have a local MTA it would probably work quite well17:36
jamsince it would likely send things in batches.17:36
vilajam: I have indeed a local MTA and for the other uses I don't mind establishing an ssh connection17:37
vilabut I want that connection to be established automatically :-)17:38
LarstiQvila, spiv: pqm success, so yeah the lp: url seemed to be the culprit18:27
nbauernfCan anyone explain to me what might be going on with this:? $ bzr branch http://mc.pp.se/bzr/ps3sdk19:49
nbauernfbzr: ERROR: Invalid http response for http://mc.pp.se/bzr/ps3sdk/: Unable to handle http code 501: Not Implemented19:49
mzznbauernf: works for me. Which bzr?19:51
nbauernfmac osx19:51
TakI get the same result as nbauernf19:51
mzznbauernf: more interested in the version number :)19:51
nbauernfv 1.16.119:51
* Tak bzr 1.16.119:51
mzzhuh, 1.16.1 here too. Got pycurl?19:51
mzz(I think I don't, checking...)19:52
nbauernfmzz: what can I do to reasonable check for pycurl?19:52
mzzsec19:52
nbauernfreasonably*19:52
Taksame result after installing pycurl19:53
nbauernfI'm able to checkout the http bzr repository of bzr19:53
nbauernfi.e. this works:  bzr branch http://bazaar-vcs.org/bzr/bzr.dev bzr.dev19:53
mzz~/.bzr.log (or wherever that lives on your os) may be interesting19:53
Takhttp://paste2.org/p/30724519:54
* LarstiQ gets the 501 with bzr.dev19:55
LarstiQit almost sounds like that is intermittent19:55
nbauernfI have the same problem as in Tak's paste19:56
Takis this an svn repo or a bzr repo?19:56
nbauernfLartsiQ: I get it consistently with httphttp://mc.pp.se/bzr/ps3sdk/19:56
LarstiQTak, nbauernf: do you have bzr-svn?19:56
Takyes19:56
nbauernfI don't think I do19:56
LarstiQ--no-plugins and it works19:57
Takinteresting - I tried bzr+http and got a 40419:57
LarstiQnbauernf: `bzr plugins` will tell you19:57
nbauernfyeah --no-plugins works19:58
nbauernfThanks!!19:58
* Tak also @ --no-plugins19:58
LarstiQnbauernf: mind filing a bug against bzr-svn?19:58
nbauernfhmm this is the first time I've ever used bzr, but I don't mind if I can find the bug tracking system19:59
RenatoSilvahow do I run tests?19:59
mzzRenatoSilva: bzr help selftest20:00
RenatoSilvamzz: it's a plugin20:00
LarstiQnbauernf: http://bugs.launchpad.net/bzr-svn20:00
LarstiQRenatoSilva: same thing20:00
mzzRenatoSilva: I am insufficiently bored to figure out how to run the tests specific to your plugin, sorry20:00
mzzRenatoSilva: (also, I'd have to assume I'm correctly guessing this is still about xmloutput)20:01
LarstiQbzr plugins usually (and should, imnsho) have their testsuite run via bzr selftest20:01
LarstiQRenatoSilva: see -s and bp.xmloutput20:01
LarstiQif that is indeed the plugin you have in mind20:02
mzzI think I just wildly guessed "bzr selftest xmloutput" would do something reasonable, and it did20:03
LarstiQmzz: it does20:03
RenatoSilvamzz: I figured out that the plugin registers itself, I can run them with selftest <registered_name>20:03
mzzthis is often the case with bzr :)20:03
LarstiQmzz: -s bp.<pluginname> will restrict the tests to be loaded to that plugin20:03
RenatoSilvamzz: yes, xmloutput, Guillermo asked me to write tests for my branch proposal, I'm trying to achieve this20:04
LarstiQso it's a bit quicker cycle if you're developing a plugin20:04
Pilkyanyone know if the developer(s) of bzr-eclipse come in here?20:06
RenatoSilvaLarstiQ: I'm sorry I'm new to bzr tests, I don't get what you said about -s and bp.*20:07
RenatoSilvaLarstiQ: I run the tests with bzr selftest <test_name>20:07
verterokRenatoSilva: hi!20:08
RenatoSilvathere are some test failures20:08
RenatoSilvaverterok: hi, who are you :) ?20:08
verterokRenatoSilva: Guillermo20:09
RenatoSilvaverterok: oh!20:09
RenatoSilvaverterok: nice to meet you20:09
verterokRenatoSilva: nice to meet you too20:09
verterokPilky: shoot, I'll be around a bit20:09
LarstiQPilky: verterok?20:10
Pilkyah cool20:10
LarstiQRenatoSilva: `bzr selftest -s bp.xmloutput`20:10
RenatoSilvaverterok: as I said, I'm new to bzr tests...20:10
verterokLarstiQ: heya! how are you?20:10
LarstiQPilky: there are two Eclips projects though, the other is Nick Allen, who doesn't irc (much)20:10
RenatoSilvaLarstiQ: what does that command do?20:10
LarstiQRenatoSilva: so when you say `bzr selftest <pattern>` bzr loads _all_ tests, filters down to ones matching <pattern> and runs those20:11
Pilkyverterok: I'm just wondering how you guys get around the problems with authentication and getting progress information from push/pull/branch actions without using bzrlib20:11
verterokRenatoSilva: I ussually do: BZR_PLUGINS_PATH=/path/to/branch/parent bzr selftest xmloutput20:11
LarstiQRenatoSilva: when instead you say `bzr selftest -s bp.<plugin>` it will only load the tests for that plugin.20:11
LarstiQRenatoSilva: on my hardware, that saves a couple of minutes20:11
LarstiQverterok: good, thanks :) Just been to EuroPython, adjusting again now20:11
Pilkyverterok: because I think I've got an idea that can let me use bzrlib and get around the GPL but it seems a tiny bit hackish so I was wondering if you guys had come up with anything20:12
LarstiQPilky: have you talked with Martin Pool yet?20:12
verterokPilky: I basically lie a bit a about progress :)20:12
RenatoSilvaLarstiQ: I see, it could check if it's a plugin name and internally run the -s bp.20:13
PilkyLarstiQ: yep, he basically said it is better to having something to show before they could consider anything about licences, but since I talked to him this morning I think I've come up with a way to get around licensing issues20:13
LarstiQRenatoSilva: eh, no20:13
verterokPilky: regarding auth there is a bug since the start, but bzr-eclipse only supports bzr+ssh if the user previously added the ssh key to an agent20:13
LarstiQPilky: ah ok, good20:13
Pilkyverterok: right20:13
verterokPilky: what are you working on? :)20:13
Pilkyan Objective-C API for bzr20:14
RenatoSilvaLarstiQ: that -s xxx is hard to remember20:14
LarstiQRenatoSilva: the pattern is very useful for finer or wider grained matching20:14
Pilkybut I want it to be MIT licensed so non GPL projects can use it20:14
Pilkyas ultimately I want to write an MIT licensed GUI for bzr on the Mac20:14
verterokPilky: I'ld suggest using xmloutput, but it sucks compared to pure python :)20:15
Pilkywell, I have come up with a plan to allow me to use both20:15
Pilkyxmloutput is fine for stuff like logs, annotations etc20:15
Pilkybut pure python is better for push, pull etc20:16
Pilkythe only problem is the pesky GPL ;)20:16
verterokPilky: what about splitting the project into library and UI, once you have the library bits solved, you can try to fix the licensing issues20:16
verterokPilky: oh, linking... forget what I said :)20:16
Pilkywell I'm planning on doing the library first and then building the UI on top of it20:16
Pilkybut yeah, my idea might possibly help you as well20:17
Pilkywe can do the xmloutput thing and not have to GPL our code because you can talk to a separate binary that is GPLd without having to GPL your code20:18
Pilkyso my idea is, where I have to talk to bzrlib directly through python, create a separate binary20:18
Pilkythen use distributed objects from my main API to talk to that binary20:18
Pilkythe separate binary is GPL licensed20:18
Pilkythe main API is MIT licensed20:18
verterokPilky: I already found a very non-xml solution, you could use xmlrpc to pass python objects around, bypasing all the manual xml generation20:19
verteroks/very/very nice/20:19
Pilkyhmm20:19
verterokand you keep python on both sides20:19
RenatoSilvaverterok: about bug 393010: the message comes from server as python-like str encoded as utf-8, it is being parsed by KXML lib and returned to bzr-java-lib's log parser as latin-1, something like new String(msg_bytes, getWorkspaceEncoding()), instead of getXMLEncoding().20:19
ubottuLaunchpad bug 393010 in bzr-eclipse "Encoding problem in log view" [Medium,Triaged] https://launchpad.net/bugs/39301020:19
Pilkyverterok: well I'm planning on using PyObjC when I need to talk to python so I can convert the Python object to Objective-C fairly easily and vice versa20:20
LarstiQPilky: did I already ask why you don't want to GPL your code?20:20
verterokPilky: the downside is the need to almost rewrite every commands20:20
Takit seems as though xmlrpc is still "linking"20:20
PilkyLarstiQ: because GPL is a horrible licence for APIs20:20
LarstiQPilky: I see what you mean, what API are you writing?20:21
verterokRenatoSilva: uh, I think to remember a workaround I did some time ago, about wrapping all the xml in a xmlrpclib.Binary object20:21
PilkyLarstiQ: an Objective-C "wrapper" for talking to bzr20:21
verterokRenatoSilva: to work around the java-python encoding mismatch20:21
Pilkyso Mac developers can add support for bzr to apps such as text editors and such much more easily20:22
verterokRenatoSilva: with the latest changes we worked in the last days, that might not be neccesary any more20:22
LarstiQPilky: you think for this specific case the GPL is actually a hurdle?20:22
RenatoSilvaverterok: a possible workaround while KXML is not fixed is to get the message bytes again, and create a new String using utf-8 (or whatever macthes the commit message returned by the server)20:22
PilkyLarstiQ: well, yes as if a library is licensed under the GPL then linking to it requires the linking application to also be GPL20:22
Pilkyif it was LGPL it wouldn't be too much of an issue20:22
LarstiQPilky: yes, that is theory though20:23
verterokRenatoSilva: all the xml is sent inside a Binary, so it's hidden from kxml20:23
Pilkytheory and also what the license says ;)20:23
LarstiQPilky: yes :P20:23
Pilkyplus the minute I put "GPL" on the licence for the product lots of developers run for the hills ;)20:23
LarstiQPilky: but so far there are very little people wanting to integrate bzr in their application20:23
verterokRenatoSilva: I think the missing  bit is the conversion to the correct encoding in the Java side20:23
LarstiQPilky: anyway20:24
PilkyLarstiQ: true, but that is partly due to the fact that bzr isn't quite as popular as git on the Mac20:24
Pilkyand the fact that svn is currently the easiest to integrate into an app20:24
goundyHi.20:24
LarstiQPilky: no, I mean, overall, anywhere20:24
goundyHow to remove a file from source control ? thank you.20:24
LarstiQPilky: right20:24
LarstiQgoundy: `bzr rm`20:24
goundyLarstiQ, bzr rm deletes the file from the hard drive :/20:25
goundyI just want to kick it from source control20:25
verterokgoundy: bzr rm --keep20:25
goundyverterok, thank you very much20:25
LarstiQPilky: anyway, if your current plan doesn't pan out, you could write your wrapper, license it under the GPL, and lobby to get bzr relicensed, and relicense when that goes trhough.20:25
goundyLarstiQ, thank you too20:25
RenatoSilvaverterok: maybe KXML is just returning a new String(msg_utf8_bytes). As they probably use Linux, they didn't get any error. However in my case, Java preferred encoding is not UTF-8 but latin-1 (cp1252), so that it tries to decode the bytes as latin-1 and then I see the wrong chars. KXML should explicitly specify the encoding for the string.20:25
LarstiQPilky: as from my pov it will be useful even if not MIT licensed20:25
LarstiQgoundy: also see `bzr help rm`20:26
goundythanks ! :)20:26
goundySee you20:26
PilkyLarstiQ: well hopefully my plan will pan out, though it'll take a while as I'll only be working on it a day or two a week, got the day job to work on the rest of the week ;)20:26
LarstiQRenatoSilva: eh? If not otherwise specified isn't the xml encoding always utf8?20:26
LarstiQPilky: aight20:27
PilkyI'm hoping to have the API in a fairly usable state by the end of summer20:27
verterokRenatoSilva: do you have the bzr-java-lib sourcecode?20:27
RenatoSilvaverterok: do you mean it's not KXML who is parsing the server CDATA and creating the corresponding bytes?20:27
RenatoSilvaverterok: not in hand20:28
verterokRenatoSilva: yes, little and dirty hack :p20:28
verterokRenatoSilva: let me find you the url, but the file is: src/main/java/org/vcs/bazaar/client/xmlrpc/internal/XMLRPCCommandRunner.java line 16120:28
verterokRenatoSilva: http://bazaar.launchpad.net/~verterok/bzr-java-lib/bzr-java-lib/annotate/head%3A/src/main/java/org/vcs/bazaar/client/xmlrpc/internal/XMLRPCCommandRunner.java20:31
verterokRenatoSilva: by default it's doing new String(result.getBinary(1))20:32
verterokRenatoSilva: but that method should be deprecated for the one in line 16120:32
RenatoSilvaverterok: public String getStandardOutput(final String charsetName)?20:32
RenatoSilvaverterok: it was not running in my debug session20:32
RenatoSilvaverterok: And I was running it very times20:32
* RenatoSilva was disconnected20:34
verterokRenatoSilva: the base COmmand class use public String getStandardOutput() by default20:34
Peng_RenatoSilva: You didn't miss anything.20:35
verterokRenatoSilva: I think that we should change that to: public String getStandardOutput(final String charsetName)20:35
RenatoSilvaverterok: I was talking about this line: http://bazaar.launchpad.net/%7Everterok/bzr-java-lib/bzr-java-lib/annotate/head%3A/src/main/java/org/vcs/bazaar/client/commandline/parser/XMLLogParser.java#L12320:36
RenatoSilvaverterok: parser.nextText() is KXML20:36
RenatoSilvaverterok: it is returning a String (in python it's like an u'')20:37
RenatoSilvaverterok: with wrong chars...20:37
verterokRenatoSilva: yes, I think it's because the string parsed by kxml is the one returned by Command.getStandardOutput20:37
verterokRenatoSilva: and Command.getStandardOutput don't specify any charset, so I think Java is using the default one20:37
verterokRenatoSilva: this line: http://bazaar.launchpad.net/~verterok/bzr-java-lib/bzr-java-lib/annotate/195.2.11/src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java#L31720:40
verterokRenatoSilva: My guess is that the xml log parser is receiving a bad string, and so the nextText() call is returning that20:41
RenatoSilvaverterok: I checked it out, the message in server response is something like <![CDATA[Ma\xc3\xa7\xc3\xa3]]> encoded as base64, but parser.nextText is not decoding from UTF-8. As I said, KXML (or something in the call hierarchy) should be doing something like new String(bytes) (which decodes from UTF-8 for the developers) instead of new String(bytes, "UTF-8") (which explicitly decodes from UTF-8 all the time)20:41
verterokRenatoSilva: that should be in the line I just pointed out, just before passing the stdout string to the XMLLogParser20:42
verterokRenatoSilva: http://bazaar.launchpad.net/~verterok/bzr-java-lib/bzr-java-lib/annotate/195.2.11/src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java#L31720:43
RenatoSilvaverterok: comparing to python... imagine you received the utf-8 bytes from server: 'Ma\xc3\xa7\xc3\xa3'20:43
verterokRenatoSilva: I'm missing something?20:43
RenatoSilvaverterok: it's like nextText() is returning a 'Ma\xc3\xa7\xc3\xa3'.decode('latin-1') or .decode() (from prefered encoding)20:44
verterokRenatoSilva: hmm, weird, I must debug it, but I believe you :)20:44
verterokRenatoSilva: kxml is doing: new String(bytes)20:46
RenatoSilvaverterok: put a breakpoint in the line I mentioned, you'll see that the string is already wrong in that point, check also the server response. It was a bit hard to me as it comes into an InputStream. I had to hunt the buffer (is isnisde is inside is...), then I put the bytes in a Java test file and decoded. As it is base64, then I run python and decoded the response, Then I got the XML with the mentioned CDATA.20:48
RenatoSilvaverterok: do you have kxml source? ok, just like I imagined...20:49
verterokRenatoSilva: yes, maven do all kind of neat tricks ;)20:50
verterokRenatoSilva: I'm fireing up eclipse, to start the debug session, give me a few minutes :)20:50
RenatoSilvaverterok: ok, just to point it out for a possible fix in KXML: I don't know how can it guess the CDATA encoding, as it is pure ascii...20:53
verterokRenatoSilva: I don't think it's kxml job to do that, bzr-java-lib should know what to do with those bytes20:53
RenatoSilvaverterok: ok I just think it's a bit weird to decode, then encode, then decode again, but ok...20:55
verterokRenatoSilva: agreed!20:55
RenatoSilvaverterok: in this case bzr-java-lib should somehow know what is the encoding of such CDATA20:55
verterokRenatoSilva: what do you suggest?, not encoding at all in the xmloutput side?20:55
verterokRenatoSilva: as you mentioned in one of the bugs20:55
verterokRenatoSilva: we could send all utf-8 encoded data over "the wire"20:56
RenatoSilvaverterok: I think that static encoding may be better. In this case, you can trust that the CDATA is always UTF-820:56
LarstiQwho is producing the CDATA?20:57
verterokRenatoSilva: that's the way it should be working today, at least in 0.8.4 utf-8 is hardcoded in the xmlrpc server20:57
verterokLarstiQ: bzr-xmloutput20:57
verterokLarstiQ: actually, the xmlrpc server in bzr-xmloutput20:58
RenatoSilvaverterok: you mean just the preamble right?20:58
LarstiQverterok: ok, from what source? bzr historical data, or also files on disk?20:58
verterokRenatoSilva: the stdout encoding is changed to utf-820:58
verterokLarstiQ: both20:58
NfNitLoop*siiiiiiigh*  reading all the caveats to svn 1.5 merging makes me miss bzr. :)20:59
LarstiQverterok: ah, that complicates matters a bit20:59
LarstiQNfNitLoop: you don't have to ;)20:59
RenatoSilvaverterok: because it's always utf-8, but the actual data is the terminal encoding. This way when I run bzr xmlstatus I get a header <?xml ... encoding="utf8"?> but the data itself is cp850...20:59
RenatoSilvaLarstiQ: btw, does bzr stores its metadata always as UTF-8?21:00
NfNitLoopLarstiQ: Unfortunately I do.  I don't think bzr-svn handles some of the SVN features we're relying on.21:00
verterokRenatoSilva: that was a bug, when running xmlstatus from the terminal, I pushed a branch to fix that (utf-8 was hardcoded in the preamble)21:00
verterokRenatoSilva: the xmlrpc service is a different story :)21:00
verterokRenatoSilva: take a look to the decorator defined in line 87 of service.py,21:01
LarstiQRenatoSilva: yes.21:01
LarstiQNfNitLoop: ah, which would that be?21:01
RenatoSilvaverterok: so when you said it was always using utf-8, it was just the header right?21:01
verterokRenatoSilva: the commands executed via xmlrpc are executed, with  utf-8 as the user encoding, and stored in a StringIO instead of redirecting the stdout output21:02
verterokRenatoSilva: the idea is to always use utf-8 in the xmlrpc calls21:03
RenatoSilvaverterok: oh I didn't understand that part, I'm sorry. I just noticed that the final result I receive is variable encoding...21:04
verterokRenatoSilva: the utf-8 is set as the user encoding when the xmlrpc server starts, in the serve_forever() method, service.py line 7421:05
RenatoSilvaverterok: you mean to decode client commands?21:06
verterokRenatoSilva: for all other operations that use osutils.get_user_encoding()21:07
verterokRenatoSilva: the osutils._cached_user_encoding and bzrlib.user_encoding are updated21:07
RenatoSilvaverterok: and how the response gets its encoding changed? (as I said, I receive cp850 data)21:07
verterokRenatoSilva: that's the weird part, looks like a bug in service.py21:08
RenatoSilvaverterok: if it's always using utf-8, I should receive utf-8, but I receive cp85021:08
RenatoSilvaverterok: oh...21:09
verterokRenatoSilva: you could easily test this wihtout putting bzr-java-lib in the middle, there is a client.py file in the xmloutput tree to call the xmlrpc service via python21:09
verterokRenatoSilva: a lot easier to debug ;)21:09
RenatoSilvaverterok: well, somewhere it is getting the terminal encoding ont the one you had set when starting the server...21:09
verterokRenatoSilva: you could check what's the encoding of the data inside the Binary Blob using a slightly modified client.py21:10
RenatoSilvaverterok: humm wait a minute, I receive variable encoding in terminal!21:10
verterokRenatoSilva: looks like that might be the cause21:10
RenatoSilvaverterok: I'm sorry, in terminal no xmlrpc call is involved21:10
verterokRenatoSilva: right21:11
verterokRenatoSilva: the xmlrpc service is a different world21:11
RenatoSilvaverterok: so in the server you make xmloutput think that it has an utf-8 terminal, and so you receive data as utf-8....21:12
verterokRenatoSilva: that's the idea, and I replace sys.stdout in order to catch all the output21:12
LarstiQthat is a bit iffy21:13
RenatoSilvaverterok: well, if the server certaintly is always returning utf-8, you could safely do new String(parser.nextText(), "UTF-8")21:13
LarstiQverterok: is this because you're calling cmd_ classes?21:14
verterokLarstiQ: I know.. it's a hack21:14
verterokLarstiQ: exactly21:14
verterokLarstiQ: the idea is to stop calling bzr commands, and call exposed methods via xmlrpc21:14
* LarstiQ nods at verterok 21:15
verterokLarstiQ: the xmlrpc service is in the middle of a transition, it's just a band aid to workaround the slow startup21:15
LarstiQverterok: aye :/21:15
verterokRenatoSilva: now I need to make sure that's true...but for that I need my windows vm...sadly I can take a loook to it tomorrow, as I;m not in my home (the VM is in my desktop :p )21:16
RenatoSilvaverterok: or instead of hard-coded "UTF-8", the server response itself could have some element or attribute to tell the right encoding of the python-like strings inside the CDATAs (something like python_str_encoding="UTF-8" or "XML" (indicating that it's the same as the xml itself))21:17
verterokRenatoSilva: that's a good idea :)21:17
verterokRenatoSilva: first I want to make sure the xmlrpc service is actually sending all the info in one encoding...to be sure from where I should get the encoding it's using21:18
LarstiQverterok: couldn't you change your terminal encoding in !win32 to test?21:19
verterokLarstiQ: I'ld love to know how to do that in linux :)21:19
verterokLarstiQ: what'do you know what's the *nix equivalent of cp??? encodings?21:20
verteroks/what'//21:20
LarstiQverterok: export LC_ALL=C will probably already trip things up21:20
LarstiQverterok: if not, you can pick a non-utf8 locale21:21
verterokLarstiQ: ack, thanks!21:21
LarstiQverterok: say nl_NL@euro21:22
LarstiQverterok: (LC_ALL should be enough, but if not, be a bit more brute with the variables from `locale`)21:22
RenatoSilvaverterok: I will update the log view bug later...21:23
verterokRenatoSilva: ok, thanks!21:24
RenatoSilvaverterok: what about the tests for teh emrge proposal? I'm not familiar with writing them :(21:24
verterokRenatoSilva: ok, don't worry I'll try to write a test for it21:25
RenatoSilvaverterok: ok I'll try too, if it's not good you reject it...for services it may be easy, but for xml info it's a big file...I'll take a look anyway21:26
RenatoSilvaverterok: thanks for helping!21:26
verterokRenatoSilva: it should be a simple test, about passing url with unicode names, etc. not a test for each command :)21:27
verterokRenatoSilva: thanks you, for digging into this and help me out!21:27
RenatoSilvathank you too21:29
blueyedWhat's the best way to check (from a shell script), if a file is under bzr control?21:31
Peng_blueyed: "bzr st" on it, maybe?21:31
verterokblueyed: take a look to: bzr ls --versioned21:32
blueyedPeng_: yes, makes sense. unfortunately the return code does not indicate an error.21:32
blueyedverterok: well, I have a given file and want to check if bzr knows about it.21:32
blueyedbzr ls only lists current directory.21:33
Peng_"bzr inventory" lists everything, but it's a bit evil to do it that way.21:33
verterokblueyed: there is a --recursive but as Peng_ said, it's a bit evil21:33
blueyedbzr st, with grepping for error might work.21:33
verterokblueyed: there is the 'bzr file-id' hidden command21:34
Peng_I just ran a quick test. For a file that wasn't versioned, "bzr st" exited with 3. For one that was versioned an unchanged, it was 0.21:34
Peng_Oh, that's a good idea.21:34
blueyedPeng_: bzr st exits with 0 for an non existant file.. (1.16.1)21:36
blueyedverterok: bzr file-id exits with error 3. great.21:36
Peng_blueyed: I'm on bzr.dev. Huh!21:40
mwhudsongood morning21:41
mwhudsonjelmer: ping21:41
jelmermwhudson: pong21:42
mwhudsonjelmer: did you look at that python2.4 crash bug at all?21:42
RenatoSilvahow do I assertNoExceptionIsRaised?21:52
Peng_Isn't that what tests do by default?21:52
Peng_That's like doing "try: ...; except: raise".21:52
RenatoSilvahow to avoid output?21:57
RenatoSilvaI don't want the commands I'm running to print to stdout...21:59
Peng_Eh? What commands? Where?21:59
RenatoSilvaPeng_: http://pastie.org/53624122:00
RenatoSilvaPeng_: last command22:01
Peng_Ehh, I don't know anything.22:02
RenatoSilvaPeng_: is it the pratice to let them write out to output?22:03
Peng_< Peng_> Ehh, I don't know anything.22:03
RenatoSilvaPeng_: I 'd want just to see 'passed'22:03
RenatoSilvaCan anyone suggest me a dummy command containing a non-ascii string?22:04
jelmermwhudson: not really yet, sorry22:04
mwhudsonjelmer: ok22:04
mwhudsonjelmer: any ideas on where it's likely to be?22:04
jelmermwhudson: I'm in .ie on vacation atm so my response times may be a bit slow the next couple of days22:04
mwhudsonjelmer: ok22:04
RenatoSilvasometing like bzr branch lp:xxx Maçã, but easy to set up inside a test22:05
jelmermwhudson: no idea when I'll have a look exactly, depends on whether I can find a spare moment when I get back at the airport, etc22:05
mwhudsonjelmer: it's a race between you and whoever is working on getting launchpad running on python 2.5 then :)22:05
RenatoSilvaoh, bzr init :)22:05
jelmermwhudson: :-)22:05
jelmermwhudson: I'm quite sure it's a bug in subvertpy btw, since that's the only part of the code that actually has C extensions and could reasonably crash22:06
RenatoSilvabut I need to delete the folder...no no... bad option....I want something simpler22:06
mwhudsonjelmer: fair enough22:06
LarstiQRenatoSilva: hmm?22:08
verterokRenatoSilva: take a look to the xmllog tests, I think there are encoding related tests22:10
NfNitLoopLarstiQ: re: SVN use cases -- we're making lots of use of svn:externals22:10
NfNitLoop(sorry, was AFK at a meeting)22:11
RenatoSilvaverterok: currently I'm trying the custom_commands_main ...22:11
verterokRenatoSilva: I think that passing the raw str should be enough to test your fix, right?22:13
LarstiQNfNitLoop: right, that is a bit of a sore spot. Have you looked at lp:bzr-scmproj?22:14
verterokRenatoSilva: like, 't\xc3\xba' that's tú in UTF-822:15
verterokRenatoSilva: but in whatever encoding you want to check22:16
NfNitLoopLarstiQ: Haven't even heard of it till just now, I'll take a look.22:16
jelmermwhudson: btw, do you happen to know what eventually was decided about nested trees?22:17
mwhudsonjelmer: no, not really22:17
LarstiQjelmer: not being hindered by knowledge of the facts, afaik no decision has been reached22:17
jelmerLarstiQ: so I guess that implies it's all going to be 3.0+22:18
jelmer?22:18
LarstiQjelmer: I'd really have to actually read something before trying to answer that22:20
NfNitLoopLarstiQ: Aah, scmproj sounds cool.  Unfortunately, what I need to manage is merging svn:external properties.  (Fun, right?) :p22:20
jelmerLarstiQ: last I heard (at UDS) spiv and abentley were working on dealing with the concerns raised22:21
LarstiQNfNitLoop: *blink*22:21
RenatoSilvaverterok: http://pastie.org/536241 (f.type is wrong, I'm trying to get the right attribute for the id)22:21
jelmerNfNitLoop: scmproj doesn't help in that regard unfortunately22:22
LarstiQNfNitLoop: you people do _what_? ;P22:22
NfNitLoopLarstiQ: It sounds crazier than it is...22:22
NfNitLoopand it's a hell of a lot better than the system it replaced.22:22
verterokRenatoSilva: are you trying to catch an xmlrpc exception? or a bzr specific error?22:23
NfNitLoopWe use a SVN repo full of svn:externals to deploy our (PHP) code to our servers in EC2.22:23
NfNitLoopwe're going to have a branch of that for our staging environment.22:23
NfNitLoopwhen we are ready to launch staging to prod, we'll merge the changes to the externals into our prod repo.22:23
NfNitLoopIt's... very meta. :p22:23
NfNitLoop(i.e. NOT something I would expect any other tools to support.)22:24
LarstiQright. imnsho that is abusing vcs for deployment22:24
RenatoSilvaverterok: catch the custom_command_main exceptions, it raises a Fault for UnicodeEncodeError22:25
NfNitLoopLarstiQ: It is.22:25
NfNitLoopBut, did I mention that it's still *waay* better than our previous system? :)22:25
LarstiQNfNitLoop: yes, you did :)22:25
* LarstiQ goes to bed22:25
NfNitLoopThe upshot is that it's always trivial to make sure that our production environment(s) haven't diverged from a known code state.  Which, unfortunately... happens.22:26
RenatoSilvaverterok: I think I'll need to change the code itself a bit to raise the unicode error...22:26
RenatoSilvaverterok: can I put any code into the fault code?22:26
verterokRenatoSilva: try doing a print dir(t)22:26
RenatoSilvaverterok: ?22:26
verterokRenatoSilva: 42 is bzr specific error code22:26
RenatoSilvaverterok: and 32?22:27
verterokRenatoSilva: all other non-bzr errors22:27
RenatoSilvaverterok: what about not wrapping the error with fault? If it is UEE, then I just raise it22:27
RenatoSilvaverterok: If I should use the Fault, then what code do I fill for UEE?22:28
davidstraussWhat's the difference between a "bound branch" and a normal, heavyweight "checkout"?22:28
verterokRenatoSilva: it will be wrapped in a Fault, as it's a client/server talk22:28
dashdavidstrauss: one difference22:28
dashoh wait22:28
dashno, those are the same thing.22:28
davidstraussdash: That's why I thought.22:29
verterokRenatoSilva: I think 32, but this is just a way to note the error is from the bzr command or a bug/server side error22:29
davidstraussBut why does bzr explorer show a tab for each?22:29
davidstraussdash: This suggests they're not the same thing: http://bazaar-vcs.org/DraftSpecs/SimpleCheckouts22:31
dashdavidstrauss: Oh hmm22:32
dashi'm not gonna think about that lest it complicate my understanding of the world22:32
verterokRenatoSilva: you can get the code with: t.faultCode22:33
verterokRenatoSilva: you can get the code with: f.faultCode22:34
RenatoSilvaverterok: yeah I've found it, but I did with raising a raw exception, see: http://pastie.org/536241. How about it?22:35
verterokRenatoSilva: using the code you pasted prviously, and using f.faultString I get the xml with the error: <?xml version="1.0" encoding="UTF-8"?><error><class>UnicodeEncodeError</class><dict></dict><message>'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)</message></error>22:36
verterokRenatoSilva: and how is the UnicodeError handled?22:37
verterokRenatoSilva: e.g: a client send bad encoded args, what should the client expect in order to hanlde the error?22:37
RenatoSilvaverterok: in main code?22:37
verterokRenatoSilva: in the client side22:37
RenatoSilvaverterok: you mean we must send a Fault?22:38
lamalexHas anyone here given a talk on bzr at a lug or something similar? I'm giving on in two weeks, was wondering what other people talked about in theirs22:38
RenatoSilvaverterok: I'm sorry could you explain better22:38
RenatoSilvaverterok: humm maybe something's wrong with my test22:39
verterokRenatoSilva: look how the error are wrapped in XMLError(e), when client get a xmlrpc Fault with f.faultString containing the xml version of the exception22:39
RenatoSilvaverterok: does Fault objects contain the exception object involved?22:40
verterokRenatoSilva: an xml version of the exception22:40
RenatoSilvaverterok: only?22:40
RenatoSilvaverterok: that's hard, I'd have to parse it...22:40
verterokRenatoSilva: yes, if you look at the definition of XMLError, it's just a way to serialize an exception to xml22:41
RenatoSilvaverterok: I'm thinking of a better way to describe the test...22:42
RenatoSilvaverterok: how about http://pastie.org/53624122:44
verterokRenatoSilva: looks good!, also you can check for an specific regexp in f.faultString22:45
RenatoSilvaverterok: self.assertEquals...22:45
RenatoSilvaverterok: yeah, regex...22:45
verterokRenatoSilva: e.g: self.assertContainsRe(f.faultString, 'UnicodeEncodeError')22:46
RenatoSilvaverterok: when I remove the if isinstance(a, str) test in main code, the test fails, when not it passes ok22:47
verterokRenatoSilva: yay! :)22:47
RenatoSilvaverterok: a minute please...22:52
RenatoSilvaverterok: what now: http://pastie.org/53624122:55
verterokRenatoSilva: looks good, but the test should fail if you get a Fault...that means something else is completely broked22:56
verterokRenatoSilva: so, the previous self.assertEquals(21, f.faultCode) was ok22:56
RenatoSilvaverterok: it does not test the whole method, just the encoding handling :)22:56
RenatoSilvaverterok: test_custom_commands_main_unicode_handling22:57
verterokRenatoSilva: agreed, but "fail early" is good ;)22:57
jampoolie: if you wake up and want to chat, please call my cell phone22:57
RenatoSilvaverterok: not always teh test should fail if you get a Fault22:58
verterokRenatoSilva: in this case, if you are calling an existing command it should fail :)22:58
RenatoSilvaverterok: if you give it a wrong value, you expect a Fault, and therefore everything is ok and the test must pass22:58
verterokRenatoSilva: but it's good for me22:59
RenatoSilvaverterok: this test runs a bzr log Maçã, where Maçã is not a branch, whcih will raise a Bzr error, that's why we can't use assert to fault code23:00
verterokRenatoSilva: so, if you like the later, I'm ok with it23:00
verterokRenatoSilva: ok, good point :)23:00
RenatoSilvaverterok: I'll let you write the other tests custom_commands_main ok? :)23:02
verterokRenatoSilva: sure thing, thanks a lot!23:02
RenatoSilvaverterok: ok I need to eat something, I can't push stuff to lp at work, I'll save this test and push later at home, I'll try to take a look for the other issue (non-ascii URLs) too...23:04
verterokRenatoSilva: ok, thanks again! Bom apetite!23:05
RenatoSilvaverterok: thank you too, see you23:05
jmlspiv, ping23:43
lifelesshai23:44

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