/srv/irclogs.ubuntu.com/2011/08/08/#bzr.txt

=== medberry is now known as med_out
bignosewhere can I read about the unit test case categorisation done in Bazaar?01:12
bignoseI'm on a team that has noticed a rapid growth in unit test suite size, and are worried about the incentive against adding new tests because they might slow the test suite down01:12
bignoseI recall Bazaar dealing with the issue by marking (decorating?) test cases to run the more resource-intensive ones less often. right?01:13
bignoseis it part of ‘testtools’? we use that and like it01:15
pooliehi bignose01:16
bignosepoolie: howdy01:16
bignosepoolie: still looking for a new Bazaar developer?01:16
bignoseI failed to use the recruiter's website (but can't remember the failure)01:17
pooliei am: http://bit.ly/ubuntu-vcs-job - though as the url suggests the remit is broader than just bzr01:18
pooliehm01:18
poolieif you hit it again please let me know what the failure was01:19
poolieor, perhaps forward it to someone else you know who could be interested01:19
pooliethe app is not all that great but it's an improvement on ad hoc spreadsheets and email01:21
fullermdbzr?  Yeah, it works a lot better for my versioning needs than spreadsheets   :-D01:23
bignosepoolie: did you catch my question re. Bazaar's unit tests of about 15 mins ago?01:23
poolienup, i had a late start01:23
pooliewhat was it?01:23
bignoseI'm on a team that has noticed a rapid growth in unit test suite size, and are worried about the incentive against adding new tests because they might slow the test suite down01:23
bignoseI recall Bazaar dealing with the issue by marking (decorating?) test cases to run the more resource-intensive ones less often. right?01:24
pooliewrong :)01:24
pooliewe talked about that but we've never done it01:24
bignoseokay. how does the Bazaar team deal with a large number of tests in the suite?01:24
pooliewe have made a distinction between benchmarks and tests01:24
pooliewe added selftest --parallel01:24
bignoserun them less often? divide them into different categories somehow? suck it up and wait?01:24
pooliewow01:25
pooliethat's a really kind of interesting question actually; perhaps i should write about it01:25
bignoseheh. “I don't have a solution, but I admire the problem”?01:25
pooliedevelopers can run only a subset of tests, and can reorder them to run the tests guessed most likely to fail first01:25
pooliewe have a partial solution01:25
pooliewe run the tests on every commit01:26
bignoseand the commit fails if the test suite fails?01:26
poolieit takes single-digit minutes to run them all on my 1 year old laptop01:26
pooliein pqm, yes01:26
bignoseright01:26
poolieoh, i should have said every mainline commit01:26
poolieyou can commit locally without running them01:26
bignoseah okay01:26
pooliei think robert has a subunit hack to run tests remotely01:27
lifeless--parallel=ec201:27
lifelessits a bzr plugin01:27
pooliemm, also we just look at the times and occasionally look hard at the slowest tests or group of tests01:27
poolielifeless, does it spin up new machines every time?01:28
lifelessI don't think so01:28
lifelessjml has some reporting tools that take a subunit stream and tell you test timing info01:30
bignoseso the Bazaar solution involves the Patch Queue Manager robot being the only one authorised to commit to trunk01:30
bignoseright?01:30
lifelesswell, it involves all tests run for things to get to trunk; separately we've made that hard to avoid by using a robot to do the landings01:31
bob2i was amused to see 'thelove' still cropping up in places01:32
bignoseokay. so currently we allow commits to trunk by any developer, and a build robot reports failures01:32
bignosebut that's after the commits.01:33
bignosein part this is because the test suite has over time gone from taking hours to run, down to twenty minutes, down to a few minutes.01:33
bignosenow that it's feasible to run the tests without breaking development flow, we're loath to let it get out of hand again.01:34
pooliehow did you accomplish that huge improvement?01:34
RenatoSilvafor those who read my question, it seems nature of line-based merges01:35
bignosemostly by finding horrible inefficiencies01:35
bignosealso by getting the database to run in memory01:35
RenatoSilvaI always have to watch upstream changes so I can see an unusual change will be required in a merge01:36
bignoseduring the same periof the test suite has increased from a few hundred to nearly two thousand and still rising rapidly01:36
bignoseso we don't want to see the suite become slower by the exact behaviour we're trying to encourage: add more test cases01:37
pooliejust keep watching it, i suppose01:37
RenatoSilvafor example upstream refactors some duplicated code into a function, and I have a new function which is using that exact duplicated code. It's not easy to realize you need to replace it with the function call during a merge, unless you have followed all commits since your last sync with upstream01:38
poolieoh, also try to add test suite infrastructure that makes it easy to write expressive tests the right, fast, way01:38
bob2RenatoSilva: yes merges need manual review and tests to be run01:38
bignosepoolie: what is the right, fast, way?01:39
pooliewell, for instance, it's easy for people to test from the ui all the way down across the entire stack01:39
bignoseRenatoSilva: yes, it's deliberate that a merge requires manual action later to commit01:39
RenatoSilvathis is one reason for merging as often as possible01:39
pooliebut, this may be slow01:39
poolieit also may be imprecise compared to the kind of test you can write directly to an api01:40
bignosepoolie: does Bazaar have non-unit tests automated? how are they done?01:40
RenatoSilvabignose: yes, I just thought it was just about the conflicts, but it's not!01:40
bignosepoolie: we've recently had the “unit tests should be small and focussed and shouldn't require instantiating half the entire application” discussion01:41
pooliewe have some whole-stack tests01:41
pooliesome of these are old and crummy and would be a good target for people wanting to make the suite faster01:41
RenatoSilvabignose: you can get a no-conflicts yet broken merge, I didn't know that01:41
bignosepoolie: using what to run them? the ‘unittest’ library doesn't fit very well01:41
bignoseRenatoSilva: worse, you can get a fine merge that fails your automated tests01:42
pooliesome are worthwhile integration tests01:42
pooliein some cases it's a tradeoff against a blackbox test being easier for a new developer to write01:42
pooliebignose, unittest just runs code..01:42
RenatoSilvabignose: well, that's better not worse, no? you'll actually *notice* the merge is broken through these tests01:43
bignoseRenatoSilva: so it's essential to (a) have good unit test coverage, (b) run all the tests every commit – including especially a merge commit.01:43
pooliewe have wrappers to connect it to something that looks like a command line01:43
pooliehttp://doc.bazaar.canonical.com/developers/testing.html#shell-like-tests01:43
bignoseRenatoSilva: heh. if your tests don't notice what you call a “broken merge”, then either you have code which is useless or you have insufficient code coverage of your tests :-)01:44
RenatoSilvabignose: I mean, it's good the tests fails, it's worse if you don't have them or they pass (*that* is silly)01:44
bignosepoolie: thanks01:44
RenatoSilvabignose: or a bug with the tests01:45
* fullermd has highly insufficient code coverage of his tests :p01:45
lifelessbignose: LP has huge-time problems01:46
RenatoSilvabignose: actually I'm not sure how tests would detect the example I presented01:46
lifelessbignose: and there is a social pressure to write less/bigger tests.01:46
* bignose wants to investigate Pester <URL:http://jester.sourceforge.net/> for mutating code to find poorly-tested code branches01:46
RenatoSilvawho tests the test tester01:47
bignoseit's a pity it's Python-using-Java, I'd prefer a pure-Python implementation01:47
lifelessbignose: I'm planning to solve this by more aggressive factoring out of stuff into separate packages, which would be tested independently, and provide a test contract back to the main / integration codebase01:48
lifelessbignose: part of that is moving to a service based design as well: https://dev.launchpad.net/ArchitectureGuide/Services01:48
RenatoSilvabignose: I mean, the tests would be no help in that example! If upstream refactored duplicated code your branch is using in a function foo, the test for foo will still pass!01:50
bignosethanks all, poolie I've pointed our team to <URL:http://doc.bazaar.canonical.com/developers/testing.html> for ideas :-)02:01
RenatoSilvahttp://i.imgur.com/mvBLR.png02:04
RenatoSilvabrb02:07
bignosepoolie: I may have been mistaken about the recruiter's app failing me. either way, my application is now submitted.02:17
pooliegood to hear02:18
=== poolie changed the topic of #bzr to: current topic is: Bazaar version control <http://bazaar.canonical.com> | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: jelmer
=== AuroraBorealis is now known as aurora|starcraft
seb128hey07:50
seb128could somebody help robert_ancell to fix the lightdm vcs?07:50
seb128it's broken in a way similar to bug #77293507:50
ubot5Launchpad bug 772935 in Bazaar "ErrorFromSmartServer: Absent factory for StaticTuple" [High,Confirmed] https://launchpad.net/bugs/77293507:50
wgrantseb128: Does someone have an old branch?07:52
wgrantThe original that it was stacked on has apparently been deleted.07:52
seb128well, people have checkouts07:53
seb128not sure about "old"07:53
wgrantAh, no, the branch is there, I was just looking in the wrong place.07:53
wgrantLet's see.07:53
jammorning all07:53
jamhi wgrant07:53
wgrantseb128: You've not tried fetch-all-records?08:02
wgrantseb128: I just grabbed the broken branch locally, and it works fine.08:02
wgrantOnce I've run fetch-all-records against robert_ancell's branch, that is.08:03
seb128what arguments do you use?08:03
seb128how do you fix the online version?08:03
wgrantseb128: bzr fetch-all-records -d lp:lightdm lp:~robert-ancell/lightdm/trunk08:04
wgrantI don't have privileges to do that, but anyone in lightdm-team can.08:04
wgrant(you'll need to 'bzr branch lp:bzr-repodebug ~/.bazaar/plugins/' first)08:04
wgrantErm.08:05
wgrantThe branch is unbroken now?08:05
seb128how unbroken?08:05
wgranthttp://bazaar.launchpad.net/~lightdm-team/lightdm/trunk/files08:05
wgrantSomeone has fixed it.08:06
wgrantPossibly someone pushed over it or something.08:06
wgrantIt was broken 10 minutes ago...08:06
jamwgrant: it was just broken again? We 'fixed' it last week sometime08:07
jamnot a good sign...08:07
seb128_raise_smart_server_error08:07
seb128    raise errors.ErrorFromSmartServer(error_tuple)08:07
seb128ErrorFromSmartServer: Error received from smart server: ('error', "Absent factory for StaticTuple('language.sgml-20100710032117-i0kdmrwf93qvp5j8-1', 'robert.ancell@gmail.com-20100710034239-8eysy1lpccerztec')")08:07
seb128wgrant, it's still broken for me08:07
jamthat looks ~ like the same failure, so maybe it wasn't actually changed before08:07
seb128should I ask robert to 'bzr fetch-all-records -d lp:lightdm lp:~robert-ancell/lightdm/trunk'08:08
seb128?08:08
wgrantThen why can LP scan it now :/08:08
wgrantAnd why can loggerhead see it...08:08
wgrantUnless it depends on just what files are touched.08:08
jamseb128: I think so. That looks right to me08:08
wgrantseb128: You, or anyone else in ~lightdm-team.08:08
seb128jam: then what? what will that do?08:08
jamwgrant: You probably can't scan it, because it is old history that is missing08:08
wgrantjam: But the last scan worked.08:08
seb128what are the argument doing?08:09
jamseb128: lp:lightdm used to be stacked on ~robert-ancell...08:09
jambut then someone removed stacking, *without* filling in the history08:09
seb128how can that happen?08:09
jamseb128: 'bzr fetch-all-records' fills in the history08:09
wgrantSomeone must have altered branch.conf manually.08:09
jamseb128: I don't really know, but ".bzr/branch/branch.conf' has 'stacking_location = ""'08:09
jamI don't think bzr would set it to an empty string08:09
jamI imagine the original bug was a stacking cycle when they switched lp:lightdm from pointing at ~robert-ancell/... to ~lightdm-team/08:10
wgrantThere wouldn't have been a cycle; the initial ~lightdm-team/ push would have stacked on ~robert-ancell/, then everything afterwards stacked on ~lightdm-team/.08:11
seb128jam, wgrant: that doesn't work it seems08:11
wgrantrobert_ancell: What goes wrong?08:11
robert_ancellwgrant, I get "TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(bzr+ssh://robert-ancell@bazaar.launchpad.net/)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.08:11
robert_ancell"08:11
wgrantjam: And I only know of one API that breaks on transitive stacking.08:11
jamwgrant: if you look at ~robert-ancell, it says it is stacked on ~lightdm-team08:12
wgrant!?08:12
jamah, I take that back08:12
jamit is empty08:12
jamhttp://bazaar.launchpad.net/~robert-ancell/lightdm/trunk/.bzr/branch/branch.conf08:12
wgrantWhat evil is this...08:12
jamIt is supposed to be empty, so no problems there08:12
wgrantOh, I thought you meant it said it was stacked on ~lightdm-team on LP anyway.08:13
wgrantDespite the empty branch.conf.08:13
jamright, no, it is not stacked08:13
wgrantrobert_ancell: What if you try 'bzr fetch-all-records -d lp:lightdm http://bazaar.launchpad.net/~robert-ancell/lightdm/trunk'?08:13
robert_ancellwgrant, running now08:14
jamrobert_ancell: it is possible that fetch-all-records is accidentally sharing a connection, and it is trying to read and write to the same connection08:15
wgrantIt's only ~600KB, so should be fairly fast.08:15
robert_ancellwgrant, same error08:15
wgrantHrmph.08:15
wgrantIndeed, reproducible.08:18
pooliehi jam08:18
wgrantjam: Perhaps it would be best to reset stacking_location in branch.conf, and do a real unstack.08:18
jamwgrant: sounds like something to try08:19
jamI know I used hitchiker to bit-wise copy lp:lightdm and setting the stacking_location allowed me to branch from it08:19
jamhi poolie, hope you're not working too late again :)08:19
pooliehi, no, i'm fine08:19
wgrantjam: I grabbed it over sftp and tried a few things with it, yeah.08:20
seb128_re08:21
seb128_conference internet is not really reliable08:21
seb128_robert_ancell is still getting issues with the new command, not sure his messages went through though08:21
=== seb128_ is now known as seb128
robert_ancelljust back now08:21
wgrantrobert_ancell: With your favourite SFTP client (eg. nautilus), could you edit sftp://robert-ancell@bazaar.launchpad.net/~lightdm-team/lightdm/trunk/.bzr/branch/branch.conf, setting stacking_location to "~robert-ancell/lightdm/trunk" instead of ""?08:22
robert_ancelllast I heard was "wgrant: Hrmph."08:22
wgrant18:15:23 < wgrant> Hrmph.08:22
wgrant18:18:16 < wgrant> Indeed, reproducible.08:22
wgrantIt's unclear how it got set to "" in the first place, but we suspect someone changed it manually.08:24
jampoolie: sometimes, facebook is a bit... odd. I just saw your politics post (via twitter), read it, went back to my page to "like" it, and it was now gone from my page. So I had to track it all the way back to your own page, etc.08:24
jamthe 'ethereal' nature of FB posts is good and bad08:24
poolie huh08:25
pooliei think you don't always get repeatable reads either08:25
poolieof the same page08:25
jamI remember reading that they had tons of knobs to scale with load, which included reducing what is shown, etc.08:25
jamso yeah, I tend to spawn pages that I want to read, and come back to them by closing tabs08:26
jamwhich leads to lost state, I guess08:26
robert_ancellwgrant, ok, modified08:26
wgrantrobert_ancell: I suck. Should be "/~robert-ancell/lightdm/trunk"08:27
wgrantForgot the leading /.08:27
robert_ancellwgrant, ok, fixed08:27
wgrantYet apparently still broken...08:28
wgrantHrm.08:28
wgrantjam: This is odd. It seems to not work on LP.08:31
jamwgrant: I see "/+branch-id/..." eleswhere08:31
wgrantjam: Perhaps the hpss does odd things.08:31
wgrantYeah, but both work.08:31
wgrant+branch-id is only a few months old.08:31
jamwgrant: I believe Launchpad's codehosting rewrites the stacked location to clients.08:31
jamsure=08:31
jamhttp://bazaar.launchpad.net/~bzr-pqm/bzr/2.1/.bzr/branch/branch.conf08:32
jamlp-hosted:///~...08:32
jamah, that is parent location08:32
jam /+branch-id was rewritten for many branches08:32
wgrant7.242  hpss call:   'BzrDir.open_branchV3', '~robert-ancell/lightdm/trunk/'08:32
wgrant7.242               (to bzr+ssh://bazaar.launchpad.net/%2Bbranch/lightdm/)08:32
wgrant7.577     result:   ('branch', 'Bazaar Branch Format 7 (needs bzr 1.6)\n')08:32
jamwell, you certainly need an opening '/~robert-ancell/...'08:33
=== seb128_ is now known as seb128
wgrantHmm?08:33
wgrantWhen branching lp:lightdm, it successfully opens lp:~robert-ancell/lightdm/trunk as the stacked-on branch.08:34
wgrantOooh.08:34
wgrantI wonder.08:34
wgrantCould we need to force LP to scan it?08:34
wgrantIt's possible it won't use the fallback unless the DB knows about it.08:35
wgrantI forget exactly how this works.08:35
jamwgrant: push --overwrite -r -2; push ?08:40
wgrantjam: Probably easiest.08:41
wgrantBut I need to go and organise dinner.08:41
jamwgrant: sure. if you're still here, what is failing, since branching seems to be succeeding08:43
wgrantjam: Sure you didn't accidentally use a shared repo?08:59
jamwgrant: I'm sure I wasn't locally09:00
jamit was a plain recursive cp09:00
wgrantIt works fine locally, yes.09:00
wgrantHmm, broken over HTTP too.09:01
wgrant$ bzr branch http://bazaar.launchpad.net/~lightdm-team/lightdm/trunk09:02
wgrantbzr: ERROR: Revision {StaticTuple('language.sgml-20100710032117-i0kdmrwf93qvp5j8-1', 'robert.ancell@gmail.com-20100710034239-8eysy1lpccerztec')} not present in "<bzrlib.groupcompress.GroupCompressVersionedFiles object at 0x236c810>".09:02
wgrantEr.09:03
wgrantstacked_on_location has reverted to "?09:03
wgrant""09:03
seb128hum, timeouted :-(09:03
seb128wgrant, jam: did you guys figure what is needed?09:03
seb128sorry we keep timeouting there so it's a bit hard to keep track of the discussion09:03
wgrantseb128: THe change that robert_ancell made has apparently been reverted.09:04
wgrantWhich is slightly odd.09:04
robert_ancellwgrant, oh, I reverted it so I could push some changes09:07
wgrantAhh. It prevented you from pushing changes?09:08
wgrantWhat was the error?09:09
wgrantThat's rather unexpected.09:09
robert_ancellwgrant, I wasn't sure, but I thought you'd gone to dinner so I put it back just in case09:09
robert_ancelland then the network dropped out so I didn09:09
robert_ancell't get to push them anyway09:09
wgrantCould you put the real path back and retry the push, if you haven't already pushed?09:10
wgrantThe current suspicion is that forcing Launchpad to rescan it (by pushing) will make everything see the correct path.09:10
wgrantThen we can properly unstack it, and everything will be happy.09:11
robert_ancellwgrant, set back to "/~robert-ancell/lightdm/trunk"09:11
seb128why are those issues happening in the first place? was there a user mistake there?09:12
robert_ancellpushing changes...09:12
wgrantseb128: It looks like someone may have tried to unstack the branch by editing branch.conf directly, but it's not entirely clear.09:12
robert_ancell9kb09:12
robert_ancell...09:12
* robert_ancell smacks head on desk09:12
robert_ancell18kb...09:13
wgrantWe did do a mass-rewrite of stacked_on_locations on LP 2.5 months ago, but nothing since then.09:14
wgrantSo, HTTP now works fine.09:15
wgrantbzr+ssh still does not, but that may be because the push isn't done yet.09:16
robert_ancell34kb09:17
wgrantThat's quite a connection you have there.09:18
jelmer'morning poolie :)09:50
pooliehi thar09:51
pooliei'm off to squash09:51
pooliesquash something or other09:52
jelmerhave fun :)09:52
=== Mkaysi_ is now known as Mkaysi
seb128re10:06
robert_ancellwgrant, ok, managed to push now.  Branch still doesn't work, fetch-all-records has same error10:07
wgrantrobert_ancell: Indeed... over bzr+ssh it's still broken, but HTTP works.10:08
wgrantI am in over my head here; I may leave you to jelmer and jam :)10:08
robert_ancellok10:09
seb128jam, jelmer: hey ;-)10:12
seb128ok, lunch time there10:29
seb128see you later10:29
seb128could somebody try to pick on that issue?10:29
seb128oneiric feature freeze is this week and having the lightdm vcs broken is blocking distro work10:30
jmlbzr branch ubuntu:<package> should resolve binary packages, if it doesn't already13:57
jelmerjml: It doesn't13:58
jelmerapt:<package> does though, but isn't always correct13:59
jmlwhy are there two ways?14:00
jelmerjml: One looks at the Vcs-* field in the source package14:01
jelmerjml: Which is the right thing to do in Debian14:01
jmljelmer: ah14:02
=== med_out is now known as medberry
GRiDhi jelmer. re: merge 70691, what's the UDD importer? also having trouble finding docs on "merge-upstream" ...15:24
jelmerGRiD, "bzr merge-upstream" is a part of the bzr-builddeb plugin15:25
GRiDok15:25
jelmerGRiD, basically, I'm wondering if the tree implementation should do the warning or the command-line layer that lies on top of that15:26
GRiDjelmer, ok i got that much. if it lives in the command-line layer, does that mean the various other (non CLI) clients have to implement it as well?15:27
jelmerGRiD, yes, but I'm not sure if they would want to implement it this way15:27
jelmerGRiD, e.g.I imagine graphical frontends to simply interactively prompt you whether you are sure15:27
GRiDjelmer, yeah that probably makes more sense. if it were done in the tree, how would these other clients handle it now, anyway? they capture warning output?15:28
jelmerGRiD: it varies; I think qbzr captures and displays it, bzr-gtk simply ignores it15:29
GRiDjelmer, hm. ignoring it would surely baffle users.15:30
GRiDjelmer, i think you may be right then. this particular change is probably better off in the front end.15:31
vilawhat happened to pqm ? 40% of the test suite in ~100 mins ?15:59
jelmeryeah, something seems to be slowing it down16:01
vilajelmer: is your XXX at the end of bzrdir.py still valid ?16:12
jelmervila: somewhat; there is probably still some code relying on it16:12
jelmervila: +1 on removing it for 2.5 though, fixing the fallout shouldn't be too bad16:13
=== deryck is now known as deryck[lunch]
cyberixI often start working on something on my laptop by doing bzr init in a folder. Later I decide I want to backup that directory to a shell machine that has ssh.16:32
cyberixWhat is the correct way of doing this?16:32
LeoNerdbzr push sftp://...16:32
cyberixdoes create a directory for me on the remote machine?16:33
LeoNerdOr maybe bzr+ssh if that machine has bzr installed as well16:33
jelmervila: I guess we should also deprecate using some of the class methods on BzrDir, and instead encourage the use of ControlDir16:33
LeoNerdpush --create-prefix   will16:33
vilajelmer: /me nods16:33
vilajelmer: I was mostly wondering if your later refactorings had already addressed the issue16:34
cyberixthank you16:35
=== medberry is now known as med_out
glyphI have a repository in my home directory16:47
glyphit has to say there for legacy reasons16:47
glyphbut I'd really like to make some local branches16:47
glyphmy thought was that I'd do 'bzr branch . .upstream', then hack on some stuff, and still have a handy local copy of upstream to revert to / compare with16:48
glyph(not to mention pull into without merging)16:49
=== beuno is now known as beuno-lunch
glyphbut the branch itself isn't a shared repo, apparently16:49
glyphis there a way to make a directory be _both_ a branch _and_ a shared repo?  if there is, is that a terrible obscene thing to do that I will regret forever?16:49
maxbIt's a bit weird, but not terrible afaik17:16
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
glyphmaxb: ... OK, so how do I do it?18:20
maxbI'm not sure there's an actual UUI18:43
maxb* UI18:44
maxbI tend to cheat and just run "touch .bzr/repository/shared-storage"18:44
glyphmaxb: you do this regularly? :)19:11
glyphmaxb: my concern is that 'bzr init-repo .' raises an exception19:12
maxbI have, in the past, used "rm -fr .bzr/branch && touch .bzr/repository/shared-storage" to destroy a branch and turn it into a shared repository keeping the old branch's revision data, into which I can then rebranch other related branches19:24
maxbbzr init-repo . does error, but I'm not sure there's any logic to it doing so19:24
* jelmer waves19:27
exarkunmaxb: Hiya.  What do you think the chances of hardy packages for bzr betas would be?19:36
exarkunOkay nevermind, I guess I don't care about that.19:54
exarkunSo I'm trying bzr 2.4b520:09
exarkunAs far as I can tell, it is ignoring my already-initialized svn metadata cache20:10
exarkunwhich means it takes about 4 hours to check out what I want to check out20:10
exarkunare there known issues with bzr-svn and bzr 2.4b5?20:11
jelmerexarkun: not in particular20:13
jelmerexarkun, did you perhaps uninstall python-tdb since you last used bzr-svn?20:13
exarkunnope20:13
exarkunCan I provide some other information to help track down the problem?  I have no idea what's going on.20:18
exarkunaccording to python -vv, it found the tdb module20:20
maxb<exarkun> maxb: Hiya.  What do you think the chances of hardy packages for bzr betas would be?20:27
maxbZero. Given bzr 2.4 requires python 2.6, which hardy has not20:27
jelmerexarkun, that might actually be the issue with your bzr-svn cache, too20:33
exarkunWhat might be?20:34
jelmerpython-tdb is only built for a single python version, perhaps your bzr is now using a different python version.20:34
exarkunaccording to python -vv, it found the tdb module20:34
exarkunAlso according to lsof, the tdb sos are in memory20:34
jelmerhmm, no idea in that case - did it say anything about creating the cache directory?20:35
exarkun/usr/lib/libtdb.so.1.2.9 and /usr/lib/pyshared/python2.7/tdb.so and /var/lib/buildbot/.cache/bazaar/svn/bbbe8e31-12d6-0310-92fd-ac37d47ddeeb/cache.tdb is also open20:35
exarkunmaybe the svn metadata cache is a red herring, I dunno20:36
exarkunit's "copying revision 6141/8348" now20:37
exarkun~25 minutes in20:37
exarkunI hoped sticking some extra --verbose flags onto the command would make it report something more interesting, but it seems not20:38
exarkunnothing aside from the progress indicator on stdout, nothing interesting in .bzr.log20:38
jelmerexarkun, ahh20:39
jelmerexarkun, is it just copying more revisions that usually?20:39
jelmerexarkun, because it might be unrelated to the cache20:39
jelmerexarkun, in 2.4b5 bzr automatically fetches all revisions referenced by tags, even if they are not on the mainline20:40
exarkunI don't know how many revisions it usually copies, but it usually completes the checkout in a handful of seconds instead of half an hour or more20:40
exarkunI don't entirely understand how tags get mapped from svn to bzr.  I suppose it could be that.20:41
exarkunis it a one-time thing?  after this completes it will have the extra revisions and not need to repeat this?20:41
jelmerexarkun, yeah20:41
jelmerexarkun, and there's a bug open about making this behaviour optional for 2.4.020:41
exarkun8348 seems like a lot of extra revisions to have been hiding under a tag.  I don't suppose there's any way to learn what revisions it's copying?20:43
exarkunOn a tangent, why is copying revisions out of svn so slow?  Would it be possible to pipeline requests?  Or open multiple connections?  Or is this just as fast as svn servers can go?20:45
jelmerexarkun: svn servers aren't really made for fetching multiple revisions20:46
jelmerthere are some tricks we don't do yet, that will improve the performance, but it's not going to be significantly faster until the server side is improved.20:46
exarkuneyeballing this progress meter, I'd say it's doing about 1 revision every 6 seconds20:47
exarkunit was much faster than this at the beginning of the operation20:48
exarkunis the svn server worse at serving newer revisions than at older revisions?20:48
santagadais there a command line parameter to make bzr run without progress bars and be noninteractive?20:50
jelmerexarkun: it depends on the backend being used; for fsfs I think newer revisions are generally faster20:50
exarkunThis repo is fsfs20:51
santagadabzr help global-options don't show anything interesting and so does a google search for bzr noninteractive20:51
jelmersantagada, I think there is an environment variable20:52
santagadajelmer: probably more than one... but I can't find any docs on this, surely someone is using bzr in semi-batch mode20:52
exarkundone, real    39m31.917s20:52
exarkunsantagada: if you don't have a pty, it doesn't display those things20:53
jelmersantagada, bzr help env-variables20:53
jelmersantagada, looks like BZR_PROGRESS_BAR=none should help20:54
santagadajelmer: mine doesn't have this one20:54
jelmersantagada, bzr's command-line commands are already noninteractive, with the exception of "bzr uncommit"20:54
exarkunjelmer: So the reason the svn cache wasn't updated by that is that "copying revisions" goes from the svn server into the repository?  And the cache probably already had all of those only-on-a-tag revisions?20:55
jelmerexarkun: Are you sure it was updating the cache? It seems like it was just copying a lot of revisions.20:55
jelmerexarkun: when it updates the cache it always updates the cache for the entire repository20:55
exarkunjelmer: no, it didn't update the cache at all.20:55
santagadajelmer: BZR_PROGRESS_BAR is not on my help env-variables20:55
exarkunI don't know what "copying revisions" means20:56
jelmersantagada, what version of bzr do you have?20:56
santagadajelmer: on the server, 2.1.4 ubuntu 10.04 lts20:56
jelmerexarkun: what it says, fetching revisions :) The actual revision contents (revision deltas) that is.20:57
santagadajelmer: so older versions don't have this?20:58
jelmersantagada, it seems it existed before but wasn't documented20:59
=== yofel_ is now known as yofel
exarkunsigh21:32
exarkunhttp://buildbot.twistedmatrix.com/builders/lucid32-py2.6-select/builds/1089/steps/bzr/logs/stdio21:33
exarkun2.4b5 not so hot21:34
* jelmer tries21:34
glyphjelmer: adding bzr-svn to our buildbots has been a small disaster in terms of VCS reliability :-(22:05
lifeless:(22:05
glyphjelmer: is there anything you can recommend that might work around these problems?22:05
glyphsome secret configuration file option that will slow things down but make it more reliable or something?22:05
jelmerglyph: :(22:06
jelmerglyph: It depends on what you need exactly22:07
jelmerglyph: Are there bugs about about the current issues you've run into?22:07
glyphjelmer: apparently not, google's only record of the message in that last error is https://code.launchpad.net/~maxb/bzr-svn/fix-syntaxwarning/+merge/2756422:23
glyphjelmer: it's not so much that we have one specific issue as that we seem to keep finding them22:23
lifelessexarkun: hi22:30
lifelessexarkun: while you are here, I have a question about http://twistedmatrix.com/trac/ticket/285122:30
lifelessactually, let me switch channel22:30
exarkunhttps://bugs.launchpad.net/bzr/+bug/819584 is perhaps the bug about the most recent failure22:48
ubot5Ubuntu bug 819584 in Bazaar "bzr: ERROR: Pack '...' already exists in GCRepositoryPackCollection(CHKInventoryRepository('file:///.../.bzr/repository/'))" [Undecided,Incomplete]22:48
lifelesspoolie should be around in a little bit22:48
lifelessits still early-am for him22:48
nigelbmorning.22:49

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