/srv/irclogs.ubuntu.com/2007/10/22/#bzr.txt

lifelessok, this makes performance tolerable, just fixing this depth-of-query bug00:00
lifelessabentley: a thought, isn't 'is_ancestor()' just 'return self.heads([ancestor, descendant]) == set([descendant])'00:14
abentleyCould be.  Haven't thought of it that way.00:14
lifelessAFAICT it should be equally efficient00:15
abentleyThat seems right to me.00:16
lifelessyah it is00:19
lifelessand it exposes the bug in heads, because making it the same errors on the test that is_ancestor does not access all history00:19
lifeless:)00:19
jauricchiohi all! i have a couple very very basic questions about bzr.01:18
jauricchio(trying to decide between bzr, darcs, and mercurial)01:18
jauricchioFirst of all... does bzr have any support for forests like Mercurial's Forest Extension?01:18
jelmerwork is in progress to add support for nested trees (equivalent of forests as I understand it)01:21
lifelesssuperset of forests, because nested trees recurse indefinately, forests are a single construct01:21
lifelesswhere is LarstiQ anyhow ? :)01:22
jauricchioSecond question... how well does bzr handle binary files?01:22
jauricchio(pdfs, icky-word-processor documents, images... up to about 5mb)01:23
jelmerlifeless: he had problems with his internet connection after his holidays01:23
jelmerlifeless: haven't spoken to him in a couple of weeks01:24
igcbbiab01:26
lifelessjauricchio: binaries are fine01:26
lifelessjauricchio: they can be a bit slow to diff; but other than that we just preserve them as-is.01:26
jauricchiolifeless: Does bzr diff magically avoid unchanged files?01:28
jelmerlifeless, did you see my discussion with aaron on dirstate-with-subtree? do you think now be a good moment to encourage packs-with-subtree over packs-without-subtree?01:28
lifelessjelmer: no, I didn't.01:28
lifelessjauricchio: what do you mean? If you mean, do unchanged binaries make 'bzr st' and 'bzr diff' slow - no they don't01:29
jauricchioYeah that was the question.01:29
jauricchioSo slowness is only incurred when the file is actually changed01:30
jauricchiothat's good :)01:30
lifelessif you touch the file we sha it01:30
lifelessif the sha is different we will diff it01:30
lifeless(roughly). There are some tweaks in different circumstances.01:30
jauricchiomakes sense.01:30
Vantage13Workflow question.  Let's say I'm a developer working on multiple features for a release of a projects.  So I make a branch of our most recent version to record my changes that will go into the next release.  Now let's say I've got 5 features I'm adding.  I get them done, commit them all locally, but then let's say a feature gets pulled.  Is there a way to identify code belonging to a feature so that it can be easily added/removed without creating a b01:31
lifelessVantage13: your sentence is being truncated01:32
lifelessVantage13: 'without creating a b01:32
lifeless10:32 < l01:33
lifeless'01:33
Vantage13without creating a branch for every feature?01:33
Vantage13or how do people usually handle this scenario?01:35
jauricchioI think you wanted to create a branch for every feature. Branches are cheap. :)01:35
Vantage13jauricchio: branches are, but working trees are not.  Currently our code base is about 2GB, so 5 working trees would be 10GB of space per developer...01:36
jauricchioHm... fair enough. (That's a *lot* of code, man...)01:36
jauricchioDarcs would call this a "spontaneous branch". Prefix your commit messages with something, and you can work with 'all patches prefixed with (matching) some text'01:37
lifelessVantage13: there is a 'switch' command in bzrtools01:38
Vantage13the one thing I thought might deal with this would be using a shared repo and doing a bzr switch for each feature.  So switch to main version, branch feature1, commit, switch back to main version, branch feature2, commit, switch back, etc.  Then merge them all later...01:38
lifelessVantage13: this lets you transform a working tree from branch A to branch B quite cheaply01:39
Vantage13lifeless: exactly what I was thinking01:39
Vantage13lifeless: does what I described sound right?01:39
lifelessyup01:41
Vantage13lifeless: Is there a way to 'switch' and create a branch at the same time?  e.g. switch back to main after feature1, then create a branch for feature2 in the same working tree, then switch to it? (to avoid having to create a second working tree at all)01:42
lifelessVantage13: why would you create a second working tree?01:47
Vantage13lifeless: I wouldn't want to.  I'd just want to create a branch and switch to it from my current working tree (which would be on the main branch)01:48
Vantage13lifeless: I'm wondering if I can do that without creating another working tree01:48
lifelessVantage13: 'bzr branch main new-branch && bzr switch new-branch'01:48
lifelesswon't create a working tree unless your repository is configured to make a working tree01:48
lifelessso just disable creating working trees01:49
Vantage13lifeless: ah...01:49
jauricchioSo, another question. Suppose I have a directory within a repo. I'd like to pull it out of the repo with all changes applicable to it, and make a new repo containing only it. With leading pathnames removed.01:51
jauricchioThat is, projects is my repo. I want to take projects/foo/baz and make a new repo containing the contents of baz with all history.01:52
jauricchioWith baz as the top level of the new repo01:52
Pengjauricchio: I think "hg transplant" could do that (or at least do the reverse, moving baz into project/foo), but I'm not sure if it preserves cset IDs.02:00
Pengjauricchio: I don't know of a way for bzr.02:00
jauricchioIt's okay if cset IDs are lost02:01
jauricchioMy use case is, I've been working on this little baby project that didn't deserve its own repo. Then I decide it does and I want to share it with the world.02:01
lifelessPeng: answering questions here with 'hg can do X' isn't exactly helpful.02:04
lifelessjauricchio: 'bzr split' can do that02:04
jauricchiolifeless: /me checks docs02:05
Penglifeless: Heh, sorry. :P02:05
lifelessPeng: You're more than welcome to say things like 'packs at 10% faster for me, but you're still 40% slower'. Thats extremely useful to know.02:05
jauricchiolifeless: 'split' not found in the user reference at doc.bazaar-vcs.org02:06
lifelessjauricchio: 'bzr help split'.02:06
jauricchionot installed currently :\02:06
lifelessah. Well then. We have the feature.02:06
jauricchio:) cool02:06
lifelessand naturally we're expanding on it and improving it as time goes by.02:07
jauricchioof course02:07
jauricchiook, thanks for your help lifeless, Peng, and jelmer. bzr looks to be what i need!02:09
jauricchiobye02:09
PengCool.02:09
lifelessPeng: speaking of which, are you still dogfooding packs from time to time ?02:10
lifelessjelmer: so do you mean bug 131667 ?02:12
ubotuLaunchpad bug 131667 in bzr "--dirstate-with-subtree is documented in the man page" [Medium,Fix committed] https://launchpad.net/bugs/13166702:12
jelmeryes02:12
lifelessI would love someone to sit down and take on the patch02:13
lifelesslarstiq was working on it but hes disappeared02:13
lifelessthe patch to make nested-by-reference trees robust02:13
poolielifeless, hi, so to check that plan:02:13
lifelessthis is what is needed to make -subtrees a default format and trigger the format bump02:13
poolie- make new knit repo containing bzr.dev02:13
poolie- reconcile that.02:13
poolie- make a new pack repo02:13
poolie- pull bzr.dev from the first repo02:14
poolie- pull packs branch02:14
lifeless(or bzr upgrade --experimental in the reconciled repo)02:14
lifelessbut yes, thats the right list02:14
Penglifeless: I keep a copy of bzr.dev and repository in pack format and pull and diff frequently, but that's the extent of my dogfooding.02:19
lifelessok02:20
PengFWIW, I never reconciled it.02:20
lifelessdid you try the C sequence matcher thing ?02:20
lifelesswhich speeds up diff, and would AIUI make your home dir versioning tolerable or even pleasant02:20
Penglifeless: I switched it over to hg before I found out about that, and I've never gotten around to trying it.02:22
PengHmm. I could right now, but Firefox is hogging so much RAM it wouldn't be remotely accurate.02:22
lifelessthats fine, don't worry about it02:22
PengMozilla should pay me for all the RAM upgrades I have to do for Firefox.02:25
lifelessless tabs++ :)02:25
PengYeah.02:25
PengLess Flash++ too.02:25
PengThat's what's really killing it.02:25
lifelesspoolie: how is it going ?02:37
pooliereconciling again02:37
pooliei may skip that as i'm pretty sure i did that in the same repo on friday02:37
* Peng sighs.02:42
poolieswitching terminals02:42
PengFirefox froze right before I was going to shut it down.02:43
lifeless:(02:45
PengHmm. I should probably just cp instead of using "bzr branch".02:51
lifelessabentley: you're bouncing03:00
abentleyYes.  Sorry.03:08
abentleyUpdated to gutsy, and it's giving me probs.03:08
lifeless:(03:10
PengUh-ohs.03:12
PengBranching the pack version of my homedir crashed with a KnitCorrupt error.03:12
PengBut I think that branch might be older than the most recent pack format.03:12
lifelessyes, you probably have annotated knit data in it03:13
PengYeah.03:13
PengYeah, I think it might be like the very first revision it's saying is corrupt.03:13
PengOr, the first file.03:14
* Peng watches the progress bar.03:20
=== kiko-fud is now known as kiko-zzz
PengA 700 MB .pack file. That scares me.03:24
PengIt was 743 MB with annotations, now it's 712.03:25
lifelessthats cause you have a lot of data with lots of changes03:29
PengWell yeah. But I'm afraid of it.03:30
ubotuNew bug: #155629 in bzr "newly-created dirstate file appears blank on curlftpfs filesystem" [Undecided,New] https://launchpad.net/bugs/15562903:30
PengOne little bit out of 6 billion could be wrong.03:31
lifelessno different to have many 10M files03:32
Penglifeless: With 0.91 with Pyrex and dirstate, real time is 3m9.784s, user is 2m56.132s, sys is 0m10.781s. That might be like a 20 or 30 second improvement.03:32
lifelessPeng: how many files are there there ?03:33
Penglifeless: Uhh. A lot.03:33
lifelessPeng: and are you committing a merge, or just a regular commit ?03:33
lifelessPeng: and finally, had you just added new files before the commit ?03:34
Penglifeless: What command tells me the total number of files?03:35
lifelessbzr inventory | wc -l03:35
Penglifeless: 4695.03:36
Penglifeless: In that commit, 39 files changed. Not a merge, and no new files.03:36
lifelesshad you run bzr add?03:36
lifeless(bzr add in 0.91 destroys the stat cache)03:37
Penglifeless: Nope.03:37
Penglifeless: uncommit, maybe a status or two, then commit.03:37
lifelessthanks03:37
lifelessthats very slow compared to my current results with packs, which is encouraging03:38
PengI'm testing packs right now.03:38
PengBTW, hg is like 30 seconds. ;P03:39
lifelessyah03:39
PengAlso, I caught it at up to ~355 MB of RAM, and I bet it was bigger at other times.03:40
PengWow.03:40
Pengreal    1m44.768s03:41
Penguser    1m37.652s03:41
Pengsys     0m5.437s03:41
PengPacks *are* faster.03:41
PengThe new .pack file is 726 KB.03:41
lifelesshmmm, not that much faster03:42
lifelessI'd love it if you could repeat that03:42
PengJust run it again?03:42
lifelesswith --lsprof-file foo.callgrind03:42
lifelessthen gzip the callgrind file and mail it to me03:42
PengGack.03:42
lifelessthis won't give me anything private03:43
lifelessjust the callgraph and timings03:43
lifelessso I can see where the slowness is coming from03:43
PengI know.03:43
PengI said "Gack." because I had just started running it again.03:43
lifeless;)03:43
lifelessjust ctrl-C it03:44
PengI did.03:44
PengIt'll be done shortly.03:44
lifelessthanks!03:45
Pengreal    2m0.958s03:45
Penguser    1m38.290s03:45
Pengsys     0m22.328s03:45
PengHuh.03:45
PengI would've expected user time to be higher due to lsprof.03:45
* Peng sighs.03:47
ubotuNew bug: #155632 in bzr "KeyError: 77 in pycurl_errors.errorcode" [Undecided,New] https://launchpad.net/bugs/15563203:51
lifelesspoolie: how goes it ?03:53
Penglifeless: What's your email address?03:53
lifelessrobert at ubuntu03:59
PengBlaah, you have more email addresses than I do.04:01
Pengubuntu.com?04:01
lifelessyah04:01
poolielifeless, i think that's the same error i saw on friday04:01
poolieso04:02
PengWasn't it @canonical.com two months ago?04:02
lifelessyes04:03
lifelessits there too04:03
lifelessyou coulda use the prior address :)04:03
PengI'll send it in a second.04:06
PengSent.04:09
lifelessPeng: thanks04:15
lifelessPeng: 67% is in get_content_maps04:17
lifelessPeng: which is building up the copy of the the text to diff against04:17
lifeless10% in IO04:17
lifelesswe can't reduce that much04:17
lifelessactually, 5%04:17
lifeless5% parsing the deltas from disk04:18
lifelessohfuckme04:19
lifelessPeng: I can see an easy 17% win04:19
lifelesswe're memory copying stuff we don't need to, because of a general 'get many versions' function04:19
lifelessPeng: if you look at bzrlib/knit.py04:20
lifelessPeng: the function get_content_maps04:20
ubotuNew bug: #155637 in bzr "patch confict should be an internal error" [Low,Confirmed] https://launchpad.net/bugs/15563704:20
lifelesssee the coyp() calls in there - there are two I think. Guard them with e.g. 'if multiple_versions:'04:20
lifelessand at the top of the function do04:21
lifelessmultiple_versions = 1 != len(version_ids)04:21
lifelessthis should save 17% trivially.04:21
Penglifeless: Cool.04:24
PengHold on.04:24
Penglifeless: _get_content_maps?04:25
lifelessyah04:26
lifelessline 1000 in my knit.py04:26
PengExactly 1000?04:27
PengAnyway, done.04:27
Penglifeless: Want a new callgrind file?04:28
lifelessnah, just run it without callgrind and see if it helps04:30
PengWell, I ran it with callgrind and it helped.04:30
PengUhm.04:30
Peng56 seconds vs. 1m38s.04:30
lifelessgreat04:31
PengYeah.04:31
lifelesstheres another win of the same size in _apply_delta04:31
lifelessin the same file04:31
lifelesswill be a little more tricky to fix that without leading to bugs04:31
lifelessI'll do both today though04:31
PengI helped make Bazaar faster. Cool.04:32
lifelessyup04:33
PengWell, I'd be happy to re-run it in the future if you ever want me to.04:36
lifelesstomorrow probably ;)04:36
lifelessand thanks04:36
PengHeh, okay.04:37
* ig1 food05:15
poolielifeless, ping?05:52
lifelesshi05:53
ig1so lifeless, 3 patches today (so far) - what order do you want them reviewed in if any?05:54
lifelessdon't care about order05:55
lifelessjust about completeness05:55
lifelessFIFO is fine05:55
lifelessand probably best05:55
ig1ok - I'll start with the tests one now05:55
lifelessoh that one can be ignored05:55
lifelessleave it till later05:55
ig1that's why I asked :-)05:56
ig1graph.heads then05:56
=== AnMaster_ is now known as AnMaster
pooliei've turned my check-knits branch into a plugin06:36
poolieit's faster than a full check (because it does less)06:37
poolieit may be useful06:37
lifelessig1: how is the review going ?06:40
ig1getting there ...06:41
ig1haven't looked at the graph code before06:41
ig1you have an import pdb but onothing else stands out so far06:41
ig1s/onothing/nothing/06:42
lifelessdo I? oh foo06:42
ig1in test_graph.py06:42
ig1also 2 lines immediately before run_heads_break_deeper ...06:43
ig1otherwise tests look good06:43
lifelessis that 'merge it'07:01
lifelessor 'I'm still thinking' ? :)07:01
ig1I'm still thinking - need another 20-30 minutes I think07:02
lifelessig1: well, next patch is up07:13
ig1ok - not thru yet to me - will check again soon07:14
lifelessthere it goes07:18
lifelessPeng: 285107:20
lifelessPeng: thats the revno in repository with a bugfix to remove all three list-copies.07:20
lifelessPeng: it will also, incidentally, reduce memory pressure, but probably not much07:22
poolie_bug 15428307:58
ubotuLaunchpad bug 154283 in bzr "indexerror in Knit._get_components_positions pulling in pack repo" [Undecided,New] https://launchpad.net/bugs/15428307:58
poolie_join-branches.txt-20050309044946-f635037a889c0388^@robertc@robertcollins.net-20050919060519-f582f62146b0b458^@^@1747020^M1746789^I1747020^@ 42658896 124$08:12
fullermdTook the words right outta my mouth.08:12
Lo-lan-doYou have strange things in your mouth.08:15
fullermdIt's like that thing with the old lady who swallowed a fly.08:18
ig1lifeless: that review finally mailed - few tweaks only as best I can see08:19
Penglifeless: Holy crap. With callgrind, user time went from 56 seconds last time to 19. Real time was still at 56 seconds, but Firefox is open now so everything is probably laggier. Sys time went from 23s to 21s.08:27
Penglifeless: Trying again, real time is down 10s and the others are down 1 or 2.08:28
lifelessig1: yup, copacetic08:36
lifelessig1: will do tomorrow.08:36
lifelessPeng: so is this good ?08:36
ig1lifeless:quikc Q08:37
ig1what's the idea behind the version_id param in the apply_delta API?08:37
lifelessPeng: what is real time sitting at without callgrind ?08:37
lifelessig1: KnitContent objects have a version08:37
=== pcapriotti_ is now known as pcapriotti
lifelessig1: Plain ones use this for all lines; Annotated ones carry it per-line08:38
lifelessso the parameter is to totally transform the content object from state to state08:38
PengHold on. I'm brushing my teeth.08:38
ig1and self_version_id only gets set for one, not the other, is therefore by design?08:39
lifelessyes08:39
ig1s/self_/self._/08:39
ig1ok - thanks08:39
mdkeI'm still playing with svn-import. Does anyone know why I'd get a "server certificate verification failed" on one gutsy computer and not on another, connecting to https://docteam.ubuntu.com/repos?08:40
lifelesscheck for /etc/ssl/ca-certificates.crt08:41
lifelessif its missing run update-ca-certificates08:41
Pengreal    0m22.511s08:41
Penguser    0m17.378s08:41
Pengsys     0m2.758s08:41
Penglifeless: ^08:41
lifelessPeng: how does this compare to hg ?08:41
PengUmm.08:41
PengVery good.08:42
Pengwell?08:42
lifelessthanks :)08:42
mdkelifeless: it was present in /etc/ssl/certs/08:42
mdkeI ran the update anyway, no change08:42
PengLast hg one I did was:08:42
Pengreal    0m45.080s08:42
Penguser    0m13.716s08:42
Pengsys     0m2.316s08:42
lifelessmdke: sorry yes thats the right place. Other than that I have no suggestions.08:42
mdkeok, thanks anyway08:42
lifelessPeng: hmm, still need to shave off lots of user time. But I knew that08:43
mdkelifeless: one was executed over ssh, could that make a difference?08:43
PengBzr and hg aren't committing exactly the same data.08:43
PengSo it's not an entirely fair comparison.08:43
lifelessPeng: bzr's committing less?08:43
PengI don't know.08:43
lifelessah08:43
lifelessso its roughly the same but not identical ?08:43
PengBzr is using two-month-old data. Since then, my IRC logs have grown larger, but I've also switched from Opera to Firefox.08:43
PengHm.08:44
PengI think hg is about the same as it was two months ago. It used to take about 30 seconds, but I'm not sure if that was real or user time.08:44
PengIf it was real time, the extra time is just due to Firefox hogging RAM.08:44
lifelessgnight all.08:47
PengGood night.08:47
Penglifeless: BTW, bzr is probably committing more changes. Bzr is doing 12 hours of changes while hg is doing 1.09:02
=== Mez is now known as Mez|Away
GaryvdMIs it possible to pull the bzr.dev branch over the bzr protocal09:10
GaryvdMAll the docs point to http urls09:10
poolie_GaryvdM, you should be able to get it from09:18
poolie_bzr+ssh://bazaar.launchpad.net/~bzr/bzr/trunk09:18
poolie_you need to have a launchpad account09:18
poolie_we'll offer public bzr:// soon09:18
PengNot to be a troll, but is bzr any less slow than http?09:20
Lo-lan-doI think there are fewer round-trips, so probably.09:21
PengIt takes a very long time to pull changes to bzr.dev.09:22
PengOf course, the one time I time it, there aren't any new changes, and it takes 3 seconds.09:22
* Peng wanders off.09:23
poolie_ok so it's09:29
poolie_KnitVersionedFile(file:///home/mbp/newbzr/dest2/.bzr/repository/text%3ATestUtil.py-20050824080200-5f70140a2d938694)09:29
poolie_bzr: ERROR: Revision {robertc@robertcollins.net-20050919044328-0205c679f3051340} not present in "<bzrlib.knit.KnitGraphIndex object at 0x8ef5e4c>".09:30
indravenihi all09:34
indravenii would like to know, whether there are any tools for viewing the bazaar content09:34
indravenilike for subversion we have, trac, websvn etc09:34
KinnisonMorning09:36
indravenii would like to know, whether there are any tools for viewing the bazaar content09:42
indravenilike for subversion we have, trac, websvn etc09:42
poolie_indraveni, yes, look at loggerhead09:47
Pengindraveni: There's also a bzr plugin for Trac.09:53
GaryvdMPeng: acording to http://weblogs.mozillazine.org/jst/archives/2007/02/bzr_and_different_network_prot.html bzr is faster than http09:55
GaryvdMI'm going to test it now09:55
GaryvdMI live in South Africa - We have slow internet connections.09:55
GaryvdMbzr+ssh  = 12 sec10:00
ig1night all10:00
GaryvdMhttp = 8.910:00
GaryvdMno changes in the tree on either10:00
lifelessPeng: bzr can be faster than http; packs help with this, on knits latency sucks arse.10:02
PengWhat I wonder is how efficient bzr's smart server is, espcially compared to hg. Hg only uses a smart server, so it must have had a lot of tweaking. With bzr, the smart server is only starting to catch on.10:03
PengThere is that hpss stuff.10:04
=== Mez|Away is now known as Mez
ubotuNew bug: #155730 in bzr "reconcile doesn't adjust knit index references to otherwise-unreferenced file revisions" [Critical,Confirmed] https://launchpad.net/bugs/15573011:06
GaryvdMOn http://bazaar-vcs.org/BzrDevelopment , the Release revids have not been updated for a while11:45
GaryvdMHow can I find out what they are for newer releases?11:45
=== Mez is now known as Mez|Away
AfCGaryvdM: I was going to guess `bzr tags`, but somewhat astonishingly there aren't tags for releases in their 'bzr.dev' branch12:00
fullermdSorry, those revids are only available to Members of the Brotherhood.12:00
=== Mez|Away is now known as Mez
GaryvdMWho does the releases?12:01
=== kiko-zzz is now known as kiko
fullermdWell, the releases don't come from bzr.dev.  They have their own branches.12:01
fullermd(and bzr.dev can't have tags anyway, in its current form)12:01
jskhi all: does anyone know a good method for doing "bzr pull" over an unreliable connection?12:02
jskall: my connection only lasts a maximum of 12 minutes at a time, but the pull operation takes longer (because it's a big tree).12:02
jskall: I'm using bzr+ssh://.......12:03
jskall: I'm open to using a workaround, such as downloading the tree via HTTP, in multiple chunks.12:03
fullermdWell, pull saves what it gets, in some granularity.  So as long as it takes you less'n 12 minutes to get a single "hunk" (probably the changes or a subset of the changes to one file, with knits), each pull should move forward.12:04
fullermdI tend to think "kill your network admin in his sleep" is a more satisfying solution, though.12:04
jskfullermd: I'd like to do that to my ISP.12:05
mwhudsoni think jsk would quite like to take that approach12:05
jsk:)12:05
* jsk has been plotting revenge for some days now12:05
fullermdOh, ISP's even easier.  You know they're all in one office   ;)12:05
fullermdTake off and nuke the site from orbit.  It's the only way to be sure.12:05
jskfullermd: :)12:05
AfCfullermd: (bzr.dev is not tags compatible? You guys are weird)12:05
fullermdAfC: bzr.dev is still branch5.  I think some Linux distros are still shipping 0.11, so if we updated it they couldn't access it.12:06
AfCOh12:07
fullermdIt's probably about time that it would be "OK" to make that switch these days.12:07
PengWell, the default format has changed to dirstate-tags.12:07
* AfC refrains from commenting on distros that have such lame upgrade policies, although he notes down a reminder to rant about it again when giving his next conference keynote.12:07
fullermdHasn't been any big pressure to, though.  I wouldn't be too surprised if it stayed as-is until there's been a couple releases with packs, then it gets moved there.12:07
mwhudsonlike, uh, dapper ?12:08
jskfullermd: So you suggest the following steps:12:08
jsk1. run "bzr pull --remember bzr+ssh://..."12:08
jsk2. <connection drops>12:08
jsk3. <connection returns>12:08
jsk4. do a ^C to kill the "bzr pull"12:08
jsk5. rerun "bzr pull --remember bzr+ssh://..."12:08
jsk6. repeat 2 onwards...12:08
jskwhere "..." represents the full path12:08
fullermdWell, you'd only need the --remember once.  But yeah, that's the best I've got.12:08
AfCThe subsequent commands won't need --remember12:08
jskfullermd: cool. I'll give it a try. thanks :)12:08
* jsk resumes his plotting...12:08
AfCfullermd: you know, that's not the sort of environment that I would have thought about, but I am curious how the packs modality will work in the face of partial transfers.12:10
fullermdWell, with a buttload fewer round trips, there's a good chance packs will get done sufficiently quicker that you wouldn't have to many mid-flight disconnects.12:11
fullermdThe individual hunks to download and save would probably be bigger, so I s'pose that with a sufficiently high disconnect rate and low bandwidth, you might get stuck never making any progress with packs, where knits would inch along.  But that's pretty pathological.12:11
jsk(about to be disconnected)12:12
fullermdIn that case, the answer is probably "keep trying to pull until the smart server gets sufficiently smart and the server upgrades"   ;)12:13
fullermd'course, with sufficiently pathological conditions, that solution probably won't work either.12:14
fullermdYour hunks would just be too large to move in the bandwidth/time available.12:14
VSpikeHi guys ... just about to try and migrate from Perforce to bzr, and wanted to double check I'm doing the right thing, so may run some things by you all in the next few minutes12:20
VSpikeAt the moment, I just need to share development between two of my machines, but eventually I may need to open this up to some of the company's clients, so the "Decentralized with human gatekeeper" model will come into play12:23
VSpikeTo start, I'm going to pull my last stable version out of perforce and check it in as a head revision, and then the latest code in my two development branches, and check those in as branches to the head revision.  I don't need to pull across all the perforce history (which is good, because I probably can't)12:25
VSpikeI was just trying to figure out if I should have a shared repository with trees or without12:28
VSpikeI guess because the desktop machine is both my fileserver and workstation, with trees makes sense... does that seem reasonable?12:28
GaryvdMYes12:28
fullermdWell, on the one hand, it doesn't matter.  You can change it around trivially later.12:28
VSpikefullermd: thanks, that's useful to know12:29
fullermdBut yah, going with trees now would be the easy thing to do (unless the trees are so big it'll cause issues), since you can blow them away and disable them by default later.12:29
PengVSpike: You might be able to convert from p4 to bzr without losing history...12:29
VSpikePeng: I quite like the idea of a clean start - then I can lay out the repository in a more logical way than the rather haphazard one I have in perforce12:30
=== AfC is now known as AfC|dinner
GaryvdMIf I have a branch object, how do get the bzrdir object?12:31
GaryvdMAh - branch.base12:33
=== jsk__ is now known as jsk
mwhudsonbranch.bzrdir, isn't it?12:35
GaryvdMmwhudson: yes12:39
GaryvdMthanks12:40
jsk_fullermd: thanks for your help earlier. I think I'll have to try a different method. My connection windows are 12 minutes long, and this doesn't seem sufficient for a "bzr pull" to get to the stage where it has committed anything to disk (the contents of .bzr do not change during this time, despite the network traffic and RAM usage increasing).12:53
jsk_fullermd: after a full 11 minutes, the "bzr pull" is still at Pull Phase 0/212:54
fullermdBleh.12:54
fullermdWell, that part doesn't mean too much by itself.  I think 90% of pull's time is in phase 0 (that 0-based numbering still bugs me)12:55
jsk_computer scientists...12:55
jsk_:)12:55
fullermdWell, it's inconsistent too, I think.  The /2 means there are 2 phases, and they're called 0 and 1.  So when it's doing its last byte, it's on phase 1/2.12:57
jsk_fullermd: I do have ssh access to the server hosting the branch (at the other end of my connection). Perhaps I could create a tar of the branch, and download it in chunks.12:57
jsk_fullermd: however, I'm not sure if this method will create a working local branch.12:58
jsk_fullermd: +1 on your suggestion to revise the numbering...12:59
GaryvdMAfter you have download the branch, you can do bzr checkout to create a working tree.12:59
jsk_GaryvdM: that sounds like a good idea. However, I'm hoping to run a "bzr pull --remember" on the local branch, to tie it up with the remote one.13:01
jsk_GaryvdM: I'm hoping that this operation will complete quickly.13:01
jsk_GaryvdM: and not take as long as it would with an newly "bzr init"-ed directory.13:01
jsk_GaryvdM: thanks for your help :)13:02
Edulixhi13:02
EdulixI get this13:02
Edulixedulix@edulix-laptop:~/descargas/dark-extermination$ bzr push sftp://edulix@bazaar.launchpad.net/~edulix/dark-extermination/trunk13:02
EdulixPermission denied (publickey).13:02
Edulixbzr: ERROR: Unable to connect to SSH host bazaar.launchpad.net; EOF during negotiation13:02
fullermdjsk_: Well, you could rsync too (as long as you're sure your destination doesn't have stuff that needs to be not be overwritten)13:03
AfC|dinnerfullermd: he's pulling13:04
AfC|dinnerjsk_: rsync would be ideal for this situation13:04
AfC|dinner[I used to use rsync to *push* until the bzr server came along]13:04
vilajsk_: have you tried bzr pull http+urllib:// ? It may be longer but urllib implementation should reconnect automatically on transient errors13:07
=== mrevell is now known as mrevell-lunch
matkorIn checkouted tree I can see  parent branch: /home/users/arekdydo/src/abbon/abbon2 which is wrong, how can I change it to proper value ?13:14
fullermdAfC|dinner: ?  I know, but what's that matter?13:15
AfC|dinnerfullermd: yeah, sorry, you're right.13:16
vilaEdulix: check that you published your ssh key on launchpad13:19
matkorunbind / bind does not set parent branch it keeps on bugus value ...13:24
fullermdParent branch is set/used by pull/merge/missing...   maybe others I forget?13:25
fullermdIf you don't need those to default to anything in particular though, it doesn't really matter (except cosmetically) if the given value is nutty, though.13:26
matkorfullermd: Ah ! I can set it  by bzr pull --remember13:32
matkorThanks13:32
VSpikeI know this is a bit OT, but how tightly wedded is Visual Studio to its \Projects, \Websites layout?  I'm wondering if I can make it play nicely with a head/project1, head/project2, etc.. layout... does anyone have experience?13:34
=== mrevell-lunch is now known as mrevell
=== RichardL__ is now known as rml
sabdflhey guys14:07
=== AfC|dinner is now known as AfC
vilajsk_: you're bouncing :) Did you succeed with your push-inside-a-network-shutting-down-every-12-minutes ?14:37
vilapull even14:37
vilasabdfl: hi, just passing around or heard about lifeless wonders ? :)14:39
sabdflvila: i hear there are wonders in the works, what's the latest news?14:39
vilaPeng: can you summarize your last experiments with the pack format to sabdfl ?14:40
sabdfloh, i saw that bit :-)14:41
vilasabdfl: :)14:41
sabdflvery cool indeed!14:41
vilayup, very encouraging14:43
jsk_vila: thanks! I did succeed in the end - but only by zipping up the remote branch and downloading it in small chunks. After reconstituting the branch locally, I was able to do a "bzr pull --remember..." followed by two successive "bzr pull" operations to get the branch synced with its parent.15:07
jsk_vila: (two successive operations were necessary as the first "bzr pull --remember" got cut off by the network going AWOL).15:07
vilajsk_: just for completeness, I'd be interested if you an try a bzr pull http+urllib:// in a temp directory to test the transient error handling15:10
vilas/an/can/15:10
vilajsk_: and you should write a nice letter to your isp too :)15:11
=== kiko is now known as kiko-fud
=== cprov is now known as cprov-lunch
jelmermdke: any luck with svn-import?16:06
=== beuno_ is now known as beuno
=== kiko-fud is now known as kiko
=== bac_afk is now known as bac
=== cprov-lunch is now known as cprov
Vantagehi, quick question.  How do I configure bzr to create a branch without a working tree (or create a remote branch in a shared repo w/o making a working tree)18:40
PengWell, you could use 'bzr init-repo --no-trees'.18:45
james_wVantage: there is also 'bzr remove-tree' to do it after the fact.18:46
james_wand doing a push to a remote location will not create a working tree there.18:46
PengIf you already have a shared repo and want new branches to stop creating working trees, touching .bzr/repository/no-working-trees should do it.18:47
=== mrevell is now known as mrevell-dinner
VantagePeng: thanks.  Is that in a document somewhere?  I tried hunting for it on the site, but couldn't find it19:01
* Peng shrugs.19:01
PengVantage: It's in 'bzr help' if you know where to look.19:02
lifelessmoin20:01
jam-laptopmorning lifeless, is my clock right in saying it is 5 am there?20:01
lifelessyes20:02
fullermdHe's got pack repos.  They let him sleep faster.20:02
* lifeless flips the bird20:02
lifelessok, its cooked now ;)20:06
lifelessjam-laptop: so, what do you have on your plate?20:09
jam-laptoplifeless: right now I'm just going through the review queue and trying to squash all of the Critical bugs20:09
jam-laptopAt least the ones with relatively simple fixes20:09
lifelessyah20:09
lifelessthe revisionspec one would be lovely if you could do20:10
jam-laptopthere is a surprising amount of stuff in: http://bundlebuggy.aaronbentley.com/?selected=pending&unreviewed=n20:10
jam-laptopWhich has been approved but not merged20:10
lifelessI'm back stripping commit down to do only what it needs to do20:11
lifelessdirstate lookup is problematic20:12
jam-laptopsounds good20:12
lifelessI'm considering a basic datatype to factor out - 'sorted dict'20:12
jam-laptopAny way you can completely stream rather than doing the per-file lookup?20:12
lifelesswell, I wrote a patch that layers on iter changes20:13
jam-laptopeven if it was only for the non-merge case20:13
jam-laptopthat would be a pretty big win20:13
lifelessbut it still has to probe back in because iter changes hides too much20:13
lifelessthe core problem is that commit diffs against an arbitrary parent, not parent 020:13
jam-laptopwell, that is why I said the "non-merge" case20:14
lifelesswell, I say 'problem'. The reason that iter_changes is not a good fit is that ..20:14
jam-laptopCertainly I'm aware of the api divergence between multiple parents and _iter_changes20:14
lifelessI really don't want two code paths here20:15
lifelessI just feel it would be a recipe for bugs; and this is not a code area we want bugs in.20:15
jam-laptoplifeless: I'd like to have 1 code path eventually, it is just an issue of crawling before we walk20:15
jam-laptopI know we've gone around a few times of _iter_changes_for_commit20:15
lifelessright, a native version of that may well help20:16
lifelessbut OTOH I think lsprof is lying20:16
jam-laptop:)20:16
jam-laptoplsprof does skew results a little bit20:16
lifelessthe cache I added shaves 1/2 second off20:17
lifelessbut if lookups really were what it though, it should be more, and it gets a solid hit rate20:17
lifelesss/though/*t/20:19
lifeless&t dammit :)20:19
jam-laptophave you measured its hit rate?20:20
jam-laptopI wonder if it is less than you think20:20
jam-laptop(I don't see why it really would be, but it is something to consider)20:21
jam-laptopFor example, if you have an average of 4 files per directory20:21
jam-laptopyou can only have a 4/5 hit rate20:21
jam-laptopThough that is still 80%20:21
lifelessI'm testing on good ole moz20:21
jam-laptopIIRC moz has < 10 files per dir average20:21
lifelessinteresting20:22
jam-laptopAt least, we have 5761 directories20:22
jam-laptopand 49001 files20:22
Lo-lan-doIs Moz still using CVS, by the way?20:23
jam-laptop(49001 + 5761) / 5761 = 9.520:23
jam-laptopLo-lan-do: primary development on Moz is still in CVS20:23
Lo-lan-doOuch20:23
jam-laptopI think one of the "advanced branches" are trying hg20:23
jam-laptopEither FF 3 or Seamonkey .next20:23
lifelessjam-laptop: right20:23
jam-laptopsomething like that20:23
PengLo-lan-do: There's an hg mirror of the main CVS repo. I think a couple smaller Mozilla projects are primarily using hg.20:24
lifelessso we could set last_entry_index to 0 when the last_block_index changes20:24
Peng(Tamarin.)20:24
jam-laptoplifeless: but don't you "last_entry_index + 1" ?20:24
jam-laptopSo really you want it -120:24
jam-laptopThough the code I saw fails20:24
jam-laptopif you are the first entry20:24
jam-laptopor the last entry20:24
jam-laptopbecause of IndexError20:24
jam-laptopWhich could actually hurt performance20:25
jam-laptopbecause you have an exception stack20:25
jam-laptopthat gets created20:25
lifelessit only fails on first20:25
lifelessnot on last20:25
lifelessbecause I didn't plan on seeding it this way20:25
jam-laptopI thought I saw20:25
jam-laptopentry_index = last_index + 120:25
jam-laptop...20:25
lifelessit is20:25
jam-laptopAnd then later it does20:26
jam-laptopif (key > block[entry-1] and key <= block[entry])20:26
jam-laptopwhich should fail on the last20:26
jam-laptopwell, at least when it goes past the end of the block20:26
lifelesswhich is the first entry on the next block20:26
lifelesswhich is a miss anyway20:26
jam-laptopsure20:27
jam-laptopyou might consider just adding a simple counter20:27
jam-laptopto see how many queries hit there20:27
jam-laptoprather than going to the next20:27
lifelessI did in testing it20:28
lifelessit was something I felt the cost of an if() to keep it there was not worth20:28
jam-laptopsure, I wouldn't leave it in for production20:28
jam-laptopjust to get a feeling for what the hit rate was20:28
jam-laptoplifeless:  but I fully agree that lsprof is not perfect20:30
lifelessI've cover the start case20:31
lifelesscovered20:31
jam-laptopSpecifically: http://dpaste.com/23102/20:31
lifelessI'll send a new patch if you would like to review20:31
jam-laptopjust doing "bzr test-prof"20:31
jam-laptopshows the "two_functions" case taking 2x as long as the one function20:31
jam-laptopunder lsprof20:32
jam-laptopI get 38ms versus 161ms20:32
jam-laptopor 4x20:32
jam-laptopthough the wall clock time stays about 2x20:32
lifelessnew patch sent20:33
lifelessyes, 50K function calls with 1 param is about 15ms20:33
lifelessI find timeit is very good at this ;)20:34
jam-laptophttp://dpaste.com/23105/20:34
lifelesshang on while I swtich to a machine with a browser20:34
jam-laptopfirst paste is a plugin20:36
jam-laptopsecond paste is the timing20:36
fullermdjam-laptop: If you're looking at critical, 114615 isn't marked critical, but I kinda think it should be...20:37
jam-laptopbug 11461520:37
ubotuLaunchpad bug 114615 in bzr "Commit can fail and corrupt tree state after encountering some merge/conflicts" [High,Confirmed] https://launchpad.net/bugs/11461520:37
datolifeless: (you can wget -qO- dpaste.com/123/text)20:37
jam-laptopyeah, I wanted to follow up with that one and see if it should be critical20:38
lifelessdato: yah20:38
datolifeless: (sorry, s/text/plain/)20:38
lifelessdato: but its easier to move for a bit20:38
datowhat fits you best :)20:38
jam-laptopfullermd: does your test case do something significantly different from mine?20:39
jam-laptop(I can see that mine is still reproducible in bzr.dev, though, which might be enough to go on)20:39
fullermdNot sure.  Back when you posted yours, the bug was just (or at least, seemed to just) weird out commit once, then work fine.20:40
fullermdMy later one was where it started marking files as deleted   :(20:40
fullermdI dunno if that's just that we didn't hit that particular case before, or something in the code changed since we first looked at it.20:40
jam-laptopfullermd: yeah, mine doesn't break "bzr status" like yours does20:42
fullermdYah.  Nobody else would be nutso enough to setup situations like that one   :p20:43
vilahi all20:43
fullermd(well, 'stat' isn't broken; it's showing exactly what it thinks is happening.  I found the bug by finding a couple revs later that the file had been deleted by commit)20:44
jam-laptopfullermd: true20:47
fullermdIn a sense, it's not really data _loss_, since you can just revert the file and get it back.  But it's pretty freakin' scary to see happen to your tree...20:49
lifelessjam-laptop: so, what do you think of my updated cache ? Good to go ?20:53
jam-laptopI don't see how it is going to hit the first entry on the next pass20:55
jam-laptopconsidering that you will have20:55
jam-laptopentry = -1 + 120:55
jam-laptopblock[entry -1]20:55
lifelesswhich is 020:55
jam-laptopwhich will be an index error20:55
jam-laptopor it will give you block[-1]20:55
jam-laptopwhich is *really* not what you want20:55
lifelessif (entry > 0 and block[entry - 1])20:55
lifelessmore precisely, this is the line20:56
lifeless+                if ((entry_index > 0 and block[entry_index - 1][0] < key) and20:56
lifelesswhich only looks at entry_index - 1 if entry_index is 1 or more20:56
jam-laptopok, I missed the nesting20:57
jam-laptoplifeless: I would prefer: present = (block[entry_index][0] == key)20:57
jam-laptopThough otherwise I think I approved the previous implementation20:58
jam-laptopand you only changed 1 think20:58
jam-laptopthing20:58
lifelessyes you did20:58
lifelessso I'm asking about the delta20:58
jam-laptopwell if the delta is just using -1 instead of none20:58
lifelessbut I'll add a () around present for you20:58
jam-laptopbb:approve20:58
lifelessits assign last_entry_index to -1 when we assign last_block_index20:58
lifelessand change that one if block line20:58
jam-laptoplifeless: maybe add a comment about why you are using -1?20:59
jam-laptopJust a simple20:59
jam-laptop# setting to -1 since we are likely to ask for the first record next20:59
jam-laptopor something along those lines20:59
jam-laptopsince we just had the conversation21:00
jam-laptopI understand what is going on21:00
jam-laptopbut I realize I'll probably forget in a couple months21:00
lifeless        # Reset the entry index cache to the beginning of the block.21:00
lifelessok ?21:01
jam-laptopsounds good21:01
jam-laptopI don't know if we want a comment where they are defined21:01
jam-laptopdiscussing the basic use case21:01
lifelessI'll do that while we're here.21:01
jam-laptop(going linearly through the data)21:01
jam-laptopand that this is meant to speed up searching for the *next* entry21:01
lifeless        # These two attributes provide a simple cache for lookups into the21:03
lifeless        # dirstate in-memory vectors. By probing respectively for the last21:03
lifeless        # block, and for the next entry, we save nearly 2 bisections per path21:03
lifeless        # during commit.21:03
=== mrevell-dinner is now known as mrevell
jam-laptoplifeless: good enough21:04
jam-laptopgo for it21:04
lifelessthanks21:05
vilabzr revert --no-backup21:26
vilawrong window :) err right keyboard but not redirected to the right PC to be exact :)21:27
fullermdCould be worse.  You could be meaning to type that _here_, and do it in the wrong window...21:28
lifelessheh21:28
jam-laptopvila: I thought you were just trying to cover up a post you didn't mean to make21:29
vilajam-laptop: check your mail :) I was just reverting the part I talk about :)21:29
jam-laptopah21:30
jam-laptopyeah, I responded to you21:30
jam-laptopWould it be possible to put a check like that in permanently?21:30
jam-laptopvila: ^^21:30
vilahost empty ? I just have to diagnose the smart smoke test part, I fixed the other cases21:31
vilabut I didn't touch anything else21:31
lifelesswe really need to fix urlparse21:32
vilalifeless: agree21:32
lifelessnfs+trace+http+urlib://21:32
vilaa simple foo://user@host is enough to make it go nuts21:32
vilafor any foo that is not a known scheme :)21:33
jam-laptopvila: for some reason urlparse feels that most protocols are not netloc style21:36
jam-laptopwhile *we* feel that most *are*21:36
jam-laptopand it would be more reasonable to register non-netloc protocols21:36
jam-laptopI suppose it would be different21:36
jam-laptopif we wanted to support21:36
jam-laptopfile:foo21:36
jam-laptopor21:36
jam-laptopfile:/path21:36
jam-laptoprather than file:///path21:36
jam-laptopwe are fairly strict on what type of url we support21:37
vilajam-laptop: yes21:38
lifelessjam-laptop: file:foo is not valid. phone: is :)21:39
jam-laptopwell, I *think* that FF and IE will let you type file:foo in the URL and do something with it21:40
jam-laptopat the minimum21:40
jam-laptopfile:/foo21:40
jam-laptopshould work21:40
jam-laptopwhich *we* do not support21:40
lifelessfile:/foo should not work according to std6621:41
vilalifeless: what is std66, that the second time I run across that reference today ?21:43
vilayeah, ok, google told me :)21:44
jam-laptoplifeless: try typing file:/tmp into a browser21:46
jam-laptopI'm pretty sure it will work just fine21:46
jam-laptop(I just tested it. and it just renamed it to file:///tmp, but still worked)21:47
vilaI think you both agree :)21:47
lifelessjam-laptop: crackheadedheuristicsforthewin21:47
jam-laptopwell, browser's have a long culture of DWIM21:48
jam-laptopconsidering page reflows21:48
jam-laptopand "gracefully" handling bad html21:48
vilajam-laptop: your browser is telling you in a very subliminal way: "Thou Should Fix #123363"21:49
jam-laptopbug #12336321:49
ubotuLaunchpad bug 123363 in bzr "selftest pollutes /tmp" [Medium,Confirmed] https://launchpad.net/bugs/12336321:49
vilaubotu, you obviously miss the joke...21:50
lifelessanyhow21:56
lifelessbrb21:56
lifelessback22:03
=== thumper_laptop is now known as thumper
jam-laptopvila: your last commit was "hhtp" again22:24
jam-laptop"Make hhtp proxy aware of ..."22:24
vilaLOL22:25
vilatime to go to sleep then :P22:25
jam-laptopvila: sleep well22:25
jam-laptopneed me to sing a lullaby?22:25
lifelessnice vila22:25
jam-laptopI'm getting pretty good at them22:25
lifelessgnight22:25
lifelessjam-laptop: :)22:25
vilathanks for the heads up, I was about to resolve conflicts in smtp_connection, better to that with a fresh mind :)22:25
lifelessjam-laptop: so, do you have time perhaps, to do the revspec bug I filed ?22:25
lifelessits not inside the 'make commit fast' envelope, but its really annoying ;)22:26
jam-laptoplifeless: well, not tonight :) I'm working hard against bug #11461522:27
ubotuLaunchpad bug 114615 in bzr "Commit can fail and corrupt tree state after encountering some merge/conflicts" [High,Confirmed] https://launchpad.net/bugs/11461522:27
lifelessjam-laptop: ok22:27
jam-laptopbut I can look at bug #154204 tomorrow22:27
ubotuLaunchpad bug 154204 in bzr "revision specs do not lock branches appropriately." [Critical,Triaged] https://launchpad.net/bugs/15420422:27
lifelessbah corruption22:28
jam-laptop(that is the one you are talking about, right?)22:28
lifelessyes, it22:28
lifeless...22:28
lifelessis22:28
mdkejelmer: thanks for asking. I didn't have any more opportunity to try it; I tried it on a faster machine but it gave me ca-cert errors... weird because the machine has the same configuration as this one22:28
jam-laptopThis is an odd case, where because of a conflict you can get some weird tree states22:28
jam-laptopLike I just renamed a file back to its original location22:28
jam-laptopand I get:22:28
jam-laptop('a', 'n.OTHER', ...), ('r', 'a/n', ...), ('a', ...), ('r', 'a/n', ...)22:29
jam-laptopOr if your dirstate parser is rusty22:29
jam-laptopit says that the file a/n.OTHER22:29
jam-laptopis renamed to 'a/n' in THIS22:29
jam-laptopand absent in the base22:29
jam-laptopand renamed to 'a/n' in the other parent22:30
jam-laptop(aka, it doesn't exist anywhere, but still has an entry.)22:30
lifelesshmm22:34
lifelessso rename is failing to change the 'a' back to 'f'22:34
jam-laptopwell, this is the "temporary" file that the merge conflict generates22:35
jam-laptop(n.OTHER)22:35
lifelessyah22:35
lifelessso this suggests to me a general rename bug22:36
jam-laptopso what it *should* do is just recognize it as an absent row22:36
jam-laptopand nuke it22:36
lifelessthat renaming, when it is the last reference to a path, is remove it22:36
lifelessright, we're agreed.22:36
jam-laptopI don't know that it is the bug under question22:36
jam-laptopbut it is a weird one22:36
fullermdWell, in Internet Years, dirstate is approaching the age where it starts "experimenting" with recreational chemicals, so...22:39
jam-laptoplifeless: are you trying to get to the point that we don't need to build inventories during commit?22:45
jam-laptop(or is that quite a way off?)22:45
lifelessI'm going to see about getting rid of the wt inventory during commit22:47
lifelessbasis inventory removal is a tad further off22:47
nDufflifeless: bzr-packs has some impressive performance characteristics.22:50
nDufflifeless: considerably faster than mercurial in some scenarios, and only slightly slower in others.22:50
lifelessnDuff: Thats excellent news.22:50
jam-laptoplifeless: any idea how to detect the record_entry_contents API breakage?22:50
jam-laptop(You now have an extra parameter)22:51
lifelessnDuff: We found a serious performance bug in extracting texts yesterday, 30% win for large binaries, may help you there too.22:51
jam-laptopI'm trying to update cvsps22:51
jam-laptopcvsps-import22:51
jam-laptopand I would like it to work with both pre 0.9222:51
jam-laptopand 0.9222:51
lifelessjam-laptop: Uhm, look at bzrlib.version_info is probably best.22:51
lifelesscommit is going to be in flux for at least one more release though22:51
jam-laptopwell, I would technically like to work with bzr.dev pre and post fix, too22:52
lifelessnDuff: (the fix for that is in my repository branch)22:52
jam-laptopoh, and that api break isn't mentioned in NEWS22:52
jam-laptopyou talk about a *different* api break22:52
jam-laptop(requiring the root node)22:52
jam-laptopbut not that the number of parameters changed22:52
jam-laptoplifeless: for the large files, didn't you get that merged?22:52
lifelessheh, sorry22:52
lifelessjam-laptop: it is merged, nDuff is testing packs though22:52
jam-laptopah, ok22:52
nDufflifeless: http://people.ubuntu.com/~robertc/baz2.0/repository/ ?22:53
lifelessyup22:53
lifelessit shows up when applying long delta chains22:54
lifelessbasically we did 3 list clones - newlist = oldlist[:]22:54
lifelesswhich on files with many \n's leads to thousands of object reference-dereference pairs per delta in the delta chain22:54
lifelessso a file that has been altered hundreds of times does millions of unneeded object reference pairs22:55
mdkejelmer: ok, so now svn-import gives me "Invalid revision id {None} in SvnRepository"22:57
jelmermdke: what version of bzr-svn? afaik that was a bug fixed in 0.4.2 or 0.4.322:59
mdkejelmer: 0.4.1-1 (gutsy)23:00
lifelessnDuff: I'd be interested in knowing where we were slow, so we can fix that too.23:00
jelmermdke: .debs of newer versions are available in debian, http://packages.debian.org/sid/bzr-svn23:01
mdkejelmer: should I install a later version? is your repository the most reliable one?23:01
mdkeah, ok23:02
mdkejelmer: no idea about the ca-cert error I had on the other computer, I guess?23:02
jelmermdke: depends on the error23:03
jelmermdke: prefixing the url with "svn+" may help23:03
mdke"server certificate verification failed"23:03
jelmerdoes "svn ls <url>" work?23:03
lifelessjelmer: do you have some debugging notes?23:04
jelmerlifeless: for what specifically?23:04
mdkeyeah, svn ls works23:04
lifelessfor e.g. me to point e.g. mdke at23:04
lifelesscurrently you're really the only person able to help users.23:04
jelmerthere's the FAQ that is going to be part of 0.4.423:06
nDufflifeless: let me get all my results together. there are a few places where I was less rigorous about recording them than I should have been.23:07
jelmerlifeless: that, and the list of known bugs23:08
lifelessnDuff: sure, not meaning to put you on the spot in any way. Knowing the envelope you're working on and where it was slow is all. If you find particular ops slow please also feel free to mail me a callgrind for that run23:09
nDufflifeless: just threw an exception checking out your branch; see http://pastebin.com/m41646d1323:09
lifelessnDuff: e.g. 'bzr --lsprof-file foo.callgrind command thing thing'23:09
jelmermdke: so, prefixing the url with "svn+" should fix the error then23:09
lifelessnDuff: ok, thats the bad index in that repo; known issue - I have a fixed copy, one sec.23:09
lifelessnDuff: http://people.ubuntu.com/~robertc/pack-repository.knits23:10
lifelessnDuff: ^ that has all the code too, and is probably the one you pulled initially.23:10
jelmerlifeless: btw, any news on pqm for bzr-gtk/my pqm merge requests?23:11
lifelesssorry no23:11
lifelesshaven't forgotten, just had no cycles23:12
mdkejelmer: right. I'm going to put another one on, leave it overnight and see what happens in the morning23:12
jelmerlifeless: no hurries, just making sure it doesn't drop off your todo list :-)23:13
lifelesskk23:13
jelmermdke: with a newer version ?23:13
mdkeyes23:13
mdkejelmer: incidentally, since you're here, I'll just ask - if it all goes well, do I get separate bzr branches for trunk and each svn branch? or a single bzr branch? I don't understand the explanation in bzr help svn-import about what --all and --standalone do23:13
jelmermdke: yes, you will23:14
mdkegreat23:14
mdkeok, it seems to be getting on with the first branch already, splendid23:14
jelmermdke: --all is about importing revisions that were part of historic branches that have since been removed23:14
jelmermdke: --standalone is basically about not using a shared bzr repository23:14
mdkeah, perhaps I wanted that23:14
jelmer--standalone will blow up the amount of disk space required23:15
mdkeLP doesn't support shared bzr repositories, does it?23:15
jelmerit doesn't, but you can push from a shared bzr repository to launchpad without problems23:15
mdkeso I can do the import now without --standalone and then create separate branches by pushing them to launchpad?23:16
jelmerwhen using a shared repository you'll also have separate branches23:16
jelmerbut yes23:16
mdkeok. sorry if I don't understand the concepts very well23:16
mdkethe aim is to have LP host branches centrally that the team can access, as long as I can achieve that, I'm happy23:17
lifelessmdke: so branch is a line of development23:17
lifelessmdke: repository is physical storage for historical data23:17
lifelessmdke: every branch has to have a repository available to store its data; either one per branch, which we call standalone branches, or one shared across many branches, which we call a shared repository23:18
mdkevery clear23:18
mdkeand I can use my shared repository to push standalone branches to Launchpad?23:18
mdkeor not?23:18
lifelessyes, because branch and repository are orthogonal cocepts23:19
lifeless*concepts*23:19
lifelessa branch is a branch23:19
lifelessso you can push a branch from your shared repo to launchpad, and vice verca23:19
mdkeso when I upload a branch from the shared repo to LP, it will take the historical data relevant to it and store it in a standalone branch?23:19
lifelessyes23:19
mdkegreat.23:20
mdkeso essentially the history doesn't get lost either way, whether I import it with --standalone or not23:20
lifelessright23:20
lifelessits just much more efficient in terms of disk storage without --standalone23:21
mdkethanks, and sorry for being a bit slow, but I wanted to make absolutely sure23:21
mdkeok, we'll see where it gets to overnight. possibly I'll have to leave it to work for some time :D23:21
mdkethanks for all the help, both23:22
nDuffinteresting.23:27
lifelessjam-laptop: looks like we need a tree.iter_entries_by_dir23:27
lifelessthat supports file id filtering23:27
nDufflifeless: why would an uncommit+recommit take considerably less CPU time than the initial commit?23:27
lifelessnDuff: the recommit step ?23:29
lifelessor the two combined ?. Anyhow, no matter - it shouldn't. Unless the hash cache was empty on the first commit23:29
nDufflifeless: hmm. initial commit was ~15min of CPU time; the recommit was ~2m wall-clock. wrt the cache in question -- would it be populated by a "bzr status"?23:30
lifelessyes23:30
lifeless15 mins of CPU to 2 is quite remarkable23:31
nDuffhrm; even when it's needing to repopulate the cache, a bzr status isn't taking nearly 13 minutes.23:31
lifelessthats really quite bizarre, no pun intended. If you find yourself able to reproduce, a callgraph of it would be wonderful23:32
igcmorning all23:39
lifelessmoin23:41
lifelessI replied to your graph patch review23:41

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