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

CaMasonhi guys. I'm trying to revert to a previous revision, but  I'm getting ERROR: [Error 2] The system cannot find the file specified00:33
CaMasonThis is on Windows00:33
CaMasonwhich I figure is a problem with the case of the file00:33
lifelessthere should be a full backtrace in your bzr.log00:34
CaMasonI have a feeling my earlier experiment with cygwin was causing some conflicts00:36
thumperabentley: ping00:44
thumperabentley: I have a question about preview trees00:45
abentleythumper: pong00:45
thumperabentley: and getting dependent branches working with lp:mad00:45
lifelessCaMason: well maybe; happy to help - pastebin the full exception as a starting point though00:45
* thumper drew a face for lp:mad last night00:45
thumperabentley: I know you were working on that area of preview trees, but I don't know if it landed in trunk00:46
abentleythumper: I'm pretty sure it did.  You can generate a preview tree from a preview tree, which is what you need to do.00:47
thumperabentley: all the code is on lp now :)00:48
thumperyay00:48
fallenpegasusis tailor the current best practice for converting a hg project to bzr?  it seems pretty heavyweight00:53
lifelessjelmer: I'm a little confused why you needed InterBranch to make update_revisions work right for you00:55
lifelessjelmer: not that InterBranch is bad; it just seems like it doesn't add anything for bzr svn00:55
jelmerlifeless: bzr-git can't return revno's for remote branches01:01
jelmerlifeless, since git doesn't expose the revision graph01:01
jelmer(not without fetching the actual revisions, anyway)01:01
jelmerlifeless, for bzr-svn it's just a performance improvement, since calculating the revno for a remote svn revision is more expensive than calculating it for the revision once it's been fetched into the local bzr branch01:02
thumperjelmer: has bzr-git been frozen for rev-ids?01:02
thumperjelmer: we are looking to use it soon01:02
jelmerthumper: yes01:02
jelmerthumper: This was actually one of the requirements for actually making bzr-git work with a vanilla bzr01:03
jelmers/This/This patch/01:03
thumperjelmer: cool01:04
thumperjelmer: have you done a "release" of bzr-git?01:04
lifelessjelmer: ah01:04
lifelessthanks01:04
jelmerthumper, no, was waiting for this patch to land :-)01:05
jelmerthumper, I'll do one at around the same time as bzr 1.1301:05
thumperjelmer: what patch does it need?01:06
thumperjelmer: and will it be ready for next week?01:06
jelmerthumper, the patch it needs landed 5 minutes ago :-)01:07
thumperjelmer: cool, so bzr-git needs bzr 1.13?01:07
jelmerthumper, yep01:08
thumperwhat's the date for 1.13 rc?01:08
jelmerthumper, Martin's original announcement said march 6, but I'm not sure if that's still true01:09
lifelessthumper: got some sort of rush?01:12
thumperlifeless: we are sprinting next week on integrating this into lp01:12
jelmerthumper, I should point out that bzr-git isn't ready for imports of e.g. the linux kernel yet01:13
thumperjelmer: what is it ready for?01:14
jmlbzr init-repo --1.9 --no-trees ~/repos/<proj>; bzr branch lp:<proj> ~/repos/<proj>/trunk; mkdir ~/src/<proj>; bzr co --lightweight ~/repos/<proj>/trunk ~/src/<proj>/trunk01:14
thumperjelmer: and what are the limitations?01:14
jmlsomeone please write a computer program to do that for me.01:14
lifelessjml: jamesh already did01:14
jelmerthumper, it hasn't been optimized for performance01:15
jelmerthumper, I've used it for moderately sized projects, e.g. couple of hundred revisions, couple of hundred files01:15
lifelessdoes it round trip yet?01:16
lifelessare there conversion logic bumps in the pipeline?01:16
jmllifeless: what's it called?01:16
jelmerlifeless: no, it doesn't roundtrip yet01:16
jmllifeless: how can I use it?01:16
lifelessjml: gnome-somethjing-or-other01:16
jelmerlifeless, roundtripping is nontrivial01:16
lifelessjelmer: I'm sure :P01:16
thumperlifeless: that is something else I think01:16
jelmerlifeless, in other words - yes, there are mapping bumps ahead01:17
thumperjml: don't forget the additions to the locations config for cbranch :)01:17
lifelessjelmer: I'm just alarmed that thumper might throw  it onto LP suddenly :P01:17
jmlthumper: I don't need to worry about that.01:17
thumperjml: my thoughts would be a bzrtools command01:17
jmlthumper: I have some magic in my locations.conf that takes care of it.01:18
thumperjml: I'd like your magic01:18
jmlthumper: http://paste.ubuntu.com/123098/01:18
thumperlifeless: my push to LP to an existing stacked branch is borked01:19
thumperlifeless: is this expected?01:19
thumperlifeless: I'm using the bzr from the nightly ppa01:19
jmlthumper: the only thing I have to specify per-project is the submit branch01:19
lifelessthumper: details01:19
thumperlifeless: by borked I mean nothing output for over 8 minutes01:19
jmlthumper: one day, I'll figure out a way of getting bzr to default to ~/repos/<proj>/trunk01:19
lifelessyes, its working fine01:19
lifelessthumper: ^01:19
lifelessthumper: just no progress bar01:19
thumperlifeless: why is it taking so long?01:20
thumperlifeless: it is one or two new revisions01:20
thumperlifeless: to an existing stacked branch01:20
lifelessthumper: well, depending on which nightly build you have01:20
lifelessyou may be running into one of a couple of bugs we found01:20
lifelesswhere fixing X broke/regressed Y01:21
thumperlifeless: should I kill it or just wait?01:21
lifelesswhat revno is your bzr01:21
thumperI have 1.13~bzr8.10-40041-1 installed01:22
lifelessman, how to turn that into a revno01:23
thumpersorry, 404101:23
thumperI think that is the revno isn't it?01:23
thumpertoo many zeros01:23
lifelessok01:24
lifelessin which case you're missing 404301:24
lifelessand it will take an hour01:24
thumperthat I am01:24
thumperan hour?01:24
thumpergeez01:24
lifelessuna hora per favour01:24
thumpershould I care what it is doint?01:24
thumperit isn't sending heaps of revisions is it?01:24
lifelessno01:25
lifelessor yes01:25
lifelessdepending on your point of view01:25
thumperlifeless: man, you are so helpful01:25
lifelessit was a bug, its fixed :)01:25
lifelesshow much more helpful do you want?01:25
thumperlifeless: can you give me unlimited cosmic power?01:28
lifelessthumper: sorry, no01:28
* fullermd can only dispense terrestrial power.01:28
lifelessthumper: its not inserting unnecessary revisions into the brnach01:31
lifelessthumper: its just calculating a bunch of stuf it doesn't need01:31
lifelessso that it can avoid calculating something it does need :P01:32
garyvdmWho can I ask questions relating to expected performance of graph methods?01:34
garyvdmI'm looking at the profile data for a particular use case in qbzr01:35
garyvdmIn qlog01:35
garyvdmThe data is not what I expected.01:35
garyvdmI've looking at a branch that has a pending merge.01:36
lifelessme, john, the list are all good candidates01:36
lifelessaaron too01:36
garyvdmqlog uses graph.find_unique_ancestors to figure out which revisions are part of the pending merge, and which are part of the rest of the branch.01:37
garyvdmThe cost of graph.find_unique_ancestors is higher than the cost of graph.iter_ancestry01:38
garyvdmLifeless: is that normal01:39
lifelessdoesn't sound normal, but it could be a bug :P01:39
lifelessbzr st got changed to not show a similar thing, I don't recall if someone looked into the cost of the calculation, or not01:40
garyvdmOk - I'll investigate.01:41
mtaylorlifeless: bzr-hg?01:46
mtaylorlifeless: AttributeError: 'HgBzrDirFormat' object has no attribute '_workingtree_format'01:46
lifelessmtaylor: doing a selftest?01:50
mtaylorlifeless: a friend is trying to migrate some stuff from hg to bzr01:50
mtaylorlifeless: is there a better way than cd ~/.bazaar/plugins ; bzr branch lp:bzr-hg bzr_hg ?01:51
lifelessfast-export is probably the best route at the moment01:51
lifelessjelmer is doing bzr-hg dev at the moemnt01:51
mtayloris fast-export written up somewhere sensible?01:52
lifelessjelmer: btw, I asked before, but why isn't your stuff in the trunk of bzr-hg and bzr-git ?01:52
lifelessmtaylor: http://bazaar-vcs.org/BzrFastImport01:52
mtaylorlifeless: rock. thakns!01:53
lifelessspiv: you've been very quiet today01:58
jamlifeless: for the bug you brought up earlier. I think your new fetch cycle wil have fixed it, but there definitely was a bug there in the past02:06
spivlifeless: yeah.  I spent more time looking at/writing up my xfce thoughts than I expected.02:06
spivlifeless: it just occurred to me, btw, that I do in a sense have two unfinished branches lying around02:07
spivlifeless: smart protocol traffic reporting, and /~/ support for bzr+ssh02:07
lifelessjam: I don't deny the bug :) in fact I checked carefully that it wouldn't regress02:08
lifelessjam: which was easy as you wrote a test for it :>02:08
lifelessjam: there is a merge request up for a patch rolling back just part of the changes you ade02:08
lifeless*made*02:08
jelmerlifeless, I'm not sure why it's not in the trunk :-)02:08
lifelessjelmer: push man, push02:08
jelmerlifeless, I guess it's mainly that I'm not used to pushing to launchpad and the trunks are in launchpad02:09
fullermdOh, jeez.  I'd given up hoping for bzr+ssh:/~/02:09
jelmertime to fix the bzr-jelmer plugin :-P02:09
lifelessjelmer: please do push them; lp isn't evil. Honestly.02:09
jamlifeless: your patch had no revisions, BB:resubmit02:09
lifelessjam: grah02:09
jamthere *was* a bundle there, but it was empty02:09
jamI assume you forgot a submit branch/ used the local branch02:10
lifelessjam: I did branch dev new; merge -r y..x .; commit; send02:10
lifelessthe merge changed the submit branch :(02:10
spivlifeless: also, I think we should add some more remember_remote_is_before((1, 13)) in remote.py, and corresponding if _is_remote_before guards to skip straight to fallbacks, for the sake of minimising impact when talking to older servers.02:10
lifelessjam: -> list02:11
lifelessspiv: I think that makes sense, I'd like to put that on the 'after protocol freeze' list02:11
lifelessspiv: ack on the two branches02:11
spivlifeless: agreed about 'after freeze'02:11
lifelessthe smart protocol traffic reporting - why didn't that land again ?02:11
spivI think it should probably borrow vila's work for http traffic reporting, but I didn't make time to look closely enough in time for the release.02:12
spivIIRC, he decorates the underlying socket object with a traffic reporter, which sounds like it would work well for smart media too.02:13
lifelessindeed02:14
spivOh, and I suspect that if my patch landed as is with vila's patch already integrated, then smart http traffic would probably have been reported twice...02:14
spivWe didn't need to make hpss look even worse than reality! ;)02:14
lifelessvery true02:15
jamspiv: far from it, it would look like you were getting amazing download speeds02:15
lifelessI've nearly finished find repository v302:15
lifelesswhich will ensure that we always have a network name02:15
spivjam: yeah, but then the release that fixes the bug would look like it was half the speed ;)02:16
lifelessallowing PackToRemote to check compatibility without _ensure_real02:16
spivHooray02:16
lifelessthat + moving fetch_order and uses_deletas to format02:16
lifelesswill avoid real repo at all for push I *think*02:16
lifelessthe patch jam is looking at is a prereq for that stack of changes02:16
jamlifeless: so I don't think you fix is 'complete' just from the bugs I noticed in the code02:21
jamlifeless: the issue is when 'buffered=True'02:21
jamthe code has02:21
jamif not buffered: self.index.add_records()02:21
jamhowever later on it unilaterally does02:21
jamadded_keys = [record.key]02:21
jamwhile added_keys:02:21
jam  ...02:21
jamwhich assumes that it successfully added the key02:22
jamand anything that depends on it can be added02:22
jamLook at the last example: https://bugs.edge.launchpad.net/bzr/+bug/304841/comments/502:22
ubottuUbuntu bug 304841 in bzr "bzr push raises RevisionNotPresent" [Critical,Fix released]02:22
jamIn case that helps02:22
jamIf we get 'E' before 'D', then E gets buffered, when D comes in, we still haven't seen 'C', but since D shows up, we think we can insert E02:23
lifelessjam: thats deliberate02:23
jamlifeless: It is deliberate to record the entry "E" even though you would fail to extract it?02:23
lifelessjam: yes02:23
jamI don't understand02:24
lifelessjam: there are comments about this, but let me try explaining02:24
jamGiven that you intentionally don't record *D*02:24
lifelessthere are two index implementations02:24
lifelessKndx and Pack02:24
jam            # Add any records whose basis parent is now available.02:24
jamI see that, but that isn't really enough info02:24
lifelessso there are two loops02:25
lifelessthere is a loop over the stream02:25
lifelessand the logic in there is 'if the compression parent is available just add it'02:25
lifelessif its not, buffer it02:25
lifelessif its buffered its not in the index and its children (and their children etc) will also be buffered02:25
jamlifeless: except the children that *were* buffered02:26
jamget inserted *at that time*02:26
jam*when* the entry is buffered02:26
lifelessjam: huh02:26
jamThe 'added_keys = [record.key]" is *outside* the 'if not buffered" check02:27
lifelessoh, you are suggesting we need a02:27
lifelessif buffered:02:27
lifelessat that point? That makes sense to me02:27
jamlifeless: well, 'if not buffered', but yes02:27
jamlifeless: and you need to move the 'buffered' variable higher in scope02:27
lifelessyeah02:27
jamso that all paths have ti02:27
lifelesslet me do that02:27
jamit02:27
jamI think with that02:27
jamthe fix is complete02:28
jamI just did 'topological' because it was easier to 'get stuff working'02:28
lifelesshttp://paste.ubuntu.com/123109/02:28
jamand would hide any other bugs that were latent to get the release out02:28
jamlifeless: seems fine, you could reduce the indenting slightly by just setting 'added_keys = []', but I would approve that patch02:29
lifelessso this wouldn't affect pack repositories at all02:29
lifelessonly .knit02:29
jamno, it effects packs02:29
jamwhen stacked02:29
lifelessbut its good not to break them :)02:29
jamand getting 'unordered' streams02:29
jamwell, assuming you don't actually get the complete stream02:29
lifelesshow does it affect packs?02:29
lifelessif you don't get the complete stream, thats an issue :)02:30
jam... I guess you mean the index won't become visible?02:30
jamif all the gaps weren't filled in?02:30
lifelessyes, it will fail atomically02:30
jamlifeless: It *did* trigger bugs with stacking02:30
jambecause of trying to extract a fulltext02:30
jambut the delta-chain wasn't complete02:30
jamI *think* that code is fixed02:30
lifelessah, with an adapter02:30
jamby properly looking at 'compression_parent'02:30
jamrather than missing(parents)02:30
lifelessok, if you're happy I'll commit this and push to pqm02:31
jamlifeless: go ahead02:32
lifelessthanks02:33
jamlifeless: so i'm still a little concerned that stacking + 'unordered' fetching will cause problems with trying to expand texts, but perhaps with your new two-pass logic it will be ok02:35
lifelesswe do topological for conversion push02:36
lifelessso the reason we do expansion of texts with stacking was to get the delta closure in02:36
lifelessjam: the two-pass logic should avoid that though with a newer server02:37
lifelessit passes the acceptance test you wrote02:37
jamlifeless: with the other fix, I can't think of a way to break it, but let me think about it for a bit02:40
jamlifeless: it should be fine02:43
lifelessjam: cool; if its not I'll fix it :)02:44
iahello. could you tell me, please, If i use latest version of bzr, which contains "push" bug (https://bugs.launchpad.net/bzr/+bug/295350), then does exist some way to push branches in such version of bzr?02:52
ubottuUbuntu bug 295350 in bzr "Push fails with Revision {set([('null:',)])} not present in "KnitVersionedFiles" [Critical,Confirmed]02:52
lifelessia: are you encountering that bug ?02:53
lifelessia: because it was fixed in 1.10, just the report wasn't updated02:54
lifeless(the log shows that it was fixed)02:54
lifelessAnd I've updated the bug to record that02:54
jamlifeless: it is occurring now with bzr.dev and rich-root repos02:57
jamlifeless: I sent a bug report to the ML and spiv said he was going to look at it today02:57
ialifeless: hmmm, very intresting - i use bzr from "nightly builds" repo (latest version - 1.13dev) and I've just would like to push(from desktop) in my branch(to LP), but I've got error message. I've googled it and found the same bug at LP. So, now i'm here ) In those bug report you can find my comment - it's the last one.02:57
lifelessia: you definitely don't have that bug02:58
lifelessia: what package version do you have?02:58
ialifeless: 1.13dev02:59
lifelessia: 'dpkg -l bzr'02:59
lifelessia: will give the *package* version02:59
lifelessjam: pushing to stacked rich root repos from plain repos?02:59
jamlifeless:  "bzr init-repo --1.9-rich-root bzr+ssh://new-repo; cd ~/.bazaar/plugins/svn; bzr push bzr+ssh://new-repo/svn"03:00
ialifeless: 1.13~bzr8.10-403:00
jamlifeless: no stacking03:00
lifelessia: thats not the full version string03:01
lifelessia: please show the full version string03:01
ialifeless: 1.13~bzr8.10-4041-103:03
lifelessthank you :)03:03
chxoh 1.13 already??03:03
chxi thought 1.12 just got out03:03
lifelesschx: we're working on 1.13 at the moment03:03
chxah ok03:04
ialifeless: sorry - i just didn't get it instantly :-)03:04
jamchx: there is a ppa with nightly builds03:04
lifelessia: I think you're suffering bug 33418703:05
ubottuLaunchpad bug 334187 in bzr "RemoteBranch.revision_history broken when stacking" [Undecided,Fix committed] https://launchpad.net/bugs/33418703:05
lifelessia: a fix is landing at th emoment03:05
lifelessia: the symptoms look similar, but they are quite different bugs; in future I suggest that you file a new bug rather than commenting on an existing one, unless you've dug into the code and checked the entire backtrace is identical03:06
lifelessia: alternatively, you may be suffering a new bug we haven't seen yet, or possibly the issue jam is reporting with rich root branches03:07
lifelessia: can you please do 'bzr info -v' in your branch that you're having trouble pushing03:07
lifelessjam: is there a bug for this?03:07
jamlifeless: not yet, I started on the mailing list to bring up discusion03:08
lifelessia: can you please do 'bzr info -v' in your branch that you're having trouble pushing03:15
ialifeless: oh, thanks for advice about bugreporting. And you're right - problem not in bzr, but in branch; i've just tested "push" with another branch - it works fine. And here bzr info -v : http://paste.ubuntu.com/123114/ - it's a branch of bzr-gtk, which I would like to upload (with tiny changes) to my branch at LP.03:16
lifelessia: is it a new branch?03:17
lifelessia: ok, when you push a new branch to launchpad it tries to stack;03:21
lifelessia: thats what this bug is about; you'll need a new build to fix the bug03:22
ialifeless: well, i've registred branch at LP, made "bzr branch lp:bzr-gtk", made changes, commited it, and now when I run "bzr push lp:~iaz/bzr-gtk/cosmetic" i get error - http://paste.ubuntu.com/123119/03:23
lifelessia: or, if you have a copy of bzr.dev yourself, you can just update from it03:23
lifelessand then use that copy to push03:23
lifelessia: can you look in ~/.bzr.log03:23
lifelessia: there should be a full backtrace; if you could pastebin that that would be good03:24
ialifeless: I guess, that this - http://paste.ubuntu.com/123120/ - log for last try of "push"03:27
lifelessjam: does http://paste.ubuntu.com/123120/ match what you're seeing03:28
lifelessia: thats intersting, and new03:28
lifelessia: please install a 1.12 full release03:28
lifelessia: I'll file a new bug for this problem you're seeing03:28
jamlifeless: yes03:30
jamiter_lines_added_or_present_in_keys triggering a problem with ('null:',)03:30
lifelessjam: that looks like a bug in the what-to-copy logic to me03:30
lifelessspiv: are you looking at this?03:31
ialifeless: eeem, what, i've clashed with some new unknown problem? )03:31
jamlifeless: judging by the backtrace, I would guess somehow NULL_REVISION snuck into the 'revisions' field of the 'data_to_fetch'03:31
lifelessia: yes, you've found a new bug03:31
lifelessjam: yes, thats what I'm thinking03:32
spivlifeless: not right at the moment; I'm currently thinking it's time for lunch...03:34
lifelessspiv: I'm guesing we're not pairing today :P03:34
spivlifeless: No :P03:36
spivlifeless: what can I say, I'm a (busy) slacker ;)03:36
spivWe definitely should tomorrow though.03:36
ialifeless: ok. well, however, I will be very appreciate, that if you'll file new bug about this, you'll highlight me and send link to this bug. And thanks for response and help.03:44
lifelessia: already filed03:44
lifelessia: bug 33466603:45
ubottuLaunchpad bug 334666 in bzr "error pushing new bzr-gtk branch to launchpad" [High,Confirmed] https://launchpad.net/bugs/33466603:45
jamlifeless: how fixed are you about inserting the 'label:' and 'sha1:' lines into the group compressed text03:56
jamI just did a quick test removing them03:56
lifelessjam: sha1: I'm not attached to at all03:57
jamand the text sizes dropped from 621 kB compressed down to 482kB03:57
jamor ~30% overhead from those 2 lines03:57
lifelesslabel: we have to store somewhere03:57
jamlifeless: sure, atm we store it in the index03:57
lifelessI'll mull on this03:58
jamI can understand wanting it in the text03:58
jamI haven't finished a conversion with a bigger repo03:58
pasci/wi103:58
pascgah03:58
jamlifeless: so texts for bzrtools in 1.9 == 1.2MB, in GC .6MB, with label & sha1 stripped .48MB03:59
lifelessjam: hmm _find_modes is a round trip on just opening a RemoteRepository03:59
jamlifeless: arguably it should be returned as part of BzrDir.open()...04:00
lifelessjam: or deferred until a write is desired04:00
jameither way04:00
jamthe former means you don't have an extra round trip when you *do* want to write04:01
lifelessthe latter means you don't have an extra round trip at all for pull04:01
lifelessand its the same as the former when you do write04:01
lifeless(because, mode probing is a stat that bzrdir.open doesn't do)04:02
abpendAnyone here?04:15
lifelessabpend: generally, just ask your question04:18
abpendAlright, then.  Does anyone know if any work is being done on getting nested tree support into bzr?04:20
abpendGoogling around, it looks like there are periodic discussions every year or two, but I'm not sure if that's just talk or indicative of something actually happening.04:21
lifelessspiv: new merge request up04:25
lifelessabpend: I believe abentley will be focusing on it soon04:26
abpendlifeless: good to know.  We've just started using bzr at work, and that'd be a much-appreciated feature.04:31
spivlifeless: I'll take a look04:31
thumperabpend: can you say which work?04:38
abpendthumper: I work for a small web development firm in Washington, DC called Community IT Innovators... so far, it's just one development group, and we're just giving it a go, but so far, we've been pretty impressed.  Everybody else is still using CVS.04:39
thumperabpend: I think you'll like it04:41
thumperabpend: I came primarly from svn (and other biggies like perforce and clear case)04:42
lifelessjam: interesting commit there04:42
lifelessspiv: just shout if you want to chat about causes there04:43
jamlifeless: too sleepy to continue, but yeah, I'm curious where it will get to04:55
spivlifeless: I don't actually see where in the patch the server will send the network_name?05:02
lifelessspiv: very interesting... neither do I :P05:03
lifelessspiv: let me, uhm, fix05:04
spivlifeless: :)05:04
spivlifeless: the change to transport/remote.py looks reasonable, but I'm curious about what prompted it05:06
lifelessthe client wasn't preserved05:06
lifelessso the stub test ended up trying to do a real op05:06
spivInteresting that nothing else had bumped into that issue before this...05:08
lifelessI think this is the first deliberately recording a real_repo invocation05:08
spivOh, right, I just noticed that.05:09
spivMakes sense.05:09
lifelessspiv: yeah tests breaking all over.05:09
lifelessupdate coming05:09
spivlifeless: :)05:09
lifelessERROR: bzrdir_implementations.test_bzrdir.TestBzrDir.test_sprout_bzrdir_repository(RemoteBzrDirFormat-v2)05:20
lifeless    Received bad protocol version marker: '\n'05:20
lifelessspiv: *hate* that05:20
spivHmm.05:21
lifelessspiv: we can make a findV3 request on the old protocol, but can't answer it05:21
spivPerhaps the v2 (and v1) encoder should check for \n in args, and raise a better exception?05:21
lifelessspiv: I'd like it to be unknown method on a v2 or before stream :(05:22
lifeless  File "/home/robertc/source/baz/RemoteRepository._format/bzrlib/smart/medium.py", line 202, in serve05:22
lifeless    server_protocol = self._build_protocol()05:22
lifelessspiv: where would be a good place to put this chceck05:23
spivAh, in the response.  Tricksy.05:24
spivYeah, it would be good to have it unknown in earlier protocol versions.  At the moment the client is responsible for not trying new verbs on old protocols via _is_remote_before05:24
lifelessspiv: so I can do it two ways05:25
lifelessa min_version=3 on the register side05:25
lifelessor in the dispatch or something like that05:25
lifelessor a heuristic in the response encoder05:25
lifelessI prefer the former (avoids having work done then error late; which would suck for mutating methods)05:25
spivI'm not sure what you have in mind for a heuristic in the response encoder, but it doesn't sound like a good idea to either.05:26
spivSo, there's a commands registry in request.py05:27
spivCurrently that registry is always passed into the SmartServerRequestHandler05:27
lifelessthe heuristic would be \n in the args :P05:28
spivWhich is kicked off via _get_protocol_factory_for_bytes05:28
spivUgh, yeah, let's not do that :P05:29
lifelesshey, you proposed it ;)05:29
spivI thought we were talking client-side :P05:29
spiv_get_protocol_factory_for_bytes already dispatches to different factories depending on protocol version (that's what it's for)05:30
lifelessspiv: ok05:30
lifelessso we could make it active on the request05:30
spive.g. b/s/protocol's build_server_protocol_three passes in commands=request.request_handlers05:30
lifelessor passive05:30
lifelessor in the registry05:30
spivSo we could make those not all pass the same request_handlers05:31
lifelessI think a passive attribute on the request is enough05:31
lifelessNone = any05:31
lifeless1/2/3 is a minimum05:31
spiv(Also, it would be good if there were a way to vary the request_handlers by server instance, rather than having those factories hard-coded to use the global request_handlers)05:31
spivThat seems reasonable.  Just an extra arg on the registration API.05:32
spivYou don't need to do all this to solve your immediate problem, though...05:32
spivYou could just do the _is_remote_before check in open_repo_v3, and if it fails raise UnknownSmartMethod without even touching the network.05:33
spivI don't mind if you want to fix this now, though.05:34
lifelessit will fail to work05:34
lifelessif the remote version isn't established05:34
lifelessand that needs a known-higher not a known-lower05:34
spivNo, it will work.05:34
spivBecause if the protocol is v2 then _remember_remote_is_before((1,6)) has already been called on the medium for you.05:35
lifelessah05:35
spivSo _is_remote_before((1,13)) will be False05:35
spivOther things already rely on this :)05:35
lifelessok, I'll do that05:37
lifelessspiv: any insight on the push null: issue?05:40
lifelessspiv: ok the next giltch05:44
lifelessspiv: RemoteBranch(...real_branch) is triggering the assert real_repository is already set05:46
lifelessok, seems good06:01
lifelessspiv: I'll wrap this real_repository elimination up tomorrow06:09
lifelessnight all06:09
spivlifeless: g'night06:10
spivlifeless: regarding the push null: issue, for some reason the searcher from _walk_to_common_revisions is including null: in its result06:11
spivAnd nothing after that point filters it out.06:11
spivI don't quite get why it only happens on some pushes to new branches, rather than all.06:12
=== Spaz is now known as Mr-T
=== Mr-T is now known as Spaz
lifelessspiv: stacked branches shouldn't reach null: though06:23
lifelessspiv: perhaps, its *non* stacked new branches with old servers?06:23
spivlifeless: I've got a reproduction with a non-stacked branch, current server06:27
spivPossibly due to a non-lefthand null: parent in the history.06:27
spivpushing bzr-svn -r100 reproduces it.06:28
lifelessthat would make sense06:28
spivIf I add parents_of_found.discard(revision.NULL_REVISION) to _do_query in the searcher, it works.06:28
spivI also bumped into a trivial bug in the insert_stream server code; if the stream is empty, the thread is never started, so self.insert_ok is never set.  That causes some mess in the .bzr.log.06:30
spiv(and of course we try empty streams fairly often atm ;)06:31
lifelessspiv: ah! I saw that once but had no reproduction06:31
lifelessspiv: null: is legitimate in the core graph code06:32
lifelessI suggest post-filtering06:32
* spiv nods06:38
pooliespiv, lifeless, i've just hit that too07:00
pooliei think this is bug 321765407:06
ubottuError: Launchpad bug 3217654 could not be found07:06
pooliebug 31765407:06
ubottuLaunchpad bug 317654 in bzr "error about null revision not present pushing to server" [High,Confirmed] https://launchpad.net/bugs/31765407:06
lifelesspoolie: bug 334666 is definitely it :)07:10
ubottuLaunchpad bug 334666 in bzr "error pushing new bzr-gtk branch to launchpad" [High,Confirmed] https://launchpad.net/bugs/33466607:10
lifelesspoolie: because its the bug I filed to track it07:10
pooliewell, are they perhaps dupes?07:13
lifelesspossibly07:13
lifelessI've said so in 31765407:13
lifelesswe know the cause for 33466607:13
vilahi all07:16
pooliehi vila07:17
jmlwhat's the bzr nightly ppa team?07:19
poolie~bzr-nightly-ppa :)07:19
jmlthanks.07:21
jml(why isn't the fingerprint on the page any more)07:21
=== chx is now known as chx_sleeping
jml  File "/home/jml/.bazaar/plugins/svn/branch.py", line 31, in <module>07:23
jml    from bzrlib.branch import (07:23
jmlImportError: cannot import name InterBranch07:23
jmlwhich bzr-svn should I be using with bzr nightly?07:23
lifelessjml: an older one07:27
lifelessjml: that landed today07:27
lifelessjml: generally I'd say either use all packaged, or none-packaged, for bzr&plugins07:27
jmllifeless: it's kind of scary that a day's lag can make such a difference07:28
lifelessjml: jelmer added a dependency on a new feature in bzr07:29
lifelessjml: I think its great that he did so so promptly07:29
* jml should have just made a checkout of bzr07:30
lifelessjml: if you're running from a checkout of bzr-svn, definitely.07:35
jmllifeless: well, the progress bar said it downloaded 900MB+ of data07:36
lifelesspoolie: are you sure its the same bug ?07:37
jmllifeless: and it's not like I'll be doing dev on this machine, so a checkout would have been fine07:37
pooliefairly sure07:37
* jml runs bzr svn-import --incremental svn+ssh://svn.twistedmatrix.com/svn/Twisted Twisted07:37
poolieis there anything that indicates they're different?07:37
lifelesspoolie: well, its odd that its suddenly happening to everyone07:38
lifelesspoolie: its the same symptoms as a bug reported in 1.10 for isntance07:38
lifelesswhich is what ia brought up07:38
* lifeless tends to be very cautious about dups07:39
lifelessanyhow07:39
lifelessI finished a hour back :P07:39
pooliean inactive bug that might or might not be a dupe is not helping anyone07:40
lifelesspoolie: true, but I didn't suggest leaving it in active07:40
poolieif we dupe it, and then later that guy comes back and says its not fixed at least we'll have more information07:40
jmlactually, you know what,07:40
jmllet's run that in a screen session07:40
lifelessscreen is a great invention07:41
pooliei wish it allowed multiuser in ubuntu by defautl07:41
lifelessspiv: btw if you're not finished, doing a review of my updated patch we were discussing earlier would be a great help to me as I start earlier than thee :)07:59
spivlifeless: yeah, I can do that.08:11
lifelessspiv: cool. thanks08:14
lifelesspoolie: possibly bzr.dev has changed to tickle that bug08:14
pooliemaybe08:17
lifelessor possibly none of us were pushing unstacked branches of bzr to lp08:18
lifeless(which raises the question of why we're getting unstacked branches of bzr on lp)08:18
lifeless[or if it does happen with stacked, then the data is definitely quite recent]08:18
vilalifeless: bzrlib.tests.test_pack_repository.TestSmartServerAutopack.test_autopack_or_streaming_rpc_is_used_when_using_hpss, when run in bbc, alwats reports 0 autopack calls (and fails for dev5, but that's another point)08:24
lifelessvila: its failing?08:25
lifelessvila: oh, I know why08:25
vilalifeless: I thought you may be interested as it may mean PackRepository.autopack is not covered anymore08:25
lifelessvila: its PackToRemote08:25
lifelesswhich is on the cards to delete08:25
lifelessignore that for now, though if you want to fix it you _might_ find that extending PackToRemote to match bbc formats works08:26
vilalifeless: I'm tracking progress in bzr.dev, so if it's going to be fixed, I'll go fix another failing test :)08:27
lifelessvila: its on the slate to be fixed, yes08:27
lifelessneed to delete that class which requires a generic 'sync your state with the remote server' method08:27
vilalifeless: ok, then the first remark still stands, is it expected that PackRepository.autopack is not called anymore ?08:28
lifelessvila: expected? no08:29
lifelessI doubt its a recent reression though, due to where it was gooked in08:29
lifeless*hooked* in08:29
vilalifeless: Well, under its previous incarnation (with a slightly different name, PackRepository.autopack *was* called, even if not for dev508:30
lifelessvila: oh sorry misread your question08:31
lifelessyes, autopack is never called on current servers08:31
lifelessthey don't need it08:31
vilaby 'current' you mean they only used it after 1.12 but not in bzr.dev anymore ?08:32
lifelessbzr.dev->bzr.dev uses insert_record_stream08:33
lifelessbzr.dev->0.>whateveraddedautopack< uses autopack08:33
vilalifeless: ok08:34
lifeless because insert_record_stream does the write group in the servers context a round trip for autopacking isn't needed - the remote instance iwll have locally autopacked if needed08:35
=== Spaz_ is now known as Spaz
=== mark1 is now known as markh
vilamthaddon, spm, herb: PQM struck again by the rare-enough-to-let-you-think-it-s-finally-fixed-that-time bug :-/ Help ? Please ?11:06
LarstiQvila: ai11:08
vilaLarstiQ: Hey !11:08
LarstiQvila: heya :)11:08
LarstiQvila: are you the only one triggering that pqm bug?11:11
vilaLarstiQ: It seems so :-) Evidence points to me using lp: URLs11:11
vilaBut it happens once in ~20 submissions, sometimes several times a week, sometimes not during a month...11:12
LarstiQirritating11:12
lifelessvila: there is a patch11:13
lifelessvila: I think it needs review11:13
vilalifeless: ??? Against bzr ? pqm ?11:13
lifelesspqm I think, possibly bzr-email11:13
LarstiQjelmer: is there a better way to check if rebasing didn't do any weird things (the conflicts surprised me) other than "for i in $(seq a b); do bzr diff -c $i > left.$i.diff; done" for left and right and comparing the diffs?11:14
vilalifeless: ok, thanks, I'll research that11:14
=== mark1 is now known as markh
igcnight all11:39
vilaigc: night Ian11:42
lampliterI think I see what I need to do but I could use confirmation.  What I think I need to do is found in section 6.2 .5 of the user documentation.  What I'm doing is I have branch A committed to launch pad and I want to merge those changes into branch B.11:48
lampliter I suspect I need to pull the changes from launch pad and merge if there are any differences then commit the conflicts that are fixed11:49
lampliterI'll also think I might need to push branch a before I do anything11:50
lampliterinteresting.  It looks like the documentation is off because the pull seemed to merge11:53
LarstiQlampliter: excuse me?11:58
Stanlinhelp13:05
Stanlinwhat is the zend channel in freenode ?13:05
Stanlin1whos bazaar for windows developer?13:56
barryjelmer: ping14:12
jsledhowdy.  We have a centralized/distributed repo; there's the shared central repo, but individual devs also have local (pristine and dirty) branches.  Our build just moved (bzr tag --force …) a release tag, and now devs are seeing "Conflicting tags: «moved tag name»" on pulls, and neither a pull nor a merge is "correcting" things.14:19
jsledIs our only recourse `bzr pull --overwrite`?14:19
LarstiQno.14:19
* LarstiQ looks at tags14:19
ronnyyo LarstiQ14:20
ronnysup?14:20
LarstiQhey ronny14:20
LarstiQronny: doing some rebase dancing on stuff that needs to go back into svn, sigh.14:20
LarstiQronny: but otherwise good :)14:20
LarstiQronny: you?14:20
ronnyLarstiQ: lacking time and sanity14:21
ronnyhacking on gtk things recently14:21
LarstiQronny: what kind of gtk things?14:22
ronnytrying to put together a lib that supplies pygtk with developer oriented debugging things14:22
ronnylike ui tracebacks, debugging consoles in widgets14:22
LarstiQnice14:22
ronnyLarstiQ: http://picasaweb.google.com/ronny.pfannschmidt/Pida#530537151342763803414:23
ronnyoh, i just noticed i shouldnt leave the captions in ;P14:23
LarstiQjsled: hmmm, I can't find anything else14:25
LarstiQjsled: (well, handling .bzr/branch/tags manually, but eh)14:25
LarstiQjsled: there is bzrlib.tag.BasicTags._reconcile_tags(), but it is only used in the overwrite case14:26
LarstiQronny: that seems to suggest clicking on the backtrace will do stack walking?14:26
jsledLarstiQ: okay, thanks.14:28
ronnyLarstiQ: next step is opening a console window within the stack frame on double click14:28
ronnyi want to reuse soething else, but i have to wait for an ok to go lgpl instead of gpl14:29
vilamthaddon, spm, herb: PQM struck again by the rare-enough-to-let-you-think-it-s-finally-fixed-that-time bug :-/ Help ? Please ?14:31
herbvila: checking on it.14:32
vilaherb: thanks14:32
herbvila: should be good to go.14:36
vilaherb: yup, great, thanks14:37
jammorning barry14:45
barryjam: hi.  will you be around in about 1h15 ?  i have some additional questions for you, but i have some meetings coming up14:46
jambarry: sure14:47
jammorning vila14:47
vilamorning jam :)14:47
jamvila: so am I right that brisbane-core now passes all tests except the autopack/streaming one?14:56
jamI think we can just change the "is_compatible" check14:56
jamto remove the "supports14:56
jamif not 'supports_chk'14:56
vilajam: not quite, I have still some failures due to known bugs (at least one specific to 64 bits)14:57
jamvila: I'm pretty sure my last run had exactly 5 failures14:58
jamthough that is --no-plugins, etc14:58
vilajam: regarding bzrlib.tests.test_pack_repository.TestSmartServerAutopack.test_autopack_or_streaming_rpc_is_used_when_using_hpss, I talked with lifeless this morning and he said he will fix some related problem, so we can wait for bzr.dev14:59
vilajam: re-running (I should somehow archive my last runs somewhere :)14:59
jamvila: yeah, I read through that. I still think we can just get rid of the 'not fmt.supports_chks' and have it 'just work'.15:00
jamMostly because I did the work to get streaming working15:00
jamwhich is really all it should have needed15:00
vilaI'll check that then (lifeless proposed it too)15:00
Takif I had uncommitted changes in part of a checkout, and I unthinkingly did `bzr revert -rblah` from the checkout root, is there a way to back that out?15:23
garyvdmTak: there may be .~n~ files in your directory15:25
Takheh15:25
garyvdmTak: In some cases when bzr overwrites a file in your working directory - it creates a backup. The name of this back up file will be <the name of your file>.~1~ or .~2~ ect..15:27
Takyeah, I know15:28
Takprobably easier to remerge from the original source than to manually recopy the backups15:28
TakI guess I was looking for `bzr undo` ;-)15:28
vilajam: commenting out the 'and not fmt.supports_chks' make the tests error out in an ugly way, even after fixing obvious typos (http://paste.ubuntu.com/123379/ wth ? untested ?)15:33
vilajam: rats, get rid of the import pdb before trying ./bzr selftest -s bt.test_pack_repository.TestSmartServerAutopack.test_autopack_or_streaming_rpc_is_used_when_using_hpss15:34
jamvila: well to start with, 'fulltext_network_to_record' looks like a bug in bzr.dev that we should fix anyway15:35
cody-somervilleHow do I make it so that bzr will never mangle the revision number - only add?15:40
cody-somervilleI understand this is a branch setting.15:40
vilajam: yeah or at least report to spiv and lifeless15:40
beunocody-somerville, IIRC, append_only = true in ~/.bazaar/locations.conf15:41
jambeuno: "append_revision_only"15:41
jamsorry15:41
jam"append_revisions_only"15:41
jamcody-somerville: you should also be able to set it in .bzr/branch/branch.conf inside the branch itself15:42
vilajam: with http://paste.ubuntu.com/123385/, tests are passing (not the [] pair in fulltext_network_to_record15:45
vilajam: so, obviously untested code, which raises the question: is it expected to convert to fulltext ?15:45
jamvila: so there is a new issue with a "network stream" record versus the "text you put on disk" bytes15:46
jamObviously nothing was using the 'fulltext' record yet15:47
jamfor the network stream15:47
vilajam: yeah we agree15:47
vilajam: fix sent to ML15:51
=== picturesque is now known as domas
jamvila: I think the patch should be against bzr.dev, probably with a direct test of that function15:52
vilajam: patch *is* against bzr.dev. I have not hte slightest idea about what this function is doing :-) I call that 'blind debugging' :)15:53
jamvila: I know what it is doing, just not why it wasn't tested before15:54
vilajam: but I'm sure lifeless will add the proper tests :)15:54
jamI saw that it came in a bit late15:54
jamI just saw you claim it as a "bbc:MERGE" which didn't make as much sense to me15:54
jammy guess is this code is meant to be used15:54
jamwhen the source repo sends a 'fulltext' stream15:54
jamover the RPC15:54
vilaha sorry, I forgot to remove that, I wanted to leave only the [Attn lifeless]15:54
jamas pack repos don't do that15:55
jambut chk does because it was easiest to write things that way15:55
jamGC repos do as well15:55
vilajam: so forget that [bbc:MERGE], that wasn't a request, I'll merge it as is and wait for conflicts with further modifications by lifeless. Or do you want me to add a FIXME-bbc above the # no fmt.support_chks ?15:59
jamvila: I was suggesting that we fix the code in bzr.dev, and then bring that back into bbc16:00
vilajam: but lifeless said InterPackToRemotePack will be removed, so I don't think if it's worth it16:00
jamI think it is worth having a clean test suite for now16:00
jamas we can then send things through pqm, etc16:00
vilajam: right, I did the fix against bzr.dev and I'm merging it into bbc right now16:00
garyvdmIs there a equivalent to commit's --local option for pull?16:17
garyvdmAh - bug 19471616:19
ubottuLaunchpad bug 194716 in bzr "bzr pull should support --local" [Medium,Triaged] https://launchpad.net/bugs/19471616:19
jelmerbarry, pong16:24
barryjelmer: hi.  i was looking at the bzr branches on python.org and i think we have a problem, but i'm not sure16:39
barryjelmer: bzr info on the 2.5 branch is http://people.ubuntu.com/~andrew/python/branches/release25-maint16:40
barryjelmer: but i want to change that to http://svn.python.org/projects/python/branches/release25-maint16:40
barryjelmer: can i just do a 'bzr pull --remember' or will that mess things up (either for the branch or for clients of the branch)16:41
jelmerbarry, no, that should work ok16:41
barryjelmer: as long as i use the old v3 mapping, right?16:41
jelmerbarry, yeah16:42
jelmerbarry, if you use the v4 mapping it'll just give you a "Branches Diverged" error16:42
barryjelmer: cool, thanks.  i'm planning on setting up a cron that just does the `bzr pull` in each of the 4 or 5 directories we care about16:42
barryjelmer: cool16:43
evarlasthow can I do the opposite of push?16:53
jelmerevarlast, pull?16:53
evarlastoops.16:53
Takunpush?16:53
evarlastthat was a think-o. its like a typo, only my brain was the problem.16:54
evarlasthow can I do the opposite of split?16:54
evarlastI have two entirely unrelated branches. I would like to move branch B into branch A/B while keeping history.16:54
Takincidentally, is there any reason a `bzr undo` couldn't be implemented?16:54
jelmerevarlast, the opposite of split would be join17:01
radixTak: you mean like "revert"? or, say, "uncommit"?17:01
evarlastjelmer: thank you.17:02
evarlastjelmer: I'll file a bug for docs. there should be a see also: join on the bzr help split output ;)17:02
james_wTak: I believe it is something that Aaron wants, and is slowly adding things that would allow it to happen17:07
james_wTak: it's a way from being ubiquitous though17:07
evarlastcan anyone help me with join?  I successfully upgraded to a rich-root format. I try bzr join ../B, and it says Not A Branch /home/me/placewithAandB.  I copy B into A thinking it will join in place. I run bzr join B and it says bzr: ERROR: Cannot join O2SensorDiagCalSyn.  Trees have the same root17:18
=== montywi|zzz is now known as mpntywi
=== chx_sleeping is now known as chx
evarlastoh wow, no join documentation in the user-reference :(17:28
jelmerevarlast, the tree you'd like to join already ahs to be in place17:29
evarlastok, so it is in place and I get "Cannot join B. Trees have the same root"17:36
evarlastbut B isn't a dir known to the branch at .17:37
=== mpntywi is now known as montywi
evarlastoh, interesting. I did it on all new branches and it worked fine.17:40
Takradix: I mean something like uncommit that doesn't care what the last command was17:40
evarlastI need to upgrade the format of B too, not just A, I'll bet.17:40
=== beuno_ is now known as beuno
evarlastdamn, nope, still the same error.17:41
evarlastit works on all fresh branches, but not these two branches.17:41
evarlastbzr: ERROR: Cannot join ... Trees have the same root17:44
evarlastbut they don't!!!17:44
rockyhm, does the smart server have any type of user access control?17:47
evarlastrocky: the bzr serve does not.17:47
evarlastrocky: when running one through apache, use apache Access control.  Same is true of SSH17:47
rockygotcha17:48
rockyi'm looking for something a little more flexible like mod_svn17:48
rockywith it's authz files17:49
evarlastrocky: yes, see the manual.17:53
evarlastthere is a fastcgi option that is well documented.17:54
evarlastgoogle around and find a small modification to that will make it work very well with mod_wsgi17:54
evarlastand you can use apache auth.17:54
evarlastit is very nice.17:54
evarlastActive Directory auth integration and all :)17:54
fbondDoes anyone know if trac-bzr supports using multiple bzr branches with a single trac installation?17:56
evarlastI'm so confused as to why my trees have the same root.18:00
=== thumper_laptop is now known as thumper
=== beuno_ is now known as beuno
evarlastlooks similar to this unanswered question: https://answers.edge.launchpad.net/bzr/+question/4692218:42
evarlastanswer was answered here 8 months ago: http://bzr.arbash-meinel.com/irc_log/bzr/2008/06/bzr-2008-06-0718:45
evarlastI'll blog post my solution, which will hopefully make it more googlable.18:45
evarlastnew question, how can i change my root id from 'TREE_ROOT'18:49
rockstarjelmer, ping19:01
jelmerrockstar, pong19:02
jambarry: ping19:10
barryjam: otp...19:10
jamk19:11
jamjust wanted to see about possibly setting up the http + smart server19:11
rockyhrm, i'm currently building a wsgi app that wraps the http smart server wsgi app ... is there anyway i can peek at the request info to see what sort of operation is being done (read or write) and to what branch and/or path?19:22
barryjam: ping19:39
jamhey barry19:39
barryjam: hi.  smart server!19:39
rockyok another question, does the "bzr serve" server for bzr 1.12 use smart server protocol one or some other protocol?19:41
jamrocky:  smart server protocol19:41
jambut certainly not wrapped in http calls19:42
rockyjam: no, i'm asking which version of the smart server protocol is it using?19:42
rockyor is there only "one" version at this point?19:42
jamin general we don't have a separate versioning of the protocol, just more/less functions available19:43
rockyjam: also i'm not sure what your last comment meant about not being wrapped19:43
jamI don't think 1.12 has anything different from 1.1119:43
jamrocky: the smart server protocol is a series of requests and responses19:44
jamyou can 'tunnel' that through an HTTP POST session19:44
jam'bzr serve' doesn't handle an HTTP POST19:44
rockyoh yeah i forgot19:45
rockybasically i'm working on ClueBzrServer with is a simple http server that serves up bzr smart protocol over http via the bzr smart wsgi app19:45
rockyand i'm trying to add basic read/write security19:45
rockybut i really need to peek at what command is being requested to determine security19:45
rockyand i'm having difficulty doing that19:45
rockyi'm seeing references to ProtocolOne classes and ProtocolThree ... hence my question about protocol versions19:46
vilajam: down to 1 failure, 1 error on bbc, one is the symlink/dirstate/64bits and I think you can't see it the other is about AssertionError: these files contain an assert statement and should not:19:46
vila/home/vila/src/bzr/experimental/brisbane-core/bzrlib/chk_map.py19:46
jamProtocolX is about how the bytes are encoded on the wire. ProtocolThree has been used for a while19:46
jamvila: yeah, there are a lot of asserts there19:46
vilajam: Can you have a look ? There are less than 10 asserts, are you confident enough to remove at least some and I'll handle the others19:47
jamit is a heck of a lot more convenient for prototyping/debugging19:47
jamvila: I'm not sure if I can guarantee not to introduce more...19:47
vilalol19:47
jamif ...: raise AssertionError is ok for production code19:47
jambut sucks when trying to get stuff done19:47
rockyjam: so any hints on how i might peek to see what command is being issued if i'm inside SmartWSGIApp ?19:47
vilawell, long ago, when I was C++ing, I used assertions a lot, but now in bzr, I think there are 3 kinds of assertions:19:48
vila1) The ones you can write tests for19:48
vila2) The one you left in production with if ..: AssertionError19:49
vila3) the ones you put during prototyping because... because19:49
vilajam: Can you delete the 3) kind ? :-)19:49
jamvila: I'm not sure I'm done prototyping19:51
jami can probably take a look at it19:51
vilajam: well, like me, you want a *passing* test suite, and using assert forbids that :-)19:52
jamrocky: My recommendation would be to look at how 'bzrlib/transport/http/wsgi.py' is doing it19:52
jamand then change things based on whether the user is authenticated or not19:52
rockyjam: that's where my rabbit hold began :)19:53
jamrocky: why does it matter what request is made?19:53
rockyjam: i can easily restrict user access, but i need to restrict based on what commands are being used... like anonymous should be able to read but not write19:53
jamrocky: right, so anonymous gets the readonly+ server19:53
jamand authenticated gets the other19:53
jamrocky: See 'make_app()'19:54
rockybut i need to make user1 be able to write and user2 only read19:54
rockyand i want user3 to be able to write to some branches/paths but not others19:54
rockyso using separate apps doesn't really help with all those use cases19:55
rockyand i'm quite familiar with make_app() atm ;)19:55
jamrocky: what you probably want is something along the lines of: https://blueprints.edge.launchpad.net/bzr/+spec/acl-transport19:56
jamwhich isn't written yet19:56
rockylol19:56
jamthough I'm happy to work with someone who wants to implement it19:56
rockysounds like what i'm writing actually :)19:56
rockywell, i'm much higher level19:56
rockybut maybe that's my problem, i need to be hooking in a the transport level to make these decisions, not on the wsgi level (too high)19:57
jamrocky:  so at the intermediate level, you can look around line 16019:57
jamwhere it does19:57
jam        smart_protocol_request = self.make_request(19:57
jam            transport, out_buffer.write, request_data_bytes, adjusted_rcp)19:57
rockyyep... that's where i have my pdb stuck atm :)19:57
jamso... (a) you could only support ProtocolThree19:58
jamrather than trying to support all possible bzr clients19:58
jamwe've been at 3 since bzr 1.619:59
rockyyeah i don't care about old clients atm19:59
rockyit's looking like i'd have to stuff my own transport in there that is aware of my security/acl rules and raises errors when security authorization isn't met20:01
rockyhm20:01
fullermdI tend to think ACLage pretty much requires shutting off VFS methods wholesale.  Certainly can't do much while they're being actively used by clients.20:02
fullermdI mean, once you have write at all, you can use them to scribble over any existing data in the repository to your heart's content.20:02
rockybut if i'm inside the transport what difference does it make about the vfs methods? i can restrict as necessary20:06
* rocky realizes he doesn't have a lot of experience with bzr transports atm20:06
thumpermorning, morning20:06
fullermdWell, but restricting "as necessary" to prevent bad stuff would be enough to prevent it from doing its actual job as well.20:08
rockyjam: do tranports have to be registered? or can they simply be used by instantiating them and passing them to the appropriate places?20:10
jamrocky: you should be able to create them and then pass them around20:10
jamas long as nothing needs to call 'get_transport()'20:10
rockybecause i'm considering writing my own transport that wraps ChrootTransport and doing what make_app does but make sure my transport gets used instead20:11
jamrocky: sounds right20:13
jammake_app() just uses get_transport() to be easy, so constructing it yourself should be fine20:13
rockyyeah, basically i won't be able to use make_app() verbatim anymore but i can make my equiv factory function that does the same but uses my transport20:14
rockyi wish make_app() had a transport=None arg that fell back to get_transport when transport wasn't specified :)20:14
barryjam: brettcannon 's here to talk about cpo in a few minutes20:16
jamrocky: you could always register it, and then set your "local_url" to whatever you want20:16
jamor 'root'20:16
jamsorry20:16
jammake_app(root='myacl:///')20:17
rockyinteresting20:17
brettcannonbarry: OK, I'm ready; running a checkout now to see what kind of timing I am getting right now.20:33
barrybrettcannon: i'm still running my update puller.  you're using trunk right?20:34
brettcannonYep.20:34
barryk20:34
=== barry is now known as barry-afk
jambrettcannon: are you still around?21:09
brettcannonjam: Yep, I'm still here.21:09
jamI was wondering if you had ssh access to code.python.org, so we could see what impact using a smart server would have21:10
brettcannonI have the same ssh access any core developer does under the pythondev account.21:10
jambrettcannon: good enough.21:10
jamThe performance of bzr+http should at least be comparable to bzr+ssh21:10
jamand should be faster than plain http21:11
brettcannonOK.21:11
brettcannonIs the server up?21:11
jambrettcannon: well, I can go to the web server: http://code.python.org/python/trunk/21:14
brettcannonjam: I meant the smart server.21:14
jambrettcannon: as long as bzr is installed and in the path on the remote machine21:14
jamit should 'just work'21:14
brettcannonbzr: ERROR: Generic bzr smart protocol error: Invalid http response for http://code.python.org/python/trunk/.bzr/smart: Unable to handle http code 404: Not Found21:16
brettcannonAnd that was with ``bzr branch bzr+http://code.python.org/python/trunk bzr``.21:16
jambrettcannon: we don't have 'bzr+http' installed. I was asking you to use 'bzr+ssh'21:18
jamto let us know ~ what you would see if we set up bzr+http21:18
brettcannonAh, OK.21:18
brettcannonjam: Didn't work either.21:20
brettcannonServer does not understand Bazaar network protocol 3, reconnecting.  (Upgrade the server to avoid this.)21:20
brettcannonbzr: ERROR: Connection closed: please check connectivity and permissions (and try -Dhpss if further diagnosis is required)21:20
brettcannonHPSS calls: 1 <bzrlib.smart.medium.SmartSSHClientMedium object at 0x14220b0>21:20
brettcannonjam: But I am more worried about non-committers getting a decent checkout time than core committers.21:20
jambrettcannon: right. I just haven't taken the time to set up bzr+http, and performance should be on par with bzr+ssh21:20
jambarry-afk: let us know when you get back21:21
jambrettcannon: you can set up bzr+http to be 'anonymous' read-only access21:21
brettcannonjam: OK.21:21
jambrettcannon: it looks like it didn't find bzr on the server21:21
brettcannonjam: Figures. =)21:21
jamcan you do "ssh host; bzr --version" ?21:21
jambarry said that he had 1.12 installed21:22
jamI would have assumed it installed in /usr/bin, which is why it doesn't make sense that it wasn't found21:22
brettcannonI don't have that kind of ssh access to code.python.org.21:22
jamso what access *do* you have?21:22
brettcannonI can do checkouts over SSH through the pythondev account, but that's basically it; Barry is the one with shell access.21:23
brettcannonI am just the guinea pig who keeps getting slow checkout times compared to everyone else.21:24
jambrettcannon: yeah, I'm hoping we can sort out why21:24
jamI think we need to hear from barry how things are set up21:24
jamare you doing "bzr branch bzr+ssh://pythondev@.../" ?21:24
brettcannonjam: OK21:25
brettcannonjam: bzr branch -Dhpss bzr+ssh://pythondev@code.python.org/python/trunk bzr21:34
jambrettcannon: Did that work?21:37
jam-Dhpss isn't strictly necessary, but it might be interesting to see what it logs21:37
brettcannonjam:  No.21:37
brettcannonServer does not understand Bazaar network protocol 3, reconnecting.  (Upgrade the server to avoid this.)21:37
brettcannonbzr: ERROR: Connection closed: please check connectivity and permissions (and try -Dhpss if further diagnosis is required)21:37
brettcannonHPSS calls: 1 <bzrlib.smart.medium.SmartSSHClientMedium object at 0x14220b0>21:37
brettcannonjam: I'll be back a few minutes; need to grab lunch and bring it back to my desk.21:39
* mwhudson suspects a python gc bug!?21:41
=== barry-afk is now known as barry
barryjam: did brett leave?21:43
jambarry: for a bit. he said he had to go grab lunch21:44
barryjam: k.  what did we decided about smart server?21:44
jambarry: he wasn't able to branch using bzr+ssh21:45
jamdo you know why that would be?21:45
barryjam: nope.  i do it all the time21:46
barryjam: was he doing bzr+ssh://pythonbzr@ ?21:47
barryjam: pythondev@ is for svn21:47
mwhudsonarararargh21:48
mwhudsonLockableFiles has a reference to the transport and has a __del__21:48
jambarry: he was using "pythondev" it would seem21:49
jamso does he just need a different user?21:49
lifelessmwhudson: cycles  ><21:49
barryjam: yes, i think so21:49
mwhudsonlifeless: yes21:49
jambarry: just as a point of reference, can you "time bzr branch http://code.python.org/python/trunk" versus "bzr+ssh://.../trunk" ?21:49
jamand then time it again with '--stacked' ?21:50
barryjam: sure21:50
jamthat is what I'd like to see from brett, but perhaps you'll have an easier time getting it to work21:50
jam(of course, *his* connection is the one we care about)21:50
jambarry: what is weird is that he seemed to be getting *some* sort of error for 'pythondev', but not a very clear one.21:51
barryjam: pythondev should be harded coded to speak svn.  weird21:51
jambarry: probably is, and that is the problem21:52
jamit spoke 'svn' back to the bzr client21:52
jamwhich then said "server doesn't understand bzr protocol 3"21:52
jamand then closed the connection21:52
barrythat makes sense21:52
jam(that *was* the problem)21:52
barrypythonbzr is hard coded to speak bzr, but uses the same keys (and is generated at the same time as pythondev)21:53
pooliehello world21:55
brettcannonbarry: jam: I'm back21:55
jamhi brettcannon21:55
barrybrettcannon: hi.  you want pythonbzr@ :)21:55
brettcannonbarry: No. =)21:56
jamhi poolie21:56
barrybrettcannon: well, if you want to speak bzr to code.py.org21:56
brettcannonbarry: Ah, as in you set that account up. Thought you were trying to give me some SSH account and thus more responsibility.21:57
barrybrettcannon: right!  bzr+ssh will only work against pythonbzr.  svn+ssh will only work against pythondev21:57
brettcannonbarry: That did it.21:58
barrycool21:59
brettcannonbarry: OK, so bzr+ssh took 14 minutes.22:16
barrybrettcannon, jam http took 12m12 and bzr+ssh took 14m922:19
barrythat was without stacking22:19
brettcannonditto22:19
barrybrettcannon, jam i'm running it again w/ --stacked22:25
jambarry: running sequentially, not concurrently, right?22:26
barryjam: right!  i still don't trust my router22:26
barryjam: e.g. i /know/ i'm taking probably a 30% hit on throughput since i "upgraded" the firmware22:26
barrynot to mention the instability22:27
brettcannonbarry, jam http checkout took 9:34; shaves five minutes off compared to home.22:30
brettcannonStill wonder if there is something special about my machine or just the way bzr does things as my hg checkout is more than halved from school compared to home instead of by a third as for bzr.22:31
barrybrettcannon: well, one thing is for sure.  when i bypass my router and talk directly to my modem, i get much better performance.  i'm planning on downgrading the firmware back to the previous version this weekend to see if i can recapture the better performance22:35
barrybrettcannon, jam http + --stacked was 15m32!22:35
barrybrettcannon, jam where it was something like 3m55s bypassing my router22:36
barryso i don't know what to make of that22:36
* barry is trying bzr+ssh --stacked now22:36
jambarry: this is with bzr.dev, right?22:37
barryjam: ah shit, not22:37
* barry slams C-c22:37
jmljelmer: at some point, the progress bar for bzr svn-import gets stuck, it seems: e.g. [#|                  ] copying revision 777/769422:44
jmloh no, it's turning22:44
jmljelmer: never mind me.22:44
mwhudsoncan someone triage https://bugs.edge.launchpad.net/bzr/+bug/335180 ?22:44
ubottuUbuntu bug 335180 in bzr "LockableFiles.__del__ creates uncollectable garbage including connected sockets" [Undecided,New]22:44
jelmerjml: :-)22:45
jmlthis bug is also easy enough to triage: https://bugs.edge.launchpad.net/bzr/+bug/33518222:45
ubottuUbuntu bug 335182 in bzr "break-lock does not accept upper-case 'Y' as 'yes'" [Undecided,New]22:45
jmljelmer: my svn-import of Twisted has been running all night and is still not finished22:46
jelmerjml, which bzr-svn version/22:46
jelmer?22:46
brettcannonbarry, jam: 6:48 on http stacked.22:46
jmljelmer: whatever lp:bzr-svn was yesterday :)22:46
jelmerjml: Hmm22:47
jmljelmer: Twisted is a big repo with a lot of branches and a long history, so I'm not *too* worried, just as long as the updates don't take as long.22:47
jelmerjml: Hmm, still22:48
jmljelmer: yeah :)22:48
jelmerjml: OOo took less than a day in total..22:49
spivjelmer: from Australia? :)22:49
jelmerspiv, ah22:49
jmlspiv: this isn't from Australia22:49
jmlit's from my linode box22:49
spivjml: hmm.  Keep an eye on the memory consumption...22:49
spivjml: also, you may find svnadmin dump on wolfwood and then importing from that to be faster...22:50
spivjml: or, just be patient :)22:50
jmlspiv: huh, interesting.22:50
jmlspiv: it has graphs for CPU, Disk IO and Network, but not memory22:50
spivjml: I find "vmstat 1" is practically the same thing ;)22:50
jmlspiv: if I type that into firefox I just get a google search page :P22:51
* mwhudson hits jml22:51
mwhudsonthe bzr-gtk tests are spamming dialog boxes at me :(22:53
jmltsk tsk22:54
jmlthere are ways of writing tests to avoid that.22:54
mwhudsonyes, "using bzrlib.tests.TestCase" being the main one22:55
jmlwell.22:55
jmlmwhudson: also the tests for tribunal create GTK+ windows and avoid spamming the screen with them.22:55
barrybrettcannon, jam 4m17 http --stacked22:56
barryjelmer: did you ever ppa the bzr-svn that had the fix for the svn-import problem i was seeing yesterday?22:58
barryjelmer: bzr pull on an svn hosted branch is not an option.  it takes hours just to do a pull22:59
lifelessspiv: so I need to leave here late avo to get to the city, so if you'recoming over I highly commend earlier to you23:00
barryjam: bzr+ssh --stacked in 3m52s23:01
jelmerbarry: No, I haven't reproduced the problem yet23:01
barryjam: i need to leave now for a while.  can you please related those numbers to brett if/when he gets back23:02
jelmerbarry: Whoa, hours?23:02
barryjelmer: yeah23:02
jelmerbarry, it's less than a minute here..23:02
barryjelmer: is there maybe a cache i'm not utilizing?23:02
spivlifeless: ok23:02
lifelessspiv: right now, I have a little quirk your input would be great on23:02
jelmerbarry, no, it's just a performance regression in 0.5.0 that's fixed in 0.5.223:03
barryjelmer: i'm sorry, but i need to go out for a few hours now.  i'll try to ping you tomorrow for details.23:03
lifeless  File "/home/robertc/source/baz/RemoteRepository._format/bzrlib/smart/request.py", line 279, in _call_converting_errors23:03
lifeless    return callable(*args, **kwargs)23:03
lifeless  File "/home/robertc/source/baz/RemoteRepository._format/bzrlib/smart/repository.py", line 444, in do_chunk23:03
lifeless    for record in stream.read():23:03
lifeless  File "/home/robertc/source/baz/RemoteRepository._format/bzrlib/versionedfile.py", line 1529, in read23:03
barryjelmer: ah!  okay cool.  i'll try to figure out a way to get 0.5.2 on that box tomorrow23:03
lifeless    for record in self._kind_factory[storage_kind](23:03
barryjelmer: thanks!23:03
lifelessKeyError: ''23:03
barryjam: thanks!23:03
barrysee y'all tomorrow23:03
lifelessspiv: (its getting a zero-length byte string out of the pack sent on the wire)23:03
=== barry is now known as barry-away
jelmerbarry-away, np23:03
spivlifeless: so the record_bytes starts with a \n?23:06
lifelessspiv: I guess23:06
spivlifeless: the decoder logic looks sane (although the error reporting could be better I suppose), so I'd suspect an encoding issue.23:07
spivlifeless: sticking a print(body_stream_chunk) in do_chunk would probably help23:07
spivEr,23:07
spivprint repr(body_stream_chunk) :)23:07
lifeless(Pdb) print repr(bytes)23:08
lifeless''23:08
lifelessspiv: we get some nested packs here, a little odd23:12
spivThat does sound odd.23:12
spivAlso, I have no idea which 'bytes' variable you show in that pdb snippet...23:12
lifelessthe one that should contain the record stream record23:13
lifelesswhich is the body of the pack record from the stream23:13
lifeless(Pdb) print repr(body_stream_chunk)23:14
lifeless'B0\ntexts\n\n'23:14
lifeless(Pdb) c23:14
lifeless> /home/robertc/source/baz/RemoteRepository._format/bzrlib/smart/repository.py(432)do_chunk()23:14
lifeless-> self.stream_decoder.accept_bytes(body_stream_chunk)23:14
lifelessERROR: branch_implementations.test_branch.TestBranch.test_clone_partial(RemoteBranchFormat-default)23:14
lifeless    Error received from smart server: ('error', "''")23:14
lifelessok, understood and fixed23:16
lifeless(though its a bug that we're hitting the broken case)23:16
spivThe sender was encoding some sort of dud text record?23:16
lifelesswe're sending a delta-closure23:16
lifelesswhich means transcoding23:16
lifelessthat code path is just broken atm23:17
spivOh, hmm.23:17
lifeless@@ -1500,7 +1477,11 @@23:17
lifeless                     serialised = record_to_fulltext_bytes(record)23:17
lifeless                 else:23:17
lifeless                     serialised = record.get_bytes_as(record.storage_kind)23:17
lifeless-                pack_writer.add_bytes_record(serialised, [(substream_type,)])23:17
lifeless+                if serialised:23:17
lifeless+                    # Some streams embed the whole stream into the wire23:17
lifeless+                    # representation of the first record, which means that23:17
lifeless+                    # later records have no wire representation: we skip them.23:17
lifeless+                    pack_writer.add_bytes_record(serialised, [(substream_type,)])23:17
lifelessfixes the symptoms23:17
lifelessbut I need to find why its flagging that as True23:17
spivWell, LazyKnitContentFactory explicitly can return '' from record.get_bytes_as(record.storage_kind)23:21
lifelessyes23:21
spivAnd this is a RemoteBranchFormat test, so it makes sense that the source stream would have a LazyKnitContentFactory record...23:21
lifelessthats the point23:21
lifelessnot if we're not transcoding23:22
lifelessLazyKCF only turns up when include_delta_closure=True23:22
lifelessok, should all be good now23:27
lifelessspiv: down to 23 hpss calls23:27
spivlifeless: sweet23:30
garyvdmhi bialix: Check out http://garyvdm.googlepages.com/revision-selector.png23:30
* spiv prepares to wander off23:30
bialixgaryvdm: WOW23:31
garyvdmWork in progress...23:31
bialixyou're wizard of log23:31
garyvdmlol23:31
bialixgary, did you see progress bar in qbzr with bzr 1.12?23:32
pooliesweet23:32
garyvdmbialix: Let me test - I normally use the command line for pull/push etc.23:33
garyvdmHi poolie23:34
bialixI don't see pb neither in command line nor qbzr @win3223:34
lifelessfull tests running, then this branch is up for landing too23:35
garyvdmbialix: pb working fine for me in command line and qbzr on ubuntu. I'll test on win32 tomorrow for you.23:36
bialixwell, I guess it's the bug23:36
bialixat least one more windows user confirm it23:37
garyvdmbialix: Your mail brought out some usefull information. It's just gone off topic though.23:39
bialixyou mean bzr-gtk vs qbzr?23:40
garyvdmyes23:40
garyvdmbialix: You we asking about adding things like push, pull, revert, tag to qlog23:40
bialixyep23:40
garyvdmI've been thinking about it.23:40
bialixgenerally it's easy23:41
bialixunless we playing with multiple branches at once23:41
bialixthere things becomes tricky for me23:41
garyvdmFor push, pull - if you've got more than one branch - it's not important which branch you push/pull from, just get a branch that has the revision.23:41
bialixtag23:42
garyvdmTo get such a branch - just get the revision, and then rev.branch23:42
bialixif there is more than 1 branch?23:42
garyvdmFor revert, and tag - what I think we should do is show a sub-menu with the branches that have the revision23:43
garyvdmand for revert  - only those that have a working tree.23:43
bialixoh, I finally understand your desire to have revert23:44
bialixrevert to revision?23:44
garyvdmAh-ha23:44
bialixok23:44
bialixmaybe we should make such submenu all the time?23:45
garyvdmall though - these days I use "bzr pull . --overwrite -r ..." more23:45
bialixit's just like uncommit23:46
bialixuncommit to revision in qlog?23:46
NfNitLoopsshing from my g1.   geek heaven.  :)23:47
garyvdmRr submenu all the time - Na - the most common use case is log from tbzr - and that will only ever have one branch23:47
garyvdmuncommit to revision in qlog? why not?23:47
bialixI mean uncommit instead of revert23:47
garyvdmWhy not both?23:48
bialixrevert is really rare23:48
bialixI have no objections to both23:48
garyvdmIf the user has open more than one branch - but choses a revision that is only one branch - we should show the sub menu.23:49
bialixgary, today I've thought about qbzr future. I'm planning to start writing some user docs soon23:50
garyvdmOk23:50
bialixalso, I think we should switch to usual version number scheme: 0.10.0, 0.11.0 and so on23:50
garyvdmOk23:51
bialixin the June 2008 I want to release 1.0 as is23:51
bialixbut your magic on qlog changed everything23:51
garyvdmha ha23:51
bialixI don;t think we have to release 1.0 after 0.9.923:51
bialixno, it's really magic, I'm just too busy to dive so deep into qt tricks.23:52
bialixI don;t wrote nothing really serious yet23:53
garyvdmA big issue is selftest. I'm a unit test noob. I see the value in writing unit tests - but it's a very daunting task.23:53
bialixI found unit-testing very nice thing23:54
bialixand I like it23:54
bialixI'll try to figure out how to write it for some trivial cases23:54
bialixI want to say big THANKS to poolie and lifeless23:55
bialixand jam of course23:55
poolie(:23:55
bialixI've learned everything I know about unit-tests from bzr23:55
garyvdmI keep on saying to myself - ok - you've got to write unit tests for qlog - and then I end up implementing new features...23:56
garyvdmbialix: you need to put pressure on me to get it done :-)23:56
garyvdmUnit tests for LogGraphProvider should be easy.23:57
bialixI'm fine with new features unless we don;t have too much regressions23:57
garyvdmI want to be able to add new features and not worry about regressions. Test should help in that area.23:57
bialixbut  I can return to latest working release if things going wrong23:58
bialixyes, they should23:58
bialixwe have toooooooo many features to test all of 'em every time manually23:58

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