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

=== garyvdm_ is now known as garyvdm
lifelessI really want a 'bzr edit-diff' which gives me the diff, lets me edit it, then saves the result back00:19
verterokObmar: yes, that's an ugly bug, need to get some time and fix it00:23
Obmarverterok: That would be great.  I would love to be able to do bzr from in the IDE.00:26
lifelessspiv: ping00:28
lifelessspiv: the _commit_write_group check; I think that that may be better on the RepositoryPackCollection level ?00:29
spivlifeless: rather than on the KnitPackRepository?00:33
spivlifeless: sure, I essentially flipped a mental coin when deciding where to place that.00:33
lifelessI've moved it down00:36
lifeless    def _commit_write_group(self):00:36
lifeless        all_missing = set()00:36
lifeless        for prefix, versioned_file in (00:36
lifeless                ('revisions', self.repo.revisions),00:36
lifeless                ('inventories', self.repo.inventories),00:36
lifeless                ('texts', self.repo.texts),00:36
lifeless                ('signatures', self.repo.signatures),00:36
lifeless                ):00:36
lifeless            # We use KnitVersionedFiles exclusively so can rely on _index.00:36
lifeless            missing = versioned_file._index.get_missing_compression_parents()00:36
lifeless            all_missing.update([(prefix,) + key for key in missing])00:36
lifeless        if all_missing:00:36
lifeless            raise errors.BzrCheckError(00:36
lifeless                "Repository %s has missing compression parent(s) %r "00:36
lifeless                 % (self, sorted(all_missing)))00:36
lifeless^ ok ?00:37
lifelessself.repo at the end obviosuly00:37
spivLooks ok.00:40
lifelessspiv: ok, that branch is on its way to pqm00:44
lifelesswhere is the next one?00:44
lifelessspiv: ping00:55
poolie(some people at) nasa \heart bzr00:58
poolieyay00:58
lifelessnice00:58
spivlifeless: tests all passing now I think; just removing a cruft01:04
lifelessbeuno: http://blog.crisp.se/davidbarnholdt/2009/02/18/1234986060000.html really is nice01:12
lifelessspiv: well the scan api is gold01:21
lifelessspiv: I'd like to take the next lowest layer on, or ?...?01:21
spivlifeless: I think I've removed the worst of the cruft now01:23
spivlifeless: I still haven't added a flag to add_records, but otherwise I'm happy with this01:23
spivlifeless: I'm pushing it up to lp:~spiv/bzr/missing-parents-integration01:24
lifelessspiv: k, give me a shout when its done01:25
lifelessspiv: also, have you had a chance to review network-name?01:27
lifelessspiv: if not thats fine, I might interrupt poolie01:27
lifelesswho has the context for this01:28
spivlifeless: I haven't, but now is a good time for me to do so01:28
spivlifeless: reviewed, one typo found :)01:40
lifelessspiv: bombs away01:45
lifelessdecided against a comment, because of too much duplication01:46
* spiv nods01:47
poolielifeless: nice drawings :)01:54
lifelessspiv: so, I'll review this branch; make any changes i need, and you ack the changes?01:55
spivlifeless: +101:55
lifelessspiv: looking at it, it seems easier to put back the older buffer code, and just make a single call at the end with the new flag, to add_records02:00
lifelessspiv: sound ok?02:00
spivlifeless: yep02:02
spivlifeless: having a single call to add_records would be more clearly correct, I think.  Less room for accidental double-insertion.02:03
spiv(Which is a bug I noticed I had during our phone chat this morning...)02:03
* spiv -> lunch02:09
poolielifeless: ping for a quick question02:15
pooliei'm just looking at mark's vcsrace on status02:15
pooliethe results are generally really good except for status which spends a considerable amount of user time compared to the competition02:15
pooliei think this is because of overhead of building tuples from the dirstate etc02:16
lifelesspoolie: [waiting for the question]02:17
pooliewould you agree?02:18
pooliefrom memory i mean02:19
lifelesswell02:19
lifelessOne planned experiment is to write a pure C implementation02:20
poolieyes02:20
poolieactually i see something interesting in the profile02:20
lifelesswe may be able to squeeze some more out of chdir02:20
pooliethe system time is actually pretty good02:20
lifelessrunning up oprofile over it would be interesting too02:20
pooliethe interesting thing is that we're using the generic InterTree.compare02:20
lifelesspoolie: pending merge?02:20
pooliebecause mark's measuring the special case of changes from the empty tree02:20
lifelessoh02:21
pooliei suspect dirstate just gives you an EmptyTree02:21
poolieand this is unoptimized02:21
lifelessgrah02:21
* lifeless hates on special cases02:21
pooliei may be wrong02:21
pooliequick, add another special case :)02:21
lifelessmeasurement is the only way to be sure :)02:21
pooliewell, it is definitely using the generic one02:22
pooliehm no it's not literally EmptyTree, which is deprecated02:23
lifelessspiv: get_missing_compression_parents: perhaps on _index only ?02:24
lifelessspiv: I don't think it needs to be top level02:24
lifelessspiv: actually scratch that, the tests would be ugly02:25
lifelessspiv: its fine02:25
jmlcrapzor.02:34
jmlit's doing it again02:34
jmlsame branch. one more revision.02:34
jampoolie: IIRC we've gone back and forth on the patch that removes the special case when there is no entries02:38
jamat least, I seem to remember fixing that in the past02:38
jam# the source revid must be in the target dirstate02:38
jamif not (source._revision_id == NULL_REVISION or02:38
jam    source._revision_id in target.get_parent_ids()):02:38
lifelessspiv: done; bzr sending it02:38
jamLooks like we should be handling the NULL tree02:39
jamIf we aren't, something else is wrong02:40
lifelessspiv: mail sent; review @ will. next is suspend/resume yeah?02:41
PHPloverhi when I use ftp push, Does it actually upload the files. So that if I were to have a HDD failure, i could retrieve those files from the FTP server?03:00
PHPloverIt does it just upload some kind of data about changes to the files [I Dont understand versioning systems]03:02
lifelessPHPlover: it creates a database03:02
lifelessPHPlover: you can inspect what it has uploaded by using bzr - e.g. 'bzr log URL'03:03
PHPloverok, and does that database store the complete data of every file in my project, Or just info about the files03:03
lifelessit stores the complete copy of each commit, which includes the files that *are versioned*, but not those that are not03:03
lifelessPHPlover: the easiest way to see what its done, is to 'bzr branch URL /tmp/spare-directory' and have a look at what bzr puts in spare-directory03:04
lifelesspoolie: ping03:05
lifelesspoolie: does bencode avoid \n ?, or can/should I avoid a \n some other way . (network_name currently has \n, but that breaks SmartServerRequest.do()03:05
spivlifeless: \n in HPSS args are fine with HPSS v303:08
lifelessspiv: interesting.03:08
spivbencode length prefixes strings.03:08
lifelessspiv: how do a I register a verb to be only used with one HPSS version then ? :P03:08
lifeless  File "/home/robertc/source/baz/push.roundtrips/bzrlib/remote.py", line 2002, in _translate_error03:08
lifeless    raise errors.UnknownErrorFromSmartServer(err)03:09
lifelessUnknownErrorFromSmartServer: Server sent an unexpected error: ('error', 'do() takes exactly 4 arguments (3 given)')03:09
lifelessthe blackbox tests pass03:09
lifelessbut the per-repository RemoteRepositoryFormat-v2 tests are failing03:09
lifelessfor the reason-under-discussion03:09
spivCurrently that's taken care of in the client; the client never tries sending various requests to older servers03:09
lifelessok, so I should guard based on a check?03:09
spivRight.  The client asks the medium if .is_remote_before((1,2)) or whatever.03:10
spivAnd also does _remember_remote_is_before((x,y)) when it notices a smart method is not implemented to save it trying that or other new methods again.03:11
lifelessis that _protocol_ or _bzrlib version_03:11
lifeless[how do I get these tests to work :P]03:12
spivIt's the bzrlib version.03:12
spivWhen the protocol is v2, the medium immediately "remembers" that remote is before (1,6) (or whenever v3 was added).03:12
lifelessok, so its a lie, but don't look under the hook ?03:13
lifeless*hood*03:13
spivYeah.03:13
spivI'm not 100% happy with it, but it does the job.  Well, jobs.03:13
spiv(Avoid trying calls that require \n in args and whatever that are new in v3, and also avoid repeatedly trying an RPC once we know the server doesn't implement it.)03:14
lifelesswhere is the code so I can figure out what .is_remote_before to use03:15
lifelesslike is 1,6 right03:15
lifelessor 1,203:15
lifelessor ?03:15
* spiv is looking03:16
lifelessprotocol_version in medium still returns '2' :P03:17
lifelessor should I say is_before(1,13) ?03:18
spivProbalby 1,13 would be best.03:20
* spiv can't find where the remembered version is set low for v2 protocols.03:21
lifelessok I'm unblocked on that, though 1,13 fails the current version test :P03:23
lifelessspiv: *and*03:23
lifelessit still runs the verb on the Remotev2 tests03:23
lifelesshmm, checking03:23
spivAh, found it.03:24
lifelessok fixed03:24
lifelesscool03:24
lifelessso the branch for partial insertion is polished and up for review03:24
spivbzrlib/smart/client.py calls self._medium._remember_remote_is_before((1, 6))03:24
spivonce it finds out that v3 doesn't work.03:25
spivCool, I'll take a look.03:25
lifelessI'm waiting on the next unit of work03:25
lifelessthe network data serialisation for record streams is also outstanding for review03:26
lifelesshttp://bundlebuggy.aaronbentley.com/project/bzr/request/%3C1234854080.11037.18.camel%40lifeless-64%3E03:26
lifelessspiv: ok, and I've just flushed the new verbs to qm03:36
lifeless*pqm*03:36
lifelessspiv: how should we split up the remaining work? Want a quick call?03:36
spivlifeless: ok03:41
spivlifeless: (I'm reviewing the network serialisation atm)03:41
lifelessok, I'll ring you now if thats ok03:42
spivYep03:42
spivlifeless: http://people.ubuntu.com/~andrew/bzr/streaming-push03:48
spivlifeless: ...nearly pushed03:48
spivlifeless: done.03:49
lifelessspiv: cool03:50
* igc lunch03:54
lifelessspiv: so RemoteVersionedFile has some of our fetch refactoring04:05
lifelessspiv: it looks like RemoteVersionedFile is a little confused, the loom basically resets @ Very fetching04:09
lifelessspiv: or something. econfused:P cherrypicking and reviewing04:10
spivlifeless: weird.04:12
lifelessjam: dropping the group size will shrink things because of the full texts at new groups04:12
=== jfroy is now known as cad_monster
=== cad_monster is now known as jfroy
Peng_mwhudson: ping?04:42
poolie1igc, can you remind me why content-filtering needs to change dirstate?04:43
poolie1would it be at all possible to avoid it?04:43
lifelesspoolie: sha on disk != sha in storage ?04:43
poolie1well, of course that's true for filtering04:46
igcit's been a while but what lifeless says sounds right04:46
igcpoolie1:^04:47
poolie1it was more the next logical step after that that I'm thinking about04:47
lifelessspiv: testing a massaged Very fetching with the lower layers removed04:47
lifelessspiv: I'm keeping length_prefix, though really its in the wrong home04:47
Raawfleaaargh04:49
lifelessRaawfle: some context might help04:50
lifelessspiv: as we knew, progress breaks04:50
lifelessspiv: so I'm going to commit it, and then start working on the progress bars04:52
spivlifeless: sounds good04:53
lifelesspoolie: can you decode what this means for me ?05:01
lifeless/home/robertc/source/baz/fetch.sinks/bzrlib/ui/__init__.py:91: UserWarning: ProgressTask(0/1, msg='fetch texts') is not the active task ProgressTask(None/None, msg='')05:01
lifeless  % (task, self._task_stack[-1]))05:01
poolie1lifeless: probably that you're missing a finally block05:04
poolie1prior to the code that constructs  ProgressTask(0/1, msg='fetch texts')05:05
poolie1hth05:05
lifelesspoolie1: ok, will look for that05:05
lifelesspoolie1: if it helps we have generators around generators05:05
poolie1no, that doesn't help :-)05:06
poolie1the previous pb seems to contain nothing05:06
poolie1so you can probably just remove it05:07
lifelessis previous a higher one?05:07
lifelessor one that wasn't cleaned up from an earlier test?05:07
poolie1so, there's supposed to be a stack05:07
poolie1this message indicates that you tried to finish the one that's not on top of the stack05:08
poolie1so actually "prior" is not necessarily true05:08
poolie1so there are (at least) two here05:08
poolie1A and B05:08
poolie1it may be that B is conceptually inside A, and now all of A is finished but you forgot to finish B first05:09
poolie1or, it may be that B is a sibling of A, and you forgot to finish A before starting B05:09
poolie1if you see what i mean05:09
lifelessyeh05:10
lifelessI'm worried that generators are interacting badly05:10
lifelessspiv and I overhauled fetch()05:10
lifelessone answer is to remove the progress entirely for now05:11
poolie1for many generators i'd say that giving an activity indicator may be more appropriate05:12
poolie1because, firstly you may not know how many things are generating05:13
lifelessindeed05:13
poolie1and, as a technical reflection, finishing up is hard05:13
lifelessah found it05:15
lifelesswe have a function that passses a pb into a method05:15
lifelessthat method finishes it and rebinds it05:15
lifelessI'll change it to an instance variable, bet it fixes it05:15
poolie1hm as i may have said in a review, i think passing pbs around is whack05:15
poolie1it's one thing i'd like to fix here05:15
poolie1except in pretty special cases, a progress bar should correspond to a for loop in one function05:16
lifelesspoolie1: I'm not justifing the current code ;)05:16
poolie1and the nesting of them i think can be done by the ui global :)05:16
poolie1i know, i'm just repeating this thought in case you want to agree :)05:16
lifelessoh, I agree05:17
lifelessno warnings now, that was it05:18
poolie1ok05:18
poolie1well, i'm glad it wasn't spurious and didn't take too long to track down05:19
lifeless:)05:19
poolie1igc, so, i'm not quite done on filtering but it's not all that hadr05:19
poolie1i am inclined to see if doing it on top of dirstate is within reach05:20
poolie1at the least i'd like to document why05:20
lifelesspoolie1: did you see my comment about sha on disk and sha in repo?05:20
poolie1yes but no but yes but05:20
poolie1obviously they are different,05:21
poolie1but this doesn't change dirstate to store both of them05:21
lifelesswhat does it do05:21
poolie1it seems to change it to record the filtered sha105:22
poolie1sorry, i mean the sha1 of running the input filters on the file05:23
mwhudsonPeng_: hola05:24
Peng_mwhudson: Hi.05:28
Peng_Um.05:28
Peng_mwhudson: I have a dumb question about your changes to LH's served_url stuff. I used to monkeypatch served_url to return URLs relative to /bzr instead of /loggerhead, but now that doesn't work. So...what do you think I should do?05:31
mwhudsonPeng_: um05:32
Peng_:D05:32
lifelessspiv: sending it for review, I'm happy and only trivial changes; if you're happy with my arbitrary cleanups we can just land it05:32
mwhudsonPeng_: think of a way you'd like this to work and tell me about it :)05:32
Peng_mwhudson: Heh. I was happy with how I was doing it before. :P05:33
mwhudsonPeng_: you can probably monkey patch BranchFileSystem.app_for_branch05:33
mwhudsonPeng_: alternatively, one could extract the calculation of the default value out into a method that you could then monkey patch05:35
Peng_I'm barely awake enough to understand what that means, but I think it sounds good.05:40
spivlifeless: fancy that, I just sent you a review too.05:41
spivlifeless: If you only made arbitrary trivial cleanups to my code, then yes I'm definitely +1 on principle :)05:41
spivlifeless: I can eyeball it anyway if you want.05:41
lifelessspiv: just sent it05:41
lifelessspiv: its basically - delete the RVF stuff05:41
lifelessspiv: fix progress bars05:42
lifelessspiv: we can't do RemoteStreamSink until the vf network bytes lands05:44
spivI know.  I tried not to let immiment achievements cloud my review judgement, though...05:45
spivlifeless: there's some odd stuff in that diff you just sent; additions to the makefile etc.05:49
spivlifeless: perhaps the branch you sent has more recent bzr.dev than bzr send diffed against?05:49
lifelessunlikely05:51
lifelesshowever wrong parent is likely05:51
spivAh, yeah.05:54
lifelessresent05:54
poolie1out to the shops before they close, will finish igc's review today though05:55
ronnymorning05:56
spivHeh, I see _length_prefix did sneak into that diff.05:58
lifelessspiv: I kept it deliberately05:59
* spiv nods06:00
spivlifeless: reviewed (tweak)06:00
* spiv keeps reviewing06:01
lifelessspiv: ok network serialisation on its way to pqm06:03
lifelessspiv: so we can merge that into the fetch refactoring branch06:04
spivlifeless: just bb:approved your "insert record streams with missing compression parents" patch06:08
lifelessexcellent06:08
lifelessI'll kick that off now06:08
lifelessspiv: so what do we have left06:09
lifelesssuspend resume? is that up for review yet?06:09
spivHmm, I don't think so.06:11
lifelessso it depended on missing parents and partial streams06:11
lifelessboth are fully acked06:11
lifelesswhy don't you polish that, and I'll get the network stream integrated with RemoteSink06:11
lifelesswhich will fail on stacked branches until suspend resume is done06:11
spivOk.  Let's see if I can figure out which branches to merge into suspend-resume to bring it up to date...06:12
lifeless:P06:12
lifelessso administrivia06:12
lifelessI'd *love* to finish this today06:12
lifelessbut its after06:12
lifeless506:12
lifelessif you're up for a sprint-to-finish, so am I. And I'm sure we can convince poolie for some slack on Monday :)06:13
spivOh that's right, we were sensible and made that a branch off bzr.dev.  That helps ;)06:13
spivI'm still going strong atm ;)06:14
lifelesshttp://bundlebuggy.aaronbentley.com/project/bzr/request/%3C1235097663.6233.119.camel%40lifeless-64%3E is what you need for suspendresume06:14
spivI'll probably need to stop about 6:3006:14
lifelessthe clock is on :)06:14
spiv:)06:15
lifelessyou probably want bzr.dev too or that matter06:18
spivYeah, already grabbed that :)06:21
lifelessspiv: ok, failure in my streams bytes thing in reconcile06:31
lifelesswhile I investigate that the other approved patch is on the way06:31
poolie1igc, still around at all?06:31
igcpoolie1: yep06:38
poolie1i'm going to send a review in a sec06:40
poolie1do you want to talk about it/06:40
spivlifeless: http://rafb.net/p/wgjSMm15.html is failing on the assertRaises; because the add_lines after the resume_write_group doesn't actually make a record with a compression parent.06:41
spivlifeless: what's a good way to add a record with a compression parent there, should I crib from test_versionedfiles perhaps?06:42
spivWith a *missing* compression parent, specifically...06:42
lifelessspiv: you need two repos06:42
lifelessin repo one you do add_lines(base, (), [... ... ...])06:43
spivlifeless: that's what I feared :)06:43
* spiv does that06:43
lifelessand add_line(child, (base,), [.....])06:43
lifelessthen repo2.texts.insert_record_stream(repo1.texts.get_record_stream(base,...)06:44
lifelesssorry not base there06:44
lifelessjust delta06:44
* spiv nods06:44
lifelessor06:45
lifelessuse knit.make_pack_factory06:45
lifelessto get a vf object06:45
lifelessin lieu of a second repo06:45
spivExisting tests passing, I think...06:53
lifelesscool06:53
spivOk, wrote a test for filling in a missing parent after a suspend/resume, currently failing :)07:02
spivFixing...07:02
lifelessspiv: I'm modifying RemoteSink to fallback to _real when stacked, pending the stuff you're doing07:02
lifelessspiv: minor tweak needed, our substreams need to encode a prefix record07:04
lifelessspiv: dealing with the keywidth mismatch07:05
spivOh, right.07:08
lifelessso in do_chunk on the reader07:09
lifelessdoes it know its a pack stream and give us only the bytes_record ?07:09
spivOk, filling in a missing parent after suspend/resume works.07:09
=== chx is now known as chx_sleeping
lifelesswoooooooooooooo07:10
lifelessooooo07:10
lifelessooo07:10
lifelessand the current branch is into ascii tests07:10
lifelesswhich is fetch refactor07:10
spivHmm, I think I need more context to understand your question.07:11
spivdo_chunk is called as bytes of the request *body* arrive.07:11
lifelessyes07:11
lifelessSmartServerRepositoryInsertStream07:11
lifelessI think it will be fine07:12
spivSo long as the client is generating a request body stream of a pack, which IIRC it is...07:12
spivi.e. it's basically just sending what the ContainerWriter is emitting07:13
spivSo that should be fine, yeah.07:13
vilahi all (completely forget my ping this morning :)07:20
spivOk, added what I think is the last test, that suspend/resume doesn't accidentally make an uncommittable write group committable.07:20
spivNot passing yet :)07:20
poolie1hello vila07:21
vilahi poolie1 :)07:22
=== poolie1 is now known as poolie
spivlifeless: passing, just fixing up duplication added to make it pass07:30
lifelessspiv: cool07:32
lifelessspiv: I think I'm done too, bit of staring involved07:32
lifelessspiv: the glue is a little awkward, pack -> bytes -> pack reader -> bytes -> NetworkRecordStream07:32
spivlifeless: ok, pushing07:33
spivlifeless: it'll be at http://people.ubuntu.com/~andrew/bzr/suspend-write-group shortly07:33
lifelessspiv: was there a test to run to check this works07:33
lifelessspiv: one branch landed07:34
lifelesspulling .dev and sending the next07:34
spivlifeless: there were acceptance tests in that loom07:35
spivlifeless: although now that I look at it again, the test_push_smart_stacked_streaming_acceptance test is slightly wrong :)07:36
spivlifeless: we expect 2 insert_stream RPCs now, not 1.07:37
spivIf things are working, that is :)07:37
lifelessspiv: cool cool07:37
spivlifeless: so, my branch is pushed, and all tests seem to be passing here.07:37
spiv(running a bigger selftest to be sure, but so far so good)07:38
lifelessspiv: whats a good test to test RemoteSink ?07:38
spivlifeless: hmm07:39
lifelessfetch tests pass07:40
jmllifeless: https://code.edge.launchpad.net/~lifeless/subunit/polish/+merge/273507:41
lifelessdammit, its creating manually ><07:42
spivlifeless: I suppose a simple test_remote test that shows that RemoteRepo._get_sink().insert_stream(...) invokes the right RPC would be good.07:42
jmllifeless: btw, "bzr send --no-bundle" to merge@code.launchpad.net Just Works.07:42
spivPossibly even with a stream of []  ;)07:42
spivI'm sending up the suspend-write-group branch for review07:46
lifelesscool07:46
lifelessresending partial inserts (typo :()07:46
spiv:(07:47
lifelessjml: thank; commonprefix?07:49
jmllifeless: os.commonprefix.07:50
jmllifeless: it's a blight on the standard library. only use it if you want your file operations to be broken07:50
spivlifeless: oh, heh, I already had that exact one-liner in my suspend-write-group branch.07:50
jmllifeless: os.commonprefix('/foo/bar/baz', '/foo/baz/bop') => '/foo/ba'07:50
lifelessspiv: the typo ?07:50
spivlifeless: yeah07:52
lifelessspiv: :)07:53
lifelessspiv: I don't see the patch07:54
lifelessspiv: ok, its writing a pack directly07:59
poolienight all08:00
spivlifeless: ok, patch sent.08:02
spivlifeless: I'm done for the evening, but I'm very happy with the shape of the resume_write_group code.  Maybe it's my Friday evening judgement, but I think that patch only has a few minors warts, rather than any glaring problems ;)08:03
spivlifeless: thanks for helping me get it into shape08:04
* spiv -> food, weekend, world of goo, etc!08:04
lifelessspiv: approved08:11
lifelessspiv: I'm going to keep plugging at joining these dots08:12
* lifeless will be begging for reviews I think08:12
spivlifeless: I'll pqm-submit it, thanks.08:12
lifelessthe dependent patch is onto ascii08:13
lifelessshould land fine I think08:13
lifelessspiv: woo, 74 -> 6008:19
spivlifeless: the ratchet?08:20
lifelessfor non-stacked08:20
lifelessstacked goes 99 -> 10108:20
spivNice.08:20
lifelessthe latter is uninvestigated as yet08:20
lifelessbut I think its going to be due to my if block pending suspend integration08:20
spivIs stacked still hitting the thing in InterPackRepo that explicitly uses something dumb?08:20
lifelessso commiting and sending for review08:20
spiv(the "if len(fallback_repos) > 0" check)08:21
nhainesI have a merge request from a friend who didn't set his 'whoami' info on the shared computer he was using.  How can I modify the commit email address before I merge into my main branch?08:21
lifelessspiv: yes08:24
lifelessnhaines: you can't, because commits are immutable; you can either degrade to a regular patch (do a merge, then bzr revert --forget-merges), or not08:25
nhaineslifeless: both what I feared and what I needed to know.  Thanks.  :)08:27
lifelessspiv: one more landed08:34
lifelessI'm looking for a reviewer for http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C1235118639.6233.151.camel%40lifeless-64%3E08:46
ronnylifeless: bzrlib/smart/protocol.py -> wouldnt just raise do?08:55
lifelessronny: no, interim revisions in called code trash state08:57
lifelesss/revisions/exceptions./08:57
ronnyah, i see08:59
lifelessthats actually a pretty standard python recipe09:00
ronnynever ran across it09:01
ronnywont that go away in python3 anyway?09:01
ronny(afair they put the traces on the exception)09:01
faspell\quit09:10
spivlifeless: haha, that diff removes _length_prefix again :)09:17
spivAh, and moves it to a different file.09:18
spivlifeless: looks good.  bb:approve09:18
spivOk, really gone for the night now.09:18
lifelessspiv: ciao :09:23
lifelessspiv: just finishing the whole thing off now :)09:23
ronnylifeless: hmm, i made up a small testcase, and it doesnt seem to trash state, was this a bug in earlyer python?09:29
lifelessronny: possibly09:29
ronnyunless im misstaken http://paste.pocoo.org/show/104633 demonstrates that it works in 2.4/2.509:29
lifelessronny: I'd need to check theexact way things propogate09:31
lifelessyour test does look plausible to me at ist consideration09:31
ronnybbl, need to solve some snow issues09:33
=== monty|meeting is now known as montywi
lifelessok09:56
lifeless83 round trips09:56
lifelessso 18 less09:56
lifelessand massively less for non-muppet content09:56
EricHermanI just installed using Bazaar-1.11-OSX10.5.dmg and I see a strange message: "WARNING: bzrlib version doesn't match the bzr program"10:57
EricHermanwhich goes on to print: bzrlib from ['/Library/Python/2.5/site-packages/bzrlib'] is version (1, 11, 0, 'final', 0)10:57
EricHermanwhich looks like a match to me.10:57
EricHermanhttp://pastebin.com/m1260cb9a10:57
EricHermanAny suggestion as to what I might look at next?10:58
* beuno pokes verterok and vila 10:59
* verterok is not here11:19
verterokhi beuno11:19
beunohi verterok11:20
verterokEricHerman: hi, check you have another bzrlib in your PYTHONPATH11:20
beunothis is what you get for being an apple fanboy11:20
EricHermanlooking11:20
beunopings for support on it  ;)11:21
verterokbeuno: apple fan boy? where? I use Ubuntu ;)11:21
EricHermanverterok, I do not have PYTHONPATH set in my envrionment11:22
beunoverterok, oh, don't tempt me...11:23
* EricHerman tries find / -name bzrlib11:24
EricHermanfind only reports /Library/Python/2.5/site-packages/bzrlib11:30
verterokEricHerman: weird, I didn't installed 1.11, but 1.10 works ok.11:35
verterokEricHerman: I'll download and install 1.11, and report back if I hit any issues11:36
verterokEricHerman: did you upgraded from a previous version?11:36
EricHermanI /had/ 1.6 which was built from source, but I removed it.11:37
EricHermanit's possible that there was something left over, but I don't know what that might have been.11:37
* domas hands over strace to Eric :)11:38
james_wEricHerman: which bzr script are you running?11:38
EricHermanjames_w, I'm not sure how to answer that question. I envoke /usr/bin/bzr ....11:40
EricHerman(that file itself does not have a version number in it)11:40
EricHermanls -ld $(which bzr)11:41
EricHerman-rwxrwxr-x  1 root  wheel  4313 Mar 22  2008 /usr/bin/bzr11:41
EricHermandate is suspicious on that, hmmm!11:41
james_wEricHerman: yeah, just wondered if you had an old /usr/local/bin/bzr or something11:42
verterokEricHerman: please check if you have a bzr in /usr/local/bin11:42
domas'which bzr'11:43
EricHermanIndeed! but oddly it *also* gives that message.11:43
EricHermanI think I'll try to remove everything and start again.11:43
verterokEricHerman: good idea :)11:44
EricHerman well, having done a full rm -rf of all the potentailly bzr related stuff I could find on the system (with luck I didn't nuke *too* much!), then doing a reinstall using Bazaar-1.11-OSX10.5.dmg ... I no longer see the strange message. Conclusion: something stale on the filesystem was at issue. Had to be one of these: http://rafb.net/p/X85tuO44.html12:22
EricHermanon a clean system Bazaar-1.11-OSX10.5.dmg should be just fine.12:23
harobedhi, I can I do with bzr the same thing than svn status -r HEAD ?12:50
maxbharobed: svn status -r HEAD is not a valid svn command12:53
harobedsorry, svn status -u12:54
harobedor svn diff -r HEAD12:54
harobedto see differences between repository and local working copy12:55
Lo-lan-do"bzr diff :parent --new ."12:56
Lo-lan-doOr maybe "bzr diff :bound --new ." if you're in a checkout/bound branch.12:57
Lo-lan-do(Not tested, but I think that should work)12:57
harobedok, I'll test it12:58
Lo-lan-doPlease tell me if it works, it might interest me in the future :-)12:59
Lo-lan-doAlthough I usually do "bzr status" and "bzr missing :bound".13:00
harobedI've this message : bzr: ERROR: No bound location assigned.13:01
harobedok, I've binded to parent bancsh13:03
harobedbranch13:03
harobedbzr diff :bound --new . work as svn diff -r HEAD13:03
harobedbut I don't know how to do : svn status -u13:04
fullermdWell.  If you don't want it to be a checkout, don't bind it...13:04
Lo-lan-dobzr diff :bound --new . | lsdiff13:06
james_wdoes "bzr status -r branch::bound" work?13:07
harobedjames_w: yes, it work13:10
Lo-lan-doEr... I constantly get "Server does not understand Bazaar network protocol 3, reconnecting.  (Upgrade the server to avoid this.)" messages, even after upgrading the server to 1.12...13:48
Lo-lan-do(In a branch bound to a bzr+ssh://foo branch in a remote repo)13:49
Lo-lan-doHah.  It helps if I upgrade the correct server.13:53
james_wheh :-)13:53
* Lo-lan-do hides13:53
Odd_Bloke:D13:53
Lo-lan-doDamn.  I upgraded my workstation to 1.12 and now I can't reinstall bzr-svn.13:54
Lo-lan-do(Current bzr-svn depends on subvertpy, which is stuck in NEW)13:55
Lo-lan-doI'll make do with a local install in the meantime.13:56
Odd_BlokeLo-lan-do: You could build subvertpy yourself.  jelmer has published the packaging branch somewhere.14:00
Lo-lan-doYeah, I did that already :-)14:01
=== `6og is now known as Kamping_Kaiser
jelhey guys :)14:01
jelWhat's the status of nested-tree support in bzr?  I see some stuff in the wiki about a branch jelmer was working on being merged in 0.15, and that it just requires a manual bzr add path but it doesn't seem to work -- just ignores the subtree, listing it as unknown.14:03
jelThat branch was back in 2005, so It's hard to believe it's not finished.  Was it abandoned?14:03
jamvila: good morning14:10
jel/join #mercurial14:13
jelsorry guys; stupid irc client :)14:13
vilajam: good morning14:13
jamjel: it wasn't specifically abandoned, just focus of dev shifted a bit. IIRC abentley is planning on working on it near full-time in ~the  next month14:14
jamvila: just thought I'd say hi. Also, a quick question about the EC2 machine14:14
jamAre you interested in setting it up with my help? Or should I just do it?14:15
jeljam: ah, that's great news.  Are there any details of how it will be implemented/used?14:15
jamjel: So the original design was that if you did:14:15
jambzr branch $METAPROJECT project14:15
jamcd project14:15
jambzr branch $SUBPROJECT subdir14:15
jambzr add subdir14:15
jambzr commit14:15
jamThen you would have a "combined" project14:16
jamsuch that in the future doing "bzr branch $METAPROJECT" would give you both14:16
jambut the project histories would be versioned independently14:16
jamjust that when you do "bzr commit" in the outer-dir, it would recursively commit the children14:16
vilajam: I'm still uncomfortable with using Windows remotely, I still plan to set one up as a VM locally (with an emphasis on using only free software and an automated setup) so I will certainly monitor what happen on the EC2 machine14:16
jamand track the committed revision in the parent14:16
jeljam: ok, cool, sounds like the old plan, which looked very usable :)14:16
jamvila: k, I thought I might get you to write my documentation for me again. :) I have 3-4 emails about when I set up kerguelen14:17
jamand I just need to turn it into a real "setting up a win32 build host" document14:17
vilajam: certainly something I plan to do anyway :)14:17
jamSince we're setting up yet-another host, it is a good time to do so14:17
jelabentley: Is there a name for your nested-tree project, or a branch/feed somewhere where I can track its progress?14:18
vilajam: yes, that's the "yet-another" that triggers my desire to automate it (and the aim to allow others to do it as well, no matter what degree of automation I'll achieve)14:19
abentleyjel: I haven't set anything up yet.14:19
jelok, thanks14:19
jelabentley: Not to push you, but can you confirm that you're planning to work on it soon?  It's an important feature for me, and I need to make a decision on which vcs to use, is all.14:20
abentleyjel: I am planning to work on it soon.14:20
jelk, thanks :)14:21
vilaabentley: have you seen my mail about iter_changes bogus indentation regarding tree-reference handling ?14:22
abentleyvila: Yes.  Thanks for that.  I'm surprised it didn't break any test cases.14:23
vilaabentley: yeah, same here, shame :-(14:23
barryjam: ping14:58
jamhi barry14:59
barryjam: hi!  i upgraded code.python.org to bzr 1.12 today14:59
barryjam: but i think i want to upgrade the repo formats of the mirrors14:59
beunobarry, you can use recursive upgrade plugin: http://bazaar-vcs.org/BzrPlugins15:00
beunoor15:00
barryjam: we're on rich-root-pack right now.  thinking about 1.9-rich-root, but i'm trying to decide whether the performance improvement would be worth (potentially) forcing people to upgrade their clients15:00
beunojam has a nice script in contrib/15:00
jambarry: from my experimentation with the python repo, I would say yes15:01
jambut I don't create the policy for upgrading clients15:01
beuno0.92 -> 1.9 was a big improvment for me, FWIW15:01
jambeuno: for python.org it is even better, because the bzr-svn conversion compresses astoundingly well15:01
jambarry: I don't know how hard it is for your clients to upgrade15:01
jamso I can't really make that decision for yo15:01
jamyou15:01
jamI can say that for incremental updates15:02
jamit should be at least 3x faster15:02
jamfor initial branch of everything, I know there is 20% less data to copy15:02
jambut that isn't necessarily an across-the15:02
jamsorry15:02
jam20% isn't necessarily worth upgrading clients15:02
barrybeuno, jam that's significant.  i don't think there are /that/ many users of the mirrors and it's mostly early adopters anyway15:02
jambarry: so for *my* anecdote15:02
jamdoing "bzr up" for bzr.dev15:03
jamwent from 45s to 15s15:03
jamwhen there are about 3 revisions to update15:03
jamI would expect python.org to do even better15:03
santagadasorry to ask but, 15 seconds is still a lot no?15:05
barryjam: thanks.  sounds like it's worth it unless i get cries of objections15:05
jamsantagada: I was going to respond...15:07
jamAnyway, it just took 20s to update 7 mainline revs == 67 ancestry revs15:07
jamand all that over a dumb transport15:07
jamI'm not entirely sure how long things should be, but given that connecting ssh to launchpad takes 7-8s...15:08
oldmanis it possible/easy to change the e-mail address associated with a commit that has been made?15:12
oldmani.e., the `bzr whoami` entry15:12
oldmanor once its in, can you no longer do anyrthing about it?15:12
Odd_Blokeoldman: You can 'uncommit' back to it, but that'll break your history.15:13
oldmana simple sed -e 's/@example.com/@real.com/' of .bzr would not be safe?15:15
Odd_Blokeoldman: I very much doubt it.15:16
oldmanok15:16
oldmanso if I...15:16
oldmanbzr branch lp:project; bzr uncommit; bzr uncommit; bzr commit -m 'reapplied x'15:16
oldmanand then bzr push lp:project15:17
oldmanwould that work? :)15:17
Odd_Blokeoldman: You would have to 'bzr push --overwrite'.15:19
Odd_BlokeAnd it would break anyone else's branch of lp:project.15:19
oldmanit would only break their branch if they were > the revno I uncommit to though wouldn't it?15:20
=== chx_sleeping is now known as chx
phinzeis there a quick way to clean up all ~1~ back ups in a working tree?16:20
jelmerphinze, bzr clean-tree --detritus16:20
Peng_(which is provided by bzrtools)16:20
phinzebeautiful16:21
jelmerPeng_, See my last post to the mailing list :-)16:21
phinze--detritus ...? what strange voodoo is this? :)16:21
LarstiQphinze: it's a beautiful English word akin to 'cruft'16:21
Peng_jelmer: Well, it hasn't been merged yet. :P16:21
phinze"debris: the remains of something that has been destroyed or broken up "16:21
phinzenice16:21
phinzehmm might it make sense to have an option to bzr switch that performs clean-tree as well?16:26
phinzei use it on lightweight checkouts to switch branches and focus, and i don't need old detritus lying around16:28
jamjelmer: quick question about svn import layouts16:32
jamI'm accessing a repo which is of the form "trunk/project"16:32
jamrather than "project/trunk"16:32
jamdo you have a standard format for that?16:32
jammaybe it is the "itrunk" layouts16:33
jamdoesn't seem to work16:36
jelmerjam, yeah, itrunk is for that16:39
jamitrunk 1/2/3 always gives me "specified URL is under a branch"16:39
jamThe specific URL is: http://xdelta.googlecode.com/svn/trunk/xdelta316:39
jelmerjam, if you're interested in just that branch, "bzr branch" should work16:40
jamImporting as "trunk" just worked, but gave me both projects16:40
jelmer"bzr branch http://xdelta.googlecode.com/svn/trunk/xdelta3 xdelta3" should work16:40
jamjelmer: it did... so why doesn't svn-import work?16:40
jelmerjam, bzr branch always works, it assumes the URL you give it is a branch16:41
jelmersvn-import imports multiple branches16:41
jelmerso it has to guess what the layout is16:41
jamsure. though I would have thought it matched the "itrunk" layout pretty closely16:42
jamwhich is why it is strange that "bzr svn-import --layout=itrunk1" never worked16:42
jamthen again, it isn't clear (to me) what 'level' means16:43
jelmerjam, which URL did you give it ? http://xdelta.googlecode.com/svn ?16:43
jamhttp://xdelta.googlecode.com/svn/trunk/xdelta316:43
jamI should give it the root of the repo?16:44
jamFor auto-detect import: http://xdelta.googlecode.com/svn/trunk worked just fine16:44
jelmerjam: svn-import on a branch should fail16:44
jelmerhttp://xdelta.googlecode.com/svn/trunk doesn't work here:16:45
jelmerbzr: ERROR: http://xdelta.googlecode.com/svn/trunk appears to contain a branch. For individual branches, use 'bzr branch'.16:45
jamI just did "bzr svn-import  http://xdelta.googlecode.com/svn/trunk" I'll try to verify that16:45
jamnope, you're right16:46
jamI must have used .../svn the first time16:46
jamjelmer: so would doing "bzr branch .../svn/trunk/xdelta3" give me the same final branch as "bzr svn-import --layout=itrunk1" ?16:48
jam(are they compatible?)16:48
jelmerjam, yes16:49
jelmerjam, well, if you're using 0.516:49
jamjelmer: yeah, I ame16:52
jaminterestingly I get an error at the very end16:52
jam  File "/home/jameinel/.bazaar/plugins/svn/revmeta.py", line 1188, in get_revision16:53
jam    cached.metaiterators.add(metaiterator)16:53
jam  File "/home/jameinel/.bazaar/plugins/svn/revmeta.py", line 963, in __hash__16:53
jam    return hash((type(self), self.from_revnum, self.to_revnum, tuple(self.prefixes), hash(self.layou16:53
jamt)))16:53
jamTypeError: 'NoneType' object is not iterable16:53
jelmerwhich bit is None ?16:53
jamI don't know16:53
jamself.prefixes probably16:54
jamanyway, "bzr branch" is great for what I need. Just wanted to understand things a bit better.16:54
jamthanks for your tie16:54
jamtime16:54
jelmerjam, Thanks, I think what's wrong16:58
jelmerjam, bug in itrunk116:58
* jelmer fix0rs16:58
jam:) \o/16:58
nevansjelmer: for #332116, I had already tried svn-upgrade... but for some reason, it refuses to upgrade that branch.17:03
jelmernevans, what's the error?17:03
nevansit successfully upgraded trunk and another branch.17:03
nevansno error.  it just doesn't do anything.17:03
nevanslemme try again.  I'll attach the bzr.log17:04
Peng_jelmer: How much of an impact does svn 1.5 have on performance and whatnot?17:22
jelmerPeng_, svn 1.5 or bzr-svn 0.5 ?17:22
=== jfroy_ is now known as jfroy
Peng_jelmer: svn 1.5.17:41
Peng_jelmer: The revision "Use global needed variable." vanished from bzr-svn 0.5's history. Was that intentional?17:42
Peng_I've got a mix of 1.3 and 1.4, so I'm wondering if it's worth doing anything about it. bzr-svn is already fast enough with them, I guess, but I dunno.17:50
jelmerPeng_, the main advantage of 1.5 is that you can use revision proeprties for bzr-svn metadata17:52
jelmerretrieving that metadata will also be faster with 1.517:52
jelmerother things won't be significantly faster17:52
jelmerPeng_, yeah, it's correct that revision vanished17:52
Peng_Poor, unloved revision. :(17:58
Peng_Anyway, thanks for the information. :)17:58
rockstarabentley, hey17:58
abentleyhey17:59
rockstarabentley, I'm looking at the integrating with bazaar wiki page, and there's a line that reads:18:01
rockstarsource.create_checkout('/tmp/newBzrCheckout', None, True, accelerator_tree)18:01
rockstarDoes that operate in place, or return the checkout?  The wiki makes it look like it operates in place.18:01
jfroyjelmer: good morning18:01
rockstarabentley, and so that would make me think that source would change types.18:01
jelmerjfroy, hi18:02
abentleyrockstar: I believe source.create_checkout returns the working tree.18:02
rockstarabentley, okay, that's better.18:02
abentleyrockstar: It does not change the type of the branch.  The branch remains a branch.  It's just a branch that is checked out somewhere.18:03
rockstarabentley, okay, so when I reference branch now, it's still the remote branch that I opened with Branch.open('lp:blah')18:03
abentleyYes.18:04
jelmerjam, any chance you can do a quick review of my InterBranch patch?18:34
jelmerjam, That one would really help a lot of things wrt bzr-svn UI and performance and is a requirement for bzr-git pull from remote branches18:34
LaserJockI can't seem to branch with bzr-svn 0.519:03
jelmerhi LaserJock19:03
jelmerLaserJock, what doesn't work?19:03
LaserJockI just get bzr: ERROR: Not a branch:19:03
jelmerwhich SVN url?19:04
LaserJocksvn://anonsvn.kde.org/home/kde/trunk/extragear/sysadmin/kiosktool/19:04
LaserJocksvn co works fine19:04
jelmerLaserJock, the layout for the KDE repository is hardcoded19:05
jelmerLaserJock, try svn://anonsvn.kde.org/home/kde/trunk/extragear19:05
LaserJockjelmer: ok, well that works19:06
LaserJockjelmer: so is there a way to get sysadmin/kiosktool ?19:07
jelmerLaserJock, you can set layout = itrunk3 in the configuration for the KDE URL19:08
jelmerLaserJock, patches to bzrlib.plugins.svn.layout.custom.KDELayout are also welcome19:09
LaserJockjelmer: where do you set layout = itrunk3 ?19:18
jelmerLaserJock, ~/.bazaar/subversion.conf or ~/.bazaar/locations.conf19:18
jelmerin the section related to the KDE repo19:18
LaserJockjelmer: there isn't a KDE section yet as I haven't branched, can I make one or do I need to branch something first?19:19
jelmerLaserJock, you can add one19:21
jelmerLaserJock, you might want to add use-cache = False too19:22
LaserJockjelmer: got it going19:24
LaserJockjelmer: this is *way* faster than 0.4 . I've been stuck with svn for KDE but this definately seems usable19:25
jelmerLaserJock, cool !19:29
jelmerLaserJock, that was one of the main goals of 0.519:30
jelmerLaserJock, Ideally the KDELayout class should be customized to properly recognize all branches in the KDE svn repository19:36
jelmerLaserJock: that would, among other things, fix "bzr svn-import svn://anonsvn.kde.org/home/kde"19:37
jelmerabentley: Hi19:47
abentleyjelmer: hi19:47
jelmerabentley: Is there some way to register a remote branch on Launchpad?19:47
abentleyjelmer: I believe so.19:48
jelmerabentley: Any pointer ? Where should I be looking?19:48
abentleyGo to your profile page, hit the code tab, click the big orange "register a branch".19:49
jelmerabentley: Ah, thanks19:49
abentleyjelmer: np19:50
jelmerabentley: Do you happen to know if there's something similar for the remote API?19:50
abentleyjelmer: I don't know.19:50
jelmerabentley: ok, thanks again19:51
jfroyjelmer: is push now safe to use to create a new branch with bzr-svn?19:58
jfroythe svn-push command is gone, but the release notes are not clear if push will work right now or is currently broken pending some changes to bzr19:58
jelmerjfroy, svn-push still works for now19:58
jelmerjfroy, "bzr push" working out of the box is waiting for a patch to enter bzr.dev19:58
jfroyOK, so it's just gone from the command help topic.19:59
jelmerjfroy: yep20:03
etenilHi there20:16
etenilI'm having trouble splitting a tree with bzr20:16
etenildoing bzr split only produces an error20:16
Peng_...What's the error?20:17
etenilbzr: ERROR: No WorkingTree exists for "file:///home/guillaume/sandbox/bzr_tree/Bell/trunk/.bzr/checkout/".20:17
etenildon't understand it20:17
Peng_It seems "bzr split" needs the branch to have a working tree. You could run "bzr co" to create it and "bzr remove-tree" to remove it again afterwards.20:19
* Peng_ shrugs20:19
etenil?20:20
etenilI'm trying to branch the tree and split from there maybe20:20
etenilnow it says:20:21
etenilbzr: ERROR: To use this feature you must upgrade your branch at file:///home/guillaume/sandbox/bzr_branch/.20:21
etenilI try a checkout as you suggested20:22
jelmeretenil, I think you need to upgrade to a rich-root format (such as 1.9-rich-root) to be able to use split20:22
etenilhow can I upgrade the tree?20:22
etenilis there a command?20:23
jelmerbzr upgrade --1.9-rich-root20:23
etenilok, I'll give it a try20:23
etenilbzr: ERROR: no such option: --1.9-rich-root20:24
etenil-_-20:24
etenilI can just use --rich-root20:24
etenilfrom what the help says20:24
etenilOnce I have split my tree, will the created branch have its versions renumbered?20:27
Peng_etenil: It would be better to use --rich-root-pack than --rich-root.20:33
Peng_etenil: What version of bzr are you running?20:34
Peng_jelmer: Not to be excessively stalky, but why did you just rename lp:bzr-svn's branch?20:40
Peng_Oh, it's not mirrored now.20:41
jelmerPeng_, Yep20:42
jelmerPeng_, this should save me some explanation when people try lp:bzr-svn and it's out of date20:42
Peng_Ah.20:42
Peng_The email alerts for new revisions were nice, but oh well.20:43
jelmerPeng_, ah, there's no emails for remote branches?20:43
Peng_jelmer: I dunno. Probably not, since it doesn't show the log.20:44
jelmerPeng_, ideal would be a mixture of mirrored and remote branches20:44
jelmerwhere it would redirect .bzr to the actual branch but still keep a lp-specific mirror20:44
Peng_That would be neat, but kind of confusing.20:45
Goundybzr update returns tree is up to date (rev 42) and my repo is at revision 43 (using launchpad)...20:46
GoundyI don't know what to do :/20:46
Peng_Goundy: "bzr pull"?20:46
GoundyPeng ah20:46
GoundyPeng I don't get it... I get an error ^^20:47
Peng_You do?20:47
GoundyPeng I think I understand I did a bzr pull and kicked out my mainline before ><20:48
Goundyforgot20:48
Goundythank you Peng20:48
etenilthe conversion worked20:49
etenili try the split20:49
Peng_Goundy: You figured it out? That's good. :)20:49
GoundyPeng_ yea >_< thanks !20:49
Takjelmer: md 2.0b1 packages in debian/experimental20:51
jelmerTak, w00t!20:52
Takthe libpython md-bzr backend is rocking20:55
etenilthat works!!!!20:55
jelmerTak, I'll give it a try :-)21:01
etenilalright, thanx for your help all21:07
etenilbye21:07
etenilHi again21:18
etenilI have split up a directory from a tree21:18
etenilbut there are gaps in the revisions21:19
etenilis it possible to renumber the revisions?21:19
jelmeretenil, what do you mean with gaps?21:24
etenilwell21:24
etenilmy bzr tree comes from a svn tree. And many projects were in there. Some revisions are only relevant to some of them21:25
jelmeretenil: bzr and svn revision numbers are different - the svn revision numbers are per-repository, the bzr revision numbers are per-branch21:27
etenilor maybe I should split and renumber with svn then convert21:27
jelmeretenil, if you have bzr-svn installed then "bzr log -v" will show the original svn revno as well as the bzr revno21:27
etenilok21:28
etenilbut I don't want to keep the svn tree21:28
jelmeretenil, the information about the original svn revno is in the bzr tree21:28
etenilI want to split it per project and port to bzr21:28
jelmeretenil, why are you running "bzr split" btw? If you need just a subdir of the svn repository, you can just "bzr branch" that instead21:29
eteniljelmer: that's ok, I think svndumpfilter can split the svn repo and renumber it21:30
etenilI can import it after that21:30
lifelessjelmer: 'bzr register-branch' ?21:40
jelmerlifeless, that registers a mirrored rather than a remote branch21:40
lifelessoh21:42
lifelessis that a problem?21:42
jelmerlifeless, in some situations it's useful to be able to register remote branches21:42
jelmersince they don't have a delay21:43
jelmerlifeless, not that I would register remote branches very often, being able to do it through the web ui keeps me happy enough21:44
lifelessjam: hi21:56
jamhi lifeless, just writing up some summary stuff about my latest version of gc, and I just put together an xdelta repo21:57
lifelessI saw21:57
lifelessis it faster than last time you looked at xdelta?21:57
jamthe way it is implemented right now, not really21:58
jamI'm doing multi-parent with unlimited delta chains21:58
jamit is faster to compress than gc21:58
jambut slower to extract21:58
jam(3m45s versus 10min to compress, but 1m30s versus 17s to extract)21:58
lifelessvery interesting21:59
lifelessany feeling on why its faster? [Can we use the compressor in gc ?]22:00
jamlifeless: why the compression is faster?22:01
jamit probably has less *stuff* to compare against22:01
jamdoing multi-parent22:02
jammeans you are comparing 1k lines versus 2k lines22:02
jamwhile gc is comparing with all texts inserted so far22:02
lifelessOTOH gc doesn't have to build new dicts all the time22:02
jamsure22:02
lifelessI'm wondering if xdelta simply has a better compare logic we could adapt22:03
jamxdelta is also written in C by people who have been spending a lot of time optimizing it :)22:03
jamat least, more time than you and I have probably spent on GC22:03
jamoh, and for the record, I should mention that the "repository-details" time for the knit repo is 30s22:03
jamso it is ~18s to extract all texts for gc, 30s for knits, and currently 1m30s for xdelta22:04
jamthough when gc was experiencing bad paging, it was down at 7min22:04
jamso I'm willing to give xdelta a bit of margin here.22:04
lifelessme too22:04
lifelessxdelta certainly has a good[same as knit] story for skinny packs/delta reuse22:05
jamlifeless: I should also mention that your new changes to the streaming logic confuse existing plugins22:05
jam"knit-delta-closure" isn't in the adapter registry22:05
lifelessI'm very concerned about getting good compression out of it though22:05
jamlifeless: well, for multiparent versus my best gc so far, I get 9M for xdelta, versus 11MB for gc22:05
jamso at least *right now* the story is just fine22:06
lifelessjam: yah, one reason we pushed hard on this is that its the start of the release cycle, best time for disruption22:06
lifelessas far as being in the adapter registry, just try for fulltext22:06
lifelessyou can see the change in knit.py in insert_record_stream22:07
jamk22:07
jamanyway, I need to get going22:08
jamhave a good weekend, lifelessf22:08
lifelessciao22:09
lifelessI'm going to send up the final parts this morning22:09
lifelessif you have a chance to review it, would love that:)22:09
lifelessjam: thats *very* interesting that mp is smaller than gc; even with reordered texts?22:11
=== sdboyer-laptop is now known as Crell_
ameoba_I have a directory with a few hundred files in it.  I want to ignore most of them, but not all.  if I ignore $DIR/*, will it cause problems down the line if I want to add/modify specific files from there?  I'm asking because of the "Warning: the following files are version controlled and match your ignore pattern" when I added the ignore22:46
=== Crell_ is now known as sdboyer-laptop
=== chx is now known as chx_sleeping
fullermdameoba_: No, it's just letting you know.23:00
ameoba_fullermd-  that's what I was hoping for.  thx23:01
fullermdignore means "Don't add this file we we find it recursively".  It doesn't have any effect on files that are already versioned or added explicitly.23:01
phinzeuh oh, i think i broke shelve23:06
phinzei shelved on a bound checkout before running bzr up and then tried to unshelve23:06
tyhicksTrying to find an equivalent to git-cherry-pick. I want to grab individual patches from other branches and don't want a seperate merge message.23:21
tyhicksAny tips for how I can do this?23:22
lifelessphinze: it should unshelve fine; what happens?23:23
lifelesstyhicks: merge -r x..y does a cherry pick23:23
lifelesstyhicks: because its not a transitive link in the graph the old revisions are not shown in log; you do need to supply a commit message (but it's scriptable with a tiny bit of python if you are doing this a lot and want to carry the commit message and author across automatically)23:24
tyhickslifeless: IIRC, I have to do a commit afterwards and that creates another merge message23:25
lifelesstyhicks: it will create a new commit object; just like git-cherry-pick does23:25
lifelesstyhicks: it won't show as a merge, because cherry picks are not full merges23:25
spivlifeless: https://bugs.edge.launchpad.net/bzr/+bug/33231423:25
ubottuError: Could not parse data returned by Ubuntu: HTTP Error 502: Bad Gateway (https://launchpad.net/bugs/332314/+text)23:26
lifelessspiv: guess what23:26
spivlifeless: short story: the client isn't falling back when Repository.insert_stream is unavailable.23:26
lifelessspiv: doh!23:27
lifelessspiv: I'm seeing something very similar, in the stacked case, which hasn't landed yet23:27
lifelessFAILED (failures=8, errors=19, known_failure_count=20)23:27
lifelessspiv: are you going to do some bzr coding today?23:28
spivlifeless: sadly no :(23:28
lifelessspiv: I'm hoping to get the stcked case up for review23:28
spivlifeless: I have to head up to the blue mountains today/tomorrow23:28
lifelessnice23:28
spiv"have to".  Woe is me ;)23:29
lifelessspiv: hiking?23:29
spivA bunch of stuff, farewell party, visiting family, possibly a small bushwalk might happen too...23:30
lifelessenjoy!23:30
spivThanks!23:32
lifelesscan you look at remote.py, 137023:34
lifelessthat looks like it should fallback fine to me23:34
lifelessspiv: perhaps the stream is being eaten partly?23:34
spivlifeless: ah, hmm23:35
spivlifeless: It *might* be an interaction with body_stream?23:36
spivlifeless: oh!23:36
lifelessI think the stream is consumed23:36
lifelessthe error is raised23:36
lifelessremaining elements are consumed23:37
spivyes, I bet the stream is being at least partly consumed23:37
lifelessno error, but data not getting there23:37
spivI'd only *expect* partly, but I've been wrong before.23:37
lifelessyour bug report shows the case that the entire stream is eaten23:37
spivRight -- but I was also only pushing one new rev.23:37
lifelessthats why the pack is deleted (it showed up as a no-op insertion)23:37
lifelessone rev has a inventory too at minimum23:37
lifelessso 2 records23:37
* spiv nods23:38
lifelessIf I guard it with 1,1323:38
lifelessand make it mandatory23:38
lifelessthat will be safe I think23:38
spiv(That rev should have a text and sig, too)23:38
spivSo long as some prior RPC notices that remote is not 1,1323:39
spivBut that guard is a good idea anyway, avoid trying the RPC when we know it won't work.23:39
lifelessif its mandatory - no fallback - then we won't insert a partial stream23:39
lifelessthats the correctness aspect23:39
spivOh, I see.23:39
spivAn ugly hack would be to first try with a stream of []23:40
lifelessgarh no23:40
spivI definitely don't want that as the final solution.23:40
spivBut it would fix the current bug that's breaking bzr.dev...23:41
spivOh, right.  Of course, you are unlikely to get an error back until the whole stream is consumed,23:41
spivbecause the whole request is sent before a response is sent.23:41
spivSo yeah, the entire stream will be consumed... so I guess you're thinking of moving the fallback logic to closer to where the stream is being generated?23:42
lifelessassuming this passes is it ok, to stop people running trunk corrupting repos23:43
lifelesshttp://paste.ubuntu.com/120786/23:43
spiv_is_remote_before((1,13)) will not be true most of the time, though.23:44
spivUnless the server is *really* old ((1,6) or earlier)23:44
lifelessso unknown is > everything?23:45
spivNothing ever does _remember_remote_is_before((1,13)) or whatever the magic is.23:45
lifelessI thought v3 got the servers version23:45
spivRight.  It assumes "current", and then ratchets down based purely on RPCs that are unknown.23:45
spivThere's a header, but it's currently purely advisory.23:46
lifelessah23:46
lifelessso this is critical to fix:P23:46
spiv(And its value is not necessarily parseable, it's more intended for human-consumption)23:46
lifelessuhm, inserting [] will probably work23:46
spivYou could make a new version of get_parent_map that's only in 1.13 ;)23:47
jfroyhey people, quick census / survey: what would you consider to be the "essential plug-ins you should have"?23:47
lifelessjfroy: depends on what I'm doing23:47
jfroyI'm building a bazaar distribution and I'm now selecting the plug-ins I will include along with core.23:47
spivjfroy: for me personally, it's bzrtools, loom, pqm, launchpad, gtk, svn23:48
lifelessjfroy: but see my patch for bundling some plugins for a list of ones we concluded were good to bundle23:48
spivBut it definitely depends on what the person is doing.23:48
spivlifeless: so I need to go23:48
jfroyThe target audience is people who use primary subversion (bzr-svn is already in), and people who may be using another DVCS, likely git.23:48
spivlifeless: I think you now have all the relevant info for this bug, though.23:48
lifelessspiv: ok; I'll insert []23:49
jfroylifeless: where is that patch? mailing list, bug?23:49
lifelessbb:approve for that?23:49
spivlifeless: ok23:49
lifelessjfroy: bundle buggy somewhere; its not finished {doesn't run the install for each plugin}23:49
lifelessspiv: I'm surprised the RemoteV2 tests dont' trigger this23:50
spivlifeless: yep.  Ideally add the _remember_remote_is_before / _remote_is_before guard like other client methods do.23:50
spivlifeless: RemoteV2 tests know _remote_is_before((1,6))...23:50
spivlifeless: oh!23:50
lifelessspiv: I'll get the simplest possible correctness fix up now23:50
spivlifeless: RemoteV2 also triggers an instant UnknownSmartMethod when you try call_with_body_stream23:50
lifelessspiv: ah23:50
spivlifeless: it never consumes the stream in that case, because the encoder knows it can't be done :)23:51
jfroylifeless: http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C1217210104.21600.106.camel%40lifeless-64%3E?23:51
spivlifeless: perhaps it should consume the stream, just to make it harder to get confused...23:51
spivlifeless: after all, the caller has to cope with a consumed stream anyway...23:51
lifelessspiv: well, we could look at buffering the stream in a T join, until we know success/fail (HTTP can error before a post completes)23:56
lifelessjfroy: yes23:56

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