/srv/irclogs.ubuntu.com/2010/02/20/#bzr.txt

dabreegsterI'm serving a bzr trunk with serve --directory=.  and attempting to connect with bzr-explorer. bzr://host:4155 doesnt work, nor /branchname. "This branch has no working tree. Last revision is 106" -- the revision's correct, so I know it's talking to the server.00:01
lifelessdabreegster: 'does not work' is a little sketchy on details.00:02
dabreegsterThe error message "This branch has no working tree" appears, and I fail to see a file listing00:03
lifelessdoes 'bzr info bzr://localhost/' work ?00:03
dabreegsterProbably not.. format unnamed, echoes the location. not the same as doing bzr info actual_dir00:04
dabreegsterIf I serve over apache, same behavior. Where is my error?00:07
dabreegsterbzr info http://... delivers the right format results, but explorer still refuses to read the files00:08
lifelessI suspect a limitation of explorer00:11
lifelessif bzr info reports format unnamed, thats ok00:11
lifelessas long it says 'branch' in the output00:11
lifelessfile a bug on bzr-explorer I think00:11
dabreegsterAlright00:11
dabreegsterI thought this'd be core behavior, letting other people connect to my branch and work00:11
lifelessI'm a CLI user, no comment ;)00:12
lifelessI'd assume bzr explorer has a 'make a branch' feature though, which is where a remote url would be most useful.00:12
dabreegsterLikewise, but the other person working with me isnt comfortable with ssh00:12
lifelessthe core bzr lib doesn't care whether things are local or remote for accessing history00:12
dabreegsterRight00:12
lifelessspiv: run_direct seems to break plugins :(03:38
lifelessspiv: in that, commands needing run_direct called, won't have it called from plugins that override run_argv_with_aliases03:39
lifelessI wish python has aspects03:39
spivlifeless: :(03:45
lifelessspiv: I'm not sure what you could have done differently, as run_argv called run directly, so there wasn't really an existing 'will not be overridden' place to override03:46
lifelessand run() is hostile to being overriden because it has argv expanded03:46
lifelessI wonder if you can get an lp object by its url03:48
spivlifeless: yeah03:48
spivlifeless: hopefully we won't have reason to change such a fundamental part of the Command interface again any time soon03:49
lifelesswe need to update loom and other plugins soon though :)03:50
lifelesslike, before lucid releases.03:50
* lifeless is still seconded03:50
* lifeless complains about lp apis03:51
lifelesshttps://edge.launchpad.net/+apidoc/#project03:51
lifelesshow, looking just at that, are you meant to figure out that lplib will have a .series attribute on project03:51
wgrantThe two mappings are not documented clearly anywhere. This has been complained about before.03:52
lifelesswgrant: hey03:58
lifelesswgrant: do you know how to do 'project.series['trunk']03:58
wgrantlifeless: project.getSeries('trunk')03:58
lifeless_ugh_03:59
wgrantseries is a sequence.03:59
lifelesslet me repeat, _ugh_03:59
* lifeless files a bug03:59
wgrantSort of.03:59
wgrantBatching dicts is messy.03:59
lifelessmeh04:01
lifelessthats not a very good answer: launchpad.projects["subunit"] works, so either there is an established way, or an established workaround04:02
wgrantIs launchpad.projects iterable?04:03
lifelessdon't know, don't care :)04:03
* lifeless has his user hat firmly on04:03
lifelessalso, while I'm whinging04:03
lifelessgetSeries("trunk") does not work04:03
lifelessbzr: ERROR: exceptions.TypeError: Method must be called with keyword args.04:03
wgrantOh, right, name="trunk"04:04
wgrantHow stupid.04:04
lifelesswell the apidoc suggested name_or_version04:07
lifelessso I tried that next; boom04:07
lifelessbzr: ERROR: exceptions.ValueError: No value for required parameter 'name'04:07
lifelessexcellent, it works.04:07
lifelessonly takes 30 seconds; so it is faster than a web browser.04:07
lifelesswgrant: spiv: thanks for helping and listening :>04:08
wgrantlifeless: You were looking at IDistribution.getSeries. that takes name_or_version.04:08
lifelesswgrant: /sigh04:09
lifelessthere is an implicit bug there about how the api docs are presented04:09
lifelessbut I don't feel like filing 4 bugs in 10 minutes04:09
wgrantI don't think so.04:09
wgrantYou were looking at the wrong part!04:09
lifelesswgrant: it is hard to tell that I am looking at the wrong part04:10
wgrantThis is true.04:10
lifelesswgrant: that is the bug04:10
lifelesswgrant: is there some way to avoid traversing the object graph04:17
wgrantlifeless: lp.load('https://api.launchpad.net/api/whatevertheyhavedecidedtoversionthistoday/bzr/trunk')04:17
wgrantwhatevertheyhavedecidedtoversionthistoday is 'beta' now, but that will change soon.04:18
lifelessgarh04:18
wgrantAlthough it's possible that lp.load takes a relative path now -- try it.04:18
lifelessI have the /bzr/trunk/ bit04:18
lifelesshttps://code.edge.launchpad.net/~lifeless/lptools/upstream/+merge/19764 if you're interested in the thing I made04:18
lifelessself.launchpad._root_uri04:19
wgrantAha.04:20
lifelessprint self.launchpad.load(str(self.launchpad._root_uri) + projectname + '/' + seriesname)04:21
lifelessseems to work04:21
lifelesstime to see if its faster04:21
lifelessyes, halved the time04:22
wgrantThis is unsurprising.04:22
wgrantBut patheitc.04:22
wgrantLike my spelling.04:22
lifelesswgrant: couple more questions if you have a minute04:25
lifelessmilestone.delete is present04:26
lifelessbut what about renames?04:26
lifelessdo I just assign to milestone.name ?04:26
lifelessif so, how do I commit the change?04:26
wgrantlifeless: Attribute changes are saved with obj.lp_save()04:27
lifelessthanks04:28
wgrantI'm not sure how well launchpadlib will like you renaming it, but it will work server-side.04:28
wgrantYou might just have to watch out for a 404 on the client.04:28
wgrantIf lp_save naively tries to refresh it afterwards.04:28
lifelesswgrant: want to hear something funny04:48
wgrantlifeless: Sure.04:50
wgrantI have time while the Launchpad test suite runs :P04:50
lifelessoh, zomg.04:50
lifelesssorry, I assumed milestones were namespaced under series04:51
* lifeless is not thrilled by this04:51
wgrantEveryone thinks that's a bit odd.04:51
lifelesseven if they aren't unique04:52
lifelessit would still be nice to alias them04:52
lifelessah yes04:53
lifelessm.delete() -> 40404:53
lifelesswgrant: offhand, what module does HTTPError come from04:55
wgrantlifeless: Probably httplib204:55
wgrantHm, maybe not.04:55
lifelesslazr.restfulclient.errors.HTTPError04:55
wgrantyeah, that.04:56
lifelessmapped into launchpad.errors for some reason04:56
wgrantProbably for compatibility.04:59
wgrantFrom before lazr.restfulclient existed.04:59
lifelessok, milestone deletion and renaming adding05:04
lifeless.rename handled the change fine05:05
lifeless.delete was the problem05:05
wgrantInteresting.05:05
lifelessfew things support delete05:05
lifelessso I suspect rename has been hit and handled generically05:06
wgrantrename might be handled by just reading back the correct self_link from the returned object.05:06
wgrantProper deletion is implemented in lazr.restful, but not yet lazr.restfulclient.05:06
lifelessfor instance, yes.05:06
wgrant(you can expoes a destructor in the interface, but launchpadlib doesn't know how to call it yet)05:06
lifelessanyhow, I filed bugs on every glitch :)05:06
wgrantGreat.05:07
lifelessbug 524778 is the delete one05:07
ubottuLaunchpad bug 524778 in launchpad "milestone.delete() tries to refresh" [Undecided,New] https://launchpad.net/bugs/52477805:07
* wgrant almost has PPA download counts.05:08
lifelesscool05:09
lifelessis there a hook point in launchpad lib to allow decorating returned objects?05:10
lifelessso that I can fix bugs like 'making a release wants a date for no good reason'05:10
lifeless(locally fix that is)05:10
wgrantDoesn't that require changing the arguments that you pass to newReleasE?05:11
lifelessyes05:12
lifelessI want to decorate the milestone object05:12
lifelesswith one that will take newRelease, and calculate 'now' for me, then pass that to the real milestones newRelease05:13
wgrantOh, right, I was thinking the method was on ProductSeries.05:14
wgrantWhat you really want to do is write two lines of code and get it merged into Launchpad and rolled out to edge on Monday or Tuesday.05:14
wgrantI don't know of a way to decorate returned entries.05:15
lifelesswgrant: that would be nice.05:17
lifelesshowever, I don't have the space on this box05:17
wgrantAh.05:18
lifelessI'm working towards that, but time ;>05:18
lifelessdeleting stuff is harder than it sounds05:18
lifelesshah05:18
lifelesscheck https://edge.launchpad.net/subunit/trunk05:18
lifelessnote the odd time of release05:18
wgrantYeah, that sort of thing happens through the web UI too.05:20
lifelessstill, now I can easily delete subunit/test; create subunit/test; release subunit/test05:21
lifelessoh, no I can't05:21
lifelessbecause its been released. wt05:21
lifelessf05:21
lifelesswell, for now, manual unrelease.05:22
wgrantAlso, staging.05:22
lifelessmeh, that would mean making this code configurable to use staging.05:25
lifelessits much less effort to tickle a losa to undo the sort of trivial mistake I can cause with what I'm doing05:26
wgrantHeh.05:26
lifelesswgrant: any suggestions on this 5 hour thing?05:39
lifelesswgrant: actually nvm for now05:40
wgrantlifeless: datetime.datetime.now()?05:40
lifelesswgrant: already doing05:42
lifelessyuck, useless05:44
wgrantHm?05:44
lifelessthats not utc; gmtime ftw05:44
lifelesshuh 503'd it05:47
wgrantThat's normally a timeout.05:47
lifelessyeah05:52
lifelessso I'm sending05:52
lifeless2010-02-20-05:47:1105:52
lifelessand its creating it 5 hours ago05:52
wgrantAwesome.05:52
wgrantYou're not just getting a cached/slave version in the web UI?05:52
lifelesswhich would be Sat Feb 20 00:53:11 2010 UTC05:53
lifelessso I wonder if its ignoring the timestamp05:53
lifelessfor some _bizarre_ reason05:53
lifelesscould you perhaps have a peek at the code, if you have it handy05:54
wgrantOnce the test suite unlags my system.05:54
lifelessand yes, I'm pretty sure05:54
wgrantSo you're calling Milestone.createProductRelease?05:55
wgrantlifeless: I can't see anything that would be stripping the timestamp.05:57
wgrantThe interface is Datetime, and then it just goes straight into a Storm's SQLObject wrapper __init__, and then into a UtcDateTimeCol.05:57
dOxxxhowdy05:58
lifelesswgrant: weird06:05
lifelesslet me try fresh, /just/ in case06:06
lifelessso, I sent 2010-02-20-06:07:4506:09
lifelesshttps://edge.launchpad.net/subunit/trunk06:09
lifelessit now claims 6 hours ago06:09
lifelesswhich is consistent with it dropping the minutes06:09
lifelesswgrant: ^06:10
wgrantlifeless: Interesting. File it, I guess.06:11
lifelessdoing so :)06:11
zmcgrewi'm getting an odd error from bzr (2.1.0) when I try and create a new repo with "bzr init" -- UnicodeDecodeError: 'ascii' codec can't decode byte 0xb4 in position 26: ordinal not in range(128)06:20
lifelessusually that means that your locale is not setup correctly06:25
lifeless-and-06:26
lifelessyou have a utf8 or whatever encoding you should be using character in the containing path or nearby06:26
zmcgrewencoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.utf8'06:26
naoki_zmcgrew: Can you paste .bzr.log?06:28
zmcgrewhttp://devnull.lunar-linux.org/p/104106:31
zmcgrewis that of any help, naoki_?06:34
naoki_Do you have non utf-8 filename in your home or subdirs?06:50
zmcgrewis there a way to find it if I do?06:51
naoki_$ find . > fsdump06:51
fullermdProbably not the issue, since it's trying to read things in us-ascii.06:52
naoki_And open fsdump with editor supporting utf-806:52
lifelesszmcgrew: run with -Derror, you should get a backtrace06:52
lifelessah yes06:53
naoki_Maybe, bzr-init on $HOME is not a good idea.06:53
naoki_There are many many nonordinal files...06:53
naoki_bzr do sorted(os.listdir(top))06:54
lifelessactually06:54
lifelessdo BZR_PDB=1 bzr init06:54
lifelessthen you can look at what failed with pdb06:54
naoki_os.listdir(unicode) returns list contains unicode filenames if filename can decode with filesystemencoding06:54
naoki_But if can't decode, the filename in os.listdir() is byte string.06:55
zmcgrewI tracked it down the BZR_PDB=106:56
naoki_sorted([u"unicode string", "\x99 non ascii byte string"]) result in UnicodeDecodeError06:56
zmcgrewit's failing when it runs through my music library06:56
zmcgrew'02 - Blind Melon - Dear Ol\xb4 Dad.mp3'06:57
naoki_# BTW, In Python3, os.listdir(unicode) returns list contains all unicode filename. Py3k converts undecodable filename into special unicode.06:58
lifelessnaoki_: yes, its terrible.06:59
lifelessnaoki_: its going to give us lots of grief.06:59
zmcgrewshort of renaming that file and all other files it may encounter, is there a fix?07:02
lifelesszmcgrew: sure07:02
lifelesszmcgrew: bzr init tempdir07:02
lifelessmv tempdir/.bzr .07:02
zmcgrewperfect! I didn't actually want it tracking my music library, I was just going to add my configs07:03
lifelessits a bit of a bug that bzr looks at everything when yo do init07:12
lifelessit doesn't actually add it regardless07:13
rockyjelmer, ping15:47
jelmerrocky: pong15:47
rockyjelmer, ever see something like ...       bzr: ERROR: A Subversion remote access command failed: MERGE of '/svn/cluemapper': 200 OK (https://dev.serverzen.com)15:47
jelmerrocky: I've seen a report about it15:49
jelmerrocky: when are yo ugetting this, while pushing?15:50
rockyjelmer, yep, just pushed a new branch int osvn15:50
jelmerrocky: Did the commit actually end up being pushed?15:50
jelmerif so, I wonder if this is a post-commit hook failing15:50
rockyi do have a post-commit hook15:51
rockyjelmer, although it looks to go away with bzr-svn 1.0.2 (i was using 1.0.1)15:51
jelmercan you reproduce the error with 1.0.1 ?15:51
rockyyes15:52
jelmerit's a pity this is a SSL connection, would be nice to look at the contents of the response that the http server is sending back15:52
rockyyeah15:53
PengEh? You're +o, jelmer?15:55
jelmerrocky: interesting that you can't reproduce with 1.0.215:55
jelmerrocky: if you can at some point it would be interesting to look at the children of that error15:55
Jak_o_Shadowswith bazaar and launchpad, is it possible to just get a copy of the code?22:50
Jak_o_Shadowsi don't want to commit or push anything yet22:50
* Jak_o_Shadows is a git user22:51
lifelessJak_o_Shadows: bzr branch lp:projectname22:51
Jak_o_Shadowsi get22:52
Jak_o_ShadowsYou have not informed bzr of your Launchpad ID, and you must do this to22:52
Jak_o_Shadowswrite to Launchpad or access private data.  See "bzr help launchpad-login".22:52
lifelessyes, but as you said you don't want to push yet22:52
Jak_o_Shadowsall i did wasbzr branch lp:pymeta22:53
Lo-lan-doYou can also do a bzr checkout lightweight, if you don't care about history.22:53
Jak_o_Shadowsi probably don't22:54
Lo-lan-doErr, I meant "bzr checkout --lightweight lp:projectname"22:54
lifelessLo-lan-do: no, don't do tht22:55
lifelessLo-lan-do: it is bad advice because it performs very slowly22:55
lifelessJak_o_Shadows: you did fine. 'ls pymeta' should show you the code you wanted22:55
Lo-lan-doSlower than a full branch?22:55
lifelessLo-lan-do: orders of magnitude slower22:55
lifelessLo-lan-do: only suitable for LAN and local disk usage22:56
Lo-lan-doSomething is rotten in the kingdom of bzrmark…22:56
Jak_o_Shadowsoh, i know waht the problem was22:56
Jak_o_Shadowsi already had a /pymeta folder22:56
Jak_o_Shadowsthanks22:56
meoblast001i'm going to make a Bazaar plugin for Bazaar servers that notifies my IRC bot when commits are pushed... should i use a network socket or does Bazaar/Python contain some better way to accomplish this?23:51
lifelessthere is bzr-dbus23:52
lifelesswhich broadcasts revision changes23:52
meoblast001what does it broadcast them to?23:53
lifelessthere's also existing irc plugins23:53
lifelessmeoblast001: dbus23:53
meoblast001lifeless: where could those existing plugins be found?23:53
mathrickoh cute, bzr-git trunk requires dulwhich "0.5.0", which hasn't been released yet23:54
meoblast001do i want to use the hook post_push23:54
meoblast001this is on the server end, so i'm assuming not23:54
lifelessmeoblast001: you need post_branch_tip_change23:54
meoblast001ok, thanks23:54
meoblast001then i could simply create a VC-Announce plugin for my bot23:55
meoblast001lifeless: is there a post_branch_tip_change_result?23:56
meoblast001oh, there's a list of hooks23:59

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