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

jelmerlifeless: hi00:22
pooliehi igc, spiv, https://bugs.edge.launchpad.net/bzr/+bugs?field.tag=udd00:55
pooliehi all00:55
igchi00:59
jmlpoolie, hi01:01
pooliehi there jml!01:01
jmlpoolie, you should unify some accounts: https://www.ohloh.net/search?q=martin+pool01:01
poolieoh ok01:02
pooliei did a bunch of them the other week01:02
pooliejml, when was that stakeholder meeting going to be?01:02
jmlpoolie, 21 June, 1800UTC01:03
poolieok01:03
poolieigc, spiv, https://edge.launchpad.net/bzr/+milestone/2.2.001:37
pooliehttps://bugs.edge.launchpad.net/bzr/+bugs?field.searchtext=&orderby=-number_of_duplicates&search=Search&field.status:list=NEW&field.status:list=INCOMPLETE&field.status:list=CONFIRMED&field.status:list=TRIAGED&field.status:list=INPROGRESS&field.status:list=FIXCOMMITTED&field.importance:list=HIGH&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=01:51
poolieblah01:51
pooliewhich is high priority bugs by number of dupes01:52
spmnew bug. LP needs shortly (cryptic) get request fields for sharing searches. Won't Somebody Think Of The IRC Channels!!!!01:53
spmshorter. even.01:53
AfC1Why does the Ubuntu package "bzr" depend on "bzrtools". Shouldn't that be "recommends" or something?01:58
=== AfC1 is now known as AfC
jelmerAfC: it doesn't depend on bzrtools02:00
jelmerAfC: it's in the Recommends in the original debian package and as far as I can tell that hasn't been changed in ubuntu02:01
AfCOh. Have I done something wrong, then? I just did "apt-get install bzr" on a (very) fresh system and it dragged in bzrtools. I was a bit surprised by that02:01
pooliei think apt is configured to install recommends by default02:02
jelmerAfC: apt-get installs Recommends by default these days02:02
pooliethere's a way to change this-02:02
AfCew02:02
pooliejelmer do you think https://bugs.edge.launchpad.net/bzr/+bug/481748 is now ready to implement based on the list discussion about revision specs in urls?02:02
ubot5Launchpad bug 481748 in bzr-builder "revspecs in recipes should be part of the URL (affected: 1, heat: 6)" [Low,Triaged]02:02
pooliehm02:04
jelmerpoolie: yeah, I think so. Though that'll also need some generic work on supporting extra arguments in URLs02:04
poolieit's a bit hard to find02:04
jelmerAfC: aptitude -R will ignore recommends02:04
jelmerI'm not sure if -R will work for apt-get02:04
AfCjelmer: thanks, will try that02:09
AfCbrb02:09
lifelessjelmer: hi?02:15
lifelessjelmer: I'm back off out in a minute, perhaps more content than ping, and I'll reply when I get back :)02:16
poolieafc, you can set something in /etc if you want this permanently02:17
pooliecheerio lifeless02:17
lifelesshi poolie06:00
lifelesspoolie: I think I have the same hardware issue you had06:00
pooliehi there!06:01
lifelessloose cpu heatsink06:01
poolieah, really?06:01
lifelessmy games machine is powering off frequently06:01
poolieafter yours was posted across the tasman?06:01
lifelessyes06:01
lifeless:(06:01
poolieerk06:01
lifelessit was -very- occasionally doing it first06:01
lifelessand I've inspected the CPU heatsink, and one corner screw is loosish06:01
pooliei'm still waiting for the 2GB DDR3 to come in so i can get it rebuilt06:01
pooliemm mine were too06:01
lifelessits a twist-lock thing06:01
poolieand i just kind of shrugged06:02
poolieright06:02
lifelessbut that one won't lock firmly06:02
poolieexactly06:02
lifelessyeah06:02
lifelessI'm going to take a little time tomorrow06:02
lifelessand drop this in to get addressed06:02
lifelessalso06:02
poolieheh i just found in my office the other day one of the special torx keys to tighten an ia64 heat sink06:02
lifelesswe've put an offer in on a house06:02
poolie_that_ won't come loose :)06:02
pooliecongrats06:02
spivOoh :)06:03
lifelessso I need to do a little run around dance for that with lawyers, inspectors etc06:03
StevenKlifeless: Nice!06:03
pooliemm06:03
poolieso we had a look here into https://bugs.edge.launchpad.net/bzr/+bug/58215706:03
ubot5Launchpad bug 582157 in Bazaar "pull from launchpad is slow (affected: 1, heat: 6)" [High,In progress]06:03
pooliewithout really reproducing it06:03
lifelesspoolie: long story short - I'll be around on basically .au hours tomorow06:03
poolieistm there are two classes of problems here06:03
poolieah you're not working so i won't bother you with it06:04
lifelesspoolie: cool, thank you for pulling on the string06:04
poolieok, np06:04
lifelessno, no bother06:04
lifelessits not like Canonical has traditional boundaries06:04
poolieok so the two classes are: things where we know we're going slower than we should; and secondly things where we are unexpectedly slow06:04
pooliethis bug would be in the second class06:04
pooliewe have some ideas for shots in the dark that are probably useful anyhow, and for improving debuggability/supportability06:05
lifelessI can't wait for steams Linux port.06:05
lifelessone thing I thought of doing06:05
lifelessas a fairly immediately useful thing06:05
poolieafter that, i'm going to put this back to incomplete06:05
lifelesswas to make a per-invocation server side log06:05
pooliemm06:06
poolieso the ideas were06:06
poolie1- use a socketpair to the ssh client, not a pipe06:06
lifelessthat is, $ISO16whatever-$PID.log in ~/.local/bzr/ or some such06:06
poolie- not proven to fix this but a generally good idea; may alleviate poor blocking behaviour06:06
poolieok06:06
pooliethat's good too06:06
lifelessand then get that cherrypicked into LP production, add -Dhpss on the server side and get the logs synced every 5 minutes or so06:07
poolie2- when TERM=spiv, server sends its hpss log over stderr so you can see on the client where it thinks it's spending time06:07
lifelessso we could see chunking, groupcompress stats etc06:07
poolie3- log into that how much cpu time we spend per request06:07
poolieright06:07
pooliethis would be quicker than getting it off lp via losas etc06:07
lifelessI like the idea of getting more data06:07
lifelessI think we should aim for getting more data all the time06:07
poolie4- print a few more stats at the end: number of rpcs, number of ~mtu and <<mtu read() responses06:08
lifelessso that when someone says 'man it was slow this morning', we can see why06:08
lifelessthat doesn't conflict with getting more in an immediate mode like you are describing06:08
poolieright06:08
poolieand i think that's it06:10
lifelessI agree that that bug should be used for 'lp is slower than bzr+ssh in general'06:10
lifelessI'm not sure where 'bzr+ssh around the world is slower than bzr+ssh locally' should go, if anywhere.06:11
lifeless[one theory about bzr+ssh performance is window choking on the tcp links - I was doing tcptrace analysis with spm a couple weeks back on this]06:11
poolieah06:11
pooliethat's possible06:11
lifelesson spm's recommendation I filed an RT ticket to increase the buffer limits on chokecherry or whatever the server is06:12
pooliecrowberry?06:12
lifelessits in the lp queue if you want to dig it up06:12
pooliei wish the machine list page was up to date06:12
lifeless$suitablemachinename06:12
poolieand did you actually find anything from tcptrace?06:12
pooliei was just wondering if there was a machine like that06:12
lifelesswas something a little suspicious, then PPing06:12
lifelessthen looming06:12
lifelessthat said, changing on crowberry live isn't the best place to test theories06:13
poolieusing a socketpair may help there06:13
poolieright06:13
lifelessso we'll want to repurpose tungsten probably06:13
lifelessto be a testbed06:13
pooliesomething tcp related would be compatible with different people observing very different results06:13
lifelessI'm not sure why a socketpair would help06:13
pooliei think that they allow partial reads while a pipe does not06:14
lifelessinteresting06:14
poolieimbw06:14
poolieoh the other possibility is that it's load-related on the server06:15
lifelessholy cow steam installs fast on SSD06:15
lifelessyes, load is a big concern06:15
poolieunder windows?06:15
lifelesscedega06:15
lifelessmore detailed logs would let us ascertain the concurrent bzr processes, and their activity, after the fact06:16
StevenKlifeless: What were your thoughts as bzr's TestCase as a fixture?06:33
lifeless*blink*06:33
lifelessStevenK: what do you mean06:36
StevenKlifeless: Context is your comment on this MP: https://code.edge.launchpad.net/~stevenk/launchpad/poppy-sftp-test-isolation/+merge/2671706:38
=== radoe_ is now known as radoe
vilahi all07:58
spmhey vila!08:03
vilaspm: _o/08:04
thumperwhat is the simplest way to get a time zone aware datetime object for the revision time?08:42
thumpera revision has a timestamp and timezone08:42
thumperis there a simple way?08:42
vilathumper: My memory may be a bit dusty, but I think I recall that the timezone and datetime should be supplied both or none of them08:45
vilathumper: so, short answer: no08:45
thumperis the timestamp of the revision in UTC or local time?08:47
vilagee, let me check, I'd say UTC, but I'm sure there are tests for that08:49
vilathumper: I was wrong, it's in local time (AFAICS)08:58
thumpervila: I think I'm going to agree with your first answer08:58
thumpervila: it is UTC08:58
thumperif I go: datetime.utcfromtimestamp(r.timestamp) it is right08:59
thumperwhere r is a revision object08:59
vilathumper: you checked that with a timezone != 0 ?08:59
thumperI'm not sure why a timezone is also recorded08:59
thumperr.timezone is 4320008:59
thumperhang on09:00
vilait's a shame it's not better documented anyway :-/09:01
* thumper is a little frustrated09:02
thumperit seems to be UTC09:02
thumpereven though a timezone is recorded09:02
vilahmm, so I looked at the wrong place and we may have bugs there..09:06
vilabut looking at how log process that, yes, it seems to be UTC09:07
sivanghi09:56
sivangso, I have 2 branches who have diverged for some unclear reason.09:56
sivangnor merge or dif --old shows anythinig useful,09:56
sivangbesides that my current branch is all extra to the push location - which was not like this before my laptop commit.09:57
sivangHow to solve this?09:57
jelmersivang: have you tried "bzr missing" ?10:03
jelmerthat should tell you the revisions that are present in one branch but missing in the other10:03
mwhudsonvila: when are you arriving in cambridge?10:07
vilamwhudson: tomorrow, around ~14h30 if all goes well10:08
mwhudsonvila: ok10:08
sivangjelmer: I have, it suddenly shows me that all of the commits on the local branch I am working on are extras10:28
parthmmgz: thanks for the bzr-grep patches. i am going through no-match-fast path right now.10:30
jelmersivang: that certainly explains why it's giving you that error10:41
sivangjelmer: right, but how is that that suddenly all those revision are extra?10:49
sivangjelmer: this wasn't so a day before.10:50
sivangjelmer: so it seems the only way to solve this is to rebranch10:55
jelmersivang: Have you perhaps rebase your branch or something like that?10:57
sivangjelmer: not that I know of.11:01
sivangjelmer: This should be explicit enough for me to remember, from a bzr user POV11:01
sivang:)11:01
sivangjelmer: I'm rebranching, this takes too long to resolve with no apparent stuff to merg11:04
sivangjelmer: e.g. merge says there's nothing to do11:04
C-Sls12:55
C-Sparthm: are you there?13:15
parthmC-S: hi13:28
feckserin .bzr/repository/indices I have many duplicate files.  Can I unlink or hard link them all?14:16
feckserand not break anything?14:16
maxbfeckser: This should not be the case15:16
maxbfeckser: I suggest pastebinning the output of 'ls -lR .bzr/repository/' so people here can understand the situation better15:17
fecksermaxb: what should not be the case?  There should not be binary duplicate indices?15:21
maxbIt's pretty unexpected, yes15:21
feckserhttp://www.pastey.net/137418-3kta15:31
maxbfeckser: What? All your concern is about 4 60-byte files?15:54
maxbstop worrying15:54
fecksermaxb: they obscure the duplicate list.15:54
feckserThey make it harder to process removal of duplicates.15:55
maxbhuh?!15:55
feckserWhen I perform a search for duplicates they are always returned.15:55
maxbSo? Why does this bother you?15:55
feckserIt makes the process of finding and removing unwanted duplicates harder15:56
feckserand that was only an example.  There are more in other bzr repositories.15:57
maxbUnless you can find duplicates of substantial size, I feel this is a non-issue16:01
fecksermaxb: it is not just about finding duplicates in bzr repositories, it is about finding them all my files.16:23
fecksersome of the directories under ~ are bzr repositories.16:24
maxbMake your dupefinder ignore .bzr then16:24
feckserinore list16:24
feckserit has no ignore list16:24
maxbPersonally, I see no problem with Bazaar happening to produce identical byte content in a few small files as an implementation detail16:26
feckserI did not say it was a Bazaar problem.  I asked whether I can delete them without harm.16:26
maxbAnswer: no16:26
feckserCan I hard link them without harm?16:27
feckserThe duplicate finder (fdupes) smartly considers multiple links to same file as not duplicates.16:28
=== IslandUsurper is now known as IslandUsurperAFK
=== beuno is now known as beuno-lunch
vilafeckser: don't ever hardlink these files, they contain the signatures (and appear to be empty in your case). If you start signing your commits... they won't be empty anymore18:01
feckservila: so as long as I don't sign, they can be hard linked or removed?18:02
vilafeckser: no, their presence is mandatory18:03
feckservila: hard linked?18:03
vilafeckser: if you hardlink them, you will be doomed the day someone in the project sign a commit18:03
exarkunit really sounds like you want fdupes to have an exclusions list :)18:03
vilafeckser: besides, new ones will be created when the repo is repacked18:04
=== deryck is now known as deryck[lunch]
=== IslandUsurperAFK is now known as IslandUsurper
=== beuno-lunch is now known as beuno
=== deryck[lunch] is now known as deryck
meoblast001hi18:55
meoblast001i'm having more issues with obtaining the directory of a branch18:55
meoblast001this result.branch.base isn't cutting it anymore18:56
meoblast001because "filtered-154314860:///bzr/~mysticgalaxies/citrine-blender/" is not a file path18:56
meoblast001at least not to me it isn't18:56
meoblast001hm, a lot of stuff is undocumented18:57
meoblast001i can't even find Branch.base in the docs18:57
lifelessmeoblast001: branch.base is in the api docs21:09
lifelesspydoc bzrlib.branch21:09
lifeless...21:09
lifeless:ivar base: ...21:09
lifelessmeoblast001: that filtered: prefix is the soft chroot I was telling you about21:09
lifelessmeoblast001: and why taking a suffix is needed, or unwrapping the filtering21:10
lifelessmeoblast001: or, taking a config option from the branch (which I think is preferrable anyway)21:10
lifelessmeoblast001: but you'll know what works best for your needs21:10
meoblast001lifeless: oh, why wasn't it in these docs http://people.canonical.com/~mwh/bzrlibapi/bzrlib.branch.BzrBranch7.html21:17
meoblast001hm, those seem to be personal docs21:17
meoblast001nvm21:17
lifelesshttp://people.canonical.com/~mwh/bzrlibapi/bzrlib.branch.Branch.html21:18
meoblast001ah21:18
lifelesslooks like a bug in pydoctor21:19
meoblast001config option?21:19
lifelessits showing inherited methods21:19
lifelessbut not inherited variables21:19
lifelessattributes I mean21:19
lifelessmeoblast001: config option - setting a key in branch.conf that you can look for21:19
meoblast001lifeless: does Bazaar call plugins with .bzr as the working directory or is there something i need to use to set and get keys in branch.conf?21:21
lifelessbranch.get_config()21:21
meoblast001hm, undocumented21:21
lifelessits a decorator21:21
meoblast001decorator?21:22
lifelessI think21:22
lifelessah no, it is genuinely undoced, I'll fix21:22
meoblast001lifeless: does that return a bzrlbi.config.Config?21:23
meoblast001bzrlib*21:23
lifelessbzrlib.config.BranchConfig21:25
lifelesswhich has get_config, set_config etc apis21:25
meoblast001lifeless: i seem to have a limited array of options21:27
meoblast001i see no get_config or set_config21:27
meoblast001i see get_user_option21:27
meoblast001but not even a set_user_option21:27
lifelesshttp://people.canonical.com/~mwh/bzrlibapi/bzrlib.config.BranchConfig.html21:28
lifelessthere is a set_user_option21:28
lifelessand get_user_option21:28
meoblast001ah, at top21:29
lifelessas well as typed methods for email, signature checking, aliases and so on21:29
meoblast001lifeless: so i want to use those, correct?21:29
lifelessin your plugin you want to use get_user_option21:29
lifelessyou can just set the value in branch.conf with a text editor21:29
meoblast001result.branch.get_config().get_user_option ('blahblahblah')21:29
lifelessyep21:30
meoblast001since the return value of that get_config() is still sort of ambiguous21:30
meoblast001ok, thanks21:30
lifelessgenerally speaking that will return None if the option isn't set21:31
mgzah, a lifeless.21:41
mgzdid you suggest I look at testrepository for my traceback matcher thing?21:41
lifelessyes21:42
lifelesstestrepository.tests.matchers.MatchesException21:42
lifelessneeds a little more suger21:42
lifelesssugar21:42
mgzwill grab and look at.21:43
mgzhm, yeah, that's looking at exc_info21:44
lifelesspossibly it should be built via composed subclass/equality style matches for each element of the tuple21:44
mgzwhich isn't a bad thing in general, but in this case we care about how the strings actually get passed through to the final stream21:44
mgzhaving something that takes an input of extract_tb style tuples might be okay though21:46
meoblast001lifeless: ok, thanks... and i should have the config option set manually?21:48
lifelessyes21:48
TresEquislifeless: how goes the househunt?21:50
lifelessgreat21:50
TresEquiscool21:51
maxbSo, if you have a branch, stacked on another branch, and the base branch has been upgraded to 2a but the stacked one is still 1.x .... can you recover?22:57
lifelessyes22:58
lifelessupgrade the stacked one22:58
james_wlifeless: testr is pretty cool, thanks23:10
lifelessjames_w: thanks!23:10
lifelessI'm glad you like it23:10
james_wlifeless: I'd prefer different output, like a big green light when all the tests pass23:11
lifelessjames_w: I'd be delighted to incorporate patches23:12
lifelessif you wanted to include an arduino control module to drive a traffic light, we could even include that23:12
james_wheh23:12
lifelessdid you see that?23:12
james_wI saw one that did lava lamps23:13
james_wI ported soupmatchers to use the discovery stuff today, makes for a pretty nice setup.23:13
lifelessawesome23:13
lifelesscould you comment on the testtools bug about how that hangs together ?23:13
james_wI find the output on failure a little unpleasant, but can live with it23:14
lifelessor in some fashion write it up? That would be _most_ useful23:14
james_wsure23:14
james_wlifeless: if you could review the merge proposal that would be great23:15
lifelesswhich one ?23:17
lifelessbah23:17
lifelesswhich one ?23:17
james_wlifeless: https://code.edge.launchpad.net/~james-w/subunit/discovery/+merge/2689323:19
lifelessthanks!23:19
lifelessI shall peruse23:19
lifelessjames_w: ah, I see23:20
james_wlifeless: feel free to suggest alternative implementation strategies, it was more of an exploratory hack, but it works :-)23:21
lifelessso TestProgram can take the name of a callable23:21
lifelessor callables23:21
lifelessone way to do discover would be:23:22
lifelessmake a series of callables, assign them to global names23:22
lifelessglobals()[thunkN] = lambda:loader.discover(arg, pattern=options.discover_pattern)23:23
lifelessor something like that23:23
lifelessI don't think what you've done is all that ugly23:23
lifelesshave a play, see what you think23:23
lifelessif you decide that the current stuff is better23:23
lifelessthen lets ditch TestProgram entirely23:23
lifelessso that we don't have two different paths.23:24
lifelessideally though, lets get a fixed TestProgram class in that file, which we can use appropriately, and submit a patch to python to make the stdlib one sufficient.23:24
james_wah, you're saying that TestProgram should be able to take a list of callables, rather than it being a current feature?23:25
lifelessno23:31
lifelessit currently takes a list of names23:31
lifelessand does introspection23:31
lifelesssee the testr.conf for testrepository, for instance23:32
lifeless(testrepository.tests.test_suite)23:32
lifelessoh bleh23:32
lifelessyes23:32
lifelessI'm saying that if we need to change TestProgram to accept callables as well as names23:32
lifelessor some such23:32
lifelessthen we should23:32
lifelessor if we need to separate the concerns more23:32
lifelessthen we should do that23:32
lifelessjames_w: to put it most broadly:23:34
lifeless - subunit.run should be a trivial change to testtools.run23:34
lifeless - testtools.run should be a trivial wrapper for python's TestProgram23:35
lifelessso lets make things better up the stack, and where we have to wait for patches to be accepted / propogate to old versions etc, we should have a subclass that implements what our patch does, with a 'XXX: delete when python2.7 is the oldest version we support', or similar.23:35
james_wright23:37
james_wI don't see TestProgram taking a list of callables right now23:37
lifelessagreed23:37
lifelessit does take a list *of the names of callables*23:37
james_wright23:37
james_wbut serialising the discovered tests back to that seems wrong23:38
lifelessso here's the review - please change subunit to use testtools more, it hasn't needed to for run as it was sufficient in the stdlib23:38
lifelessand do the discovery work in testtools23:38
lifelessand in testtools; either:23:38
lifeless - subclass TestProgram and make it more suitable23:38
lifeless - use a thunk to pass to TestProgram23:39
lifelessjames_w: it wouldn't be serialising23:39
lifelessjames_w: it would just call indirect the call to discover; I don't have a preference though23:39
james_wshould we push --discover in to TestProgram?23:39
lifelessultimately, yes. In fact 2.7 may do that already23:40
lifelessso it may be a 'copy from python' case23:40
lifelessas far as licencing goes23:40
lifelesstesttools is license compatible with python, deliberately.23:40
lifelessso is subunit.23:40
lifelessjust need to update the list of external copyright holders in the docs.23:40
james_wit doesn't yet, I was just checking that23:40
james_woh, hang on23:41
lifelessI'm sure 2.7 supports discovery in some fashion23:41
james_wit does23:41
lifelessCOPYING has the external copyright refs23:41
james_wbut not --discover23:41
james_wit would be "python -m testtools.run discover"23:41
lifelessthats ... interesting23:45
lifelessuhm23:50
lifelessI don't have a strong opinion here, if it works +1. If its maintainable +1. If its the same as python has ended up upstream thats nice; if you think its nicer to be different, thats ok too.23:51
lifelessJust, where we are different, put patches forwardds.23:51
lifelessif you think we should try it differently, and decide later what is nicest, thats fine too - we can put a patch in once we are convinced one way or the other.23:51
lifelessback shortly, popping down to the bank.23:52

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