/srv/irclogs.ubuntu.com/2011/05/25/#bzr.txt

ls3_Hello. If a branch diverges, all I need to do a bzr merge; bzr commit; and accept the commit, right? That applies changes to my local setup only?00:18
ls3_Too scared to accept the commit because it's for work :)00:18
AuroraBorealisbackup the branches before you do it :o00:19
ls3_It's just one completely unrelated file and my unrelated file.. Last time it happened I just checked out the branch and re-applied my change. But would like to know the correct way00:21
AuroraBorealisthat seems right00:22
AuroraBorealisjust merge them00:22
KombuchaKipWhat are the last two numbers in this? Stage:Fetching revisions:Inserti.. 6664/96101:32
AuroraBorealisprobably 'chunks'  of data or something01:33
KombuchaKipAuroraBorealis: Yeah, just not sure what the units are.01:33
lifelessobjects01:35
AuroraBorealisSERIES OF TUBES01:36
KombuchaKiplifeless: So why is the numerator larger than the denominator?01:36
lifelessKombuchaKip: its not a fraction01:37
KombuchaKiplifeless: What's it mean?01:37
AuroraBorealisyeah haha01:37
AuroraBorealisseems like random mnumbers01:37
lifelesstotal-needed / received[or sent if pushing]01:37
KombuchaKiplifeless: Shouldn't they have flipped it to make it more intuitive?01:38
lifelessKombuchaKip: feel free to file a bug01:39
KombuchaKiplifeless: heh01:39
KombuchaKiplifeless: It's not really important.01:39
lifelesssure, its still changable though :)01:39
AuroraBorealisyeah i feel like they should add units at least01:39
KombuchaKipmm01:40
fullermdActually, I think the units are there, sorta.  There's in the continuation of "Inserti...".01:43
fullermdAll you need is a 300 char wide term.01:44
=== mwhudson_ is now known as mwhudson
_thumper_poolie: ping06:13
=== _thumper_ is now known as thumper
bignoseI have a branch ‘bar’ branched from ‘trunk’. no additional revisions have yet been committed to ‘bar’.06:21
bignosenow I realise that ‘trunk’ needs some more revisions from upstream; ‘cd ../trunk/ && bzr update’06:22
bignoseat this point, is there a difference between:06:22
bignose‘cd ../ && rm -r bar/ && bzr branch trunk/ bar/’06:22
bignose‘cd ../bar/ && bzr pull ../trunk/’06:23
spivNo.06:23
AuroraBorealisnope.06:23
bignoseokay. so at what point, and how, does ‘bar’ have its own history?06:23
AuroraBorealisi would think bar would have its own history.06:23
AuroraBorealisyou updated trunk but bar didn't recieve that update06:24
AuroraBorealisso trunk and bar are the same up to the point where you branched it06:24
spivDefine "own"?  It has its own history, it just happens to (currently) be identical to trunk's.06:24
AuroraBorealisexcept for the latest update06:24
bignoseso if ‘bar’ gains additional revisions, then ‘trunk’ merges from ‘bar’06:25
bignoseat that point ‘bar’ and ‘trunk’ will contain the same revisions but different history, yes?06:25
spiv(Where "currently" refers to "after you 'bzr pull' as described above.  Before that it obviously has its own history that happens to be a subset of current trunk/upstream.)06:25
bignose(‘trunk’ will of course contain a merge commit)06:25
AuroraBorealisif you commit anything to bar, trunk wont get it unless you merge it back into trunk06:26
spivRight, so trunk contains all the same revisions *plus* that one merge revision.06:26
AuroraBorealisyeah, once you merge it back06:26
AuroraBorealisit will gain all the revisions that bar had06:26
bignoseit contains them. is that identical to saying they have the same history? I thought not.06:26
AuroraBorealisand then if you visualize it you will see the bar branch diverting06:26
AuroraBorealisto the side then merging back06:26
bignoseI almost never use ‘bzr pull’ and I'm trying to understand what effect it has, in terms of the above story.06:28
spivbignose: no, I'd say the history is different, but not in an important way for many purposes.  (Different people have different expectations about the word "history", hence my qualified answer)06:28
AuroraBorealispull clones06:28
spivbignose: ah, now for 'bzr pull' I can give an unqualified answer :)06:28
spivbignose: it never generates a new revision, whereas merge+commit does06:28
AuroraBorealiscause pull just clones whatever you are pulling06:29
spivbignose: its primary use case is for when you have a branch you are maintaining as a mirror of another branch.06:29
bignoseokay, so what will it do in the story above? i.e., ‘cd ../bar/ && bzr pull’ will do what to the history?06:29
AuroraBorealisit will mirror the history of whatever you are pulling06:30
bignoseand is it different if ‘bar’ is already divergent from ‘trunk’?06:30
AuroraBorealisbar will still be diverged06:30
AuroraBorealiswont effect it06:30
spivbignose: a) check that bar and trunk haven't diverged (if they have it stops with an error)06:30
bignosespiv: so if ‘trunk’ has merged all revisions from ‘bar’, then ‘bar’ still won't be able to pull from ‘trunk’?06:31
spivbignose: b) add the newer revisions from trunk to bar (copy the missing revs into its repository, then set bar's tip to trunk's tip)06:31
bignoseanother way of asking: is a branch still “diverged from trunk if trunk has merged from that other branch?06:32
AuroraBorealisthey are different but they have the same revisions06:32
spivbignose: actually, it can, that case isn't divergence: trunk's tip includes all of bar's tip's history.06:32
AuroraBorealisif oyu visualize it, it will be a different line06:32
AuroraBorealislike when you first branched it, bar will go off to the side, when you merge it, the lines will merge06:32
bignoseAuroraBorealis: so you're saying ‘pull’ *doesn't* mirror the history?06:33
spivbignose: but that pull would change the mainline revnos on bar.  If you have append_revisions_only set in the branch.conf that would disallow that pull.06:33
AuroraBorealisi dunno what pull would do if you have already made changes. i would just update :>06:33
bignoseAuroraBorealis: neither ‘trunk’ nor ‘bar’ are checkous from each other, so update would not transfer anything between them.06:34
AuroraBorealisno but trunk is a checkout from like upstream right06:34
AuroraBorealisif you made changes in trunk, then tried pulling from upstream again, i dunno what would happen06:34
AuroraBorealisi thought pull and push make it an exact mirror of whatever.06:35
spivbignose: perhaps I should have phrased step a as: a) check all of bar's history is included in trunk.06:35
bignoseAuroraBorealis: that contradicts your “bar will still be diverged, wont effect it”06:36
bignoseor I'm not understanding you.06:36
AuroraBorealisuhhh06:36
AuroraBorealisyou branch from upstream06:36
bignoseno06:36
bignosetrunk is bound to upstream06:36
bignosenot branched06:36
AuroraBorealiswell06:36
AuroraBorealisit can be branched from upstream and bound06:36
AuroraBorealisso same thing06:37
AuroraBorealisso anyway, trunk is bound to upstream06:37
AuroraBorealisyou branch trunk06:37
AuroraBorealisso now trunk upstream and bar are the same06:37
AuroraBorealisbut they are 3 seperate branches06:37
spivbignose: it's pretty easy to make a couple of toy branches and experiment with what happens.06:37
AuroraBorealisthen you start making changes to bar06:37
AuroraBorealisthen it becomes its own thing06:37
AuroraBorealisand then you merge it back into trunk06:37
spivbignose: although I hope my description is adequately clear.06:37
AuroraBorealisi dont know if they are the SAME now, but trunk will now have the revisions of bar06:38
AuroraBorealisand if you visualize it in bazaar explorer, you will see where you branched and created bar, and when bar merged back into trunk06:38
spivAlthough I see I've basically just restated the contents of "bzr help pull" :)06:39
AuroraBorealisxD06:40
spivAs far as "the same": if two branches have the same last revision, then by definition they have the same revision history.06:41
AuroraBorealisso here is another question :o06:41
bignosespiv: I think your explanation is clear06:41
AuroraBorealistaken his example, you have a trunk branch, you branch it off into bar, do stuff to bar then merge it back into trunk06:41
AuroraBorealiscan you just delete bar now?06:41
spivAuroraBorealis: you can always delete it ;)06:41
bignoseAuroraBorealis: I think perhaps you're implying “their revisions are the same” is somehow an answer to my question; it's not06:42
AuroraBorealisof course.06:42
spivAuroraBorealis: but in that case you can delete it and not lose any revision history06:42
AuroraBorealisbut after you merge it you can get rid of the second branch and trunk will have everything?06:42
AuroraBorealiskay06:42
bignoseI know where the revisions go; I'm asking about how *else* the branches can differ :-)06:42
bignoseand I think the answer is “their histories can differ even if they contain the same revisions”06:42
spivAuroraBorealis: the only thing you lose is the association of "branch bar is at revision R"06:43
AuroraBorealisi'm confused now :<06:43
spivbignose: no06:43
bignoseand (spiv, here's the crucial point) a ‘pull’ or ‘push’ will *alter* the history to be identical to the other branch.06:43
bignoseyes?06:43
spivbignose: a branch's history is (in modern formats) defined by the last revision06:43
spivbignose: because revisions reference their list of parents, that single revision transitively includes the whole history.  And because revisions are immutable and globally unique that means if two branches have the same last revision, they have the same history.06:45
bignoseumkay.06:45
bignoseso my “alter the history to be identical to the other branch” is reduced to just “move the tip”06:46
bignoseyes?06:46
spivbignose: so, “their histories can differ even if they contain the same revisions” is not true unless you mean something different by one or more of those words than what we usually mean06:46
spivbignose: yes.  And, without using --overwrite, push and pull only allow the tip to move to include a superset of what's already there.06:47
bignoseI'm not clear on the DAG new world order :-)  so I'm trying to fit it into my learned-DVCS-from-GNU-Arch brain.06:47
spivbignose: and with append_revisions_only=True set in the config, it also restricts the move of tip to only allow moves that keep existing left-hand revisions where they are (i.e. so mainline revnos are preserved)06:48
spivbignose: well, Arch had an essentially similar DAG :)06:48
spivAuroraBorealis: to clarify, a branch is basically just: a pointer to its last revision, plus some other bits (maybe some tags, maybe some branch.conf settings, maybe a colocated repository for holding a copy of the actual revision data)06:53
AuroraBorealisso branches are independent of the actual revisions?06:54
spivBy “actual revisions” you mean the bytes on disk holding the commit messages and changes to files, that sort of stuff?  If so, yes.06:55
AuroraBorealisah ok06:55
AuroraBorealisso like if you merge a branch to a trunk branch, you can delete the branch you merged because you don't need that 'pointer' anymore, and the revision data is still there06:55
spivLook up the docs on shared repositories (e.g. bzr init-repo).  “Shared” in the sense of shared between multiple branches.  We call the bit that holds the actual revisions a repository.06:56
spivAuroraBorealis: Right, it'll be copied into trunk's repository (assuming it's not sharing one with the other branch, in which case it'd already have them of course).06:56
AuroraBorealiskay06:57
spivAuroraBorealis: so you'll still be able to examine old revisions with bzr explorer etc.06:57
AuroraBorealiscool. just been using bzr linerally so far =P06:57
AuroraBorealishaven't done any branching stuffs06:57
bignoseAuroraBorealis: I'll note that when listening to future advice from you about operations between branches :-)07:00
bignose(seriously, thank you both for your help)07:01
AuroraBorealisive read the docs just haven't done any of it :>07:01
vilahi guys !07:45
AuroraBorealisgreetings.07:45
jammorning vila08:31
vilahey jam !08:31
vilajam: thanks for the windows installers !!08:32
jamvila: well, not done yet. Looks like the last round lost paramiko ...08:32
vilajam: and the bzr.dev stitching for mgz08:32
jam*sigh*08:32
jamthats why I was happy to offload the installers08:32
vilaI know08:32
vilaan installer specific test suite would be nice :-}08:33
jamvila: yeah, I tried spinning up a base Windows vm, and seeing if it would install into that08:33
jambut ran into troubles trying to get the admin password of a new install08:34
jamI think I figured it out today08:34
jamso I'll try that again08:34
vilaI thought jelmer said he was on vacations this week but he was still active yesterday and the day before...08:35
vilahe's not there anymore so maybe I got that right though08:35
jamvila: I remember *poolie* saying he was away08:36
jamnot jelmer, but certainly could be08:36
jamand not all of us are particularly good at staying away during "vacation" :)08:36
vilahehe08:37
vilaright, poolie is on a bike AIUI, hard to have useful irc discussions from there ;)08:37
jamvila: he has a smart phone08:38
vilayeah, but one hand to hold the phone plus one hand to swipe/type don't leave enough hands to drive :)08:38
jamvila: that's why you swype with your thumb08:39
jamcome-on-man get it together08:40
jamand plus, don't you steer with your knees anyway?08:40
vilahehe08:40
* maxb has written a small essay about various UDD failures of the NoSuchTag class on https://bugs.launchpad.net/udd/+bug/494481 - thoughts on how best to proceeed from there welcome08:41
ubot5Ubuntu bug 494481 in Ubuntu Distributed Development "Too easy for people to not use merge-upstream" [High,Triaged]08:41
jamvila: do you still want to do the standup today?08:53
jamwe can just chat in IRC if that will be easier08:54
vilaeither is fine by me, spiv ?08:54
Riddellgood morning Bazaars08:56
spivvila: hi, unfortunately I need to skip it this week (I've got to go pick up V)08:58
jamspiv: have a nice evening, then08:59
vilaspiv: no worries, say hi to V ;)08:59
=== hunger_ is now known as hunger
elmoare bzr commits atomic?09:22
elmoi.e. if I rsync bzr trees around and happen to catch one mid-commit, what happens?  time/space implosion?09:22
AuroraBorealistime space implosion, definitely.09:23
lifelessso they are atomic, but not safe for rsync09:23
lifelesselmo: because rsync isn't atomic09:23
elmowell09:23
elmobother09:24
lifelesselmo: more precisely the bzr commit does one action to make the commit visible and all its actions leading up to that are safe to be lost09:24
AuroraBorealiswell why do you need rsync09:24
AuroraBorealisuse bzr itself to sync itself between locations09:24
elmowe are at the moment09:24
elmobut we're looking at going from 3 trees to 25 trees09:24
lifelesselmo: the problem is that rsync doesn't guarantee that it get either all / none of those changes, and can thus either grab the core metadata file without new referenced files09:24
elmoand I'm worried about the speed of bzr pulling 25 trees over http09:25
elmowhen most are no change09:25
elmo(we pull these every minute)09:25
AuroraBorealiso.o09:25
lifelesselmo: are they related tree or totally different ?09:25
elmo(I haven't done any benchmarks, my worried may be misplaced)09:25
lifelesselmo: anyhow, if they are mostly no-change, I suggest benching09:26
elmolifeless: very much related - I suspect you're going to tell me to use LWC09:26
lifelessI'd expect ~0.7seconds each09:26
lifelesselmo: LWC ?09:26
elmoI'm making terms up - too tired; the light weight host lots of branches cheaply thing09:26
lifelesswell you could09:27
elmohost lots of related branches, that is09:27
AuroraBorealislight weight checkout09:27
lifelessbut in-dc, the 5 http requests to do a plain-http no-change pull should be pretty fast09:27
elmolifeless: hmm, ok09:27
lifelessthat is root format, repo format, branch format, branch last-revision, done09:27
elmo        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.3509:28
elmook, I should probably have done that first ;-)09:29
soren*chuckle*09:34
lifelesshmm, a little slow09:36
lifeless:P09:36
* soren prefers "thorough"09:44
vilamaxb: why is python 2.6.6-*3* required for bzr on maverick ? Or where do I find that ?09:49
vilamaxb: hmm, apt-get build-dep bzr would be more precise09:49
maxbvila: In which package version exactly are you seeing this?09:50
vilamaxb: sorry, the stable ppa one09:50
maxb2.6.6-3 is the version of python-defaults in which dh_python2 was first considered ready for general use09:51
maxbIt is thus the recommended Build-Depends for a package utilising dh_python209:51
vilaand this isn't blocking the package build ?09:52
vilamaxb: note that it's not blocking me to install a chroot but it seems weird09:52
maxbNo, see https://launchpad.net/~bzr/+archive/builddeps/+packages09:52
vilamaxb: Ha !09:54
vilaSo I need to add this ppa to my chroots then right ?09:55
htorquehello everyone! what happened to bzr bisect? i remember installing it using apt-get some time ago, but i cannot find it anymore09:58
vilamaxb: almost, I got: dpkg: error processing /var/cache/apt/archives/python-backport-helper_1_all.deb (--unpack):10:01
vila trying to overwrite '/usr/share/perl5/Debian/Debhelper/Sequence/python2.pm', which is also in package python 2.6.6-2ubuntu210:01
maxbHuh, guess it works fine in a clean chroot because the older python is never installed10:02
vilaha, ok, I can do that :)10:02
vilamaxb: but you confirm I should add this ppa right ?10:03
maxbDepends, what are you trying to do?10:03
vilamaxb: build a chroot where I can run the test suite10:03
vilaI needed to add the bzr/ppa to get python-testtools10:04
maxbThen, no, I don't think you should be needing any of that stuff - you should only need python-backport-helper if you are trying to redo the debian package build as the ppa does it10:04
maxbOh, wait, you're doing "apt-get build-dep bzr" with the bzr/ppa PPA involved?10:07
maxbRight, that'll give you false builddeps that you don't really want10:07
vilayes, that's the trigger10:07
maxbThey're special, and there just to facilitate PPA backports of unmodified Debian sources10:07
vilaso ? Should I just ignore the the Build-Depends error for 'apt-get build-dep bzr' ?10:08
maxbI think you should not use 'apt-get build-dep bzr'10:09
vila:-/10:09
vilawhat should I use then ?10:10
maxbapt-get install some list of packages10:10
vilamakes my life harder, but anyway, where will I find an up-to-date python-testtools ?10:11
maxbThe Build-Depends header in the package is a reasonable guide, but you only want the upstream packages, not the debian package building infrastructure packages10:11
lifelessmaxb: breaking apt-get build-dep bzr seems really unpleasant10:11
maxbThere's an up to date python-testtools in the bzr/ppa10:12
vilahmm, so I keep the bzr-ppa and just install the dependencies without mentioning the additional constraints on the versions (like build-dep does) ?10:13
maxblifeless: It's not broken, per se. Those are the packages you need to build the bzr source package in the PPA. But vila is trying to build a testsuite chroot, so only needs stuff to do with the upstream build system10:14
vilamaxb: well, if I could use it to build the packages for the paa I wouldn't mind you know ;)10:15
maxbOK, so to recap:10:19
maxbThe ~bzr PPAs use a bit of interesting hackery to permit no-source-change backports of unmodified Debian source packages even to distroseries that do not have dh_python210:20
maxbThis saves a lot of work in maintaining small source modifications to every plugin package10:20
maxbI sent an email to the bazaar mailing list explaining some more of the details a while ago10:20
maxbYou probably don't want the modified packages that facilitate this build approach in any other scenario that the PPA build itself, which is why they are in the bzr/builddeps PPA, which is not intended for use outside of special build environments10:22
vilaright, so I'll try to re-recreate from scratch installing bzr and python-testtools with the bzr/ppa but without bzr/builddeps and let you know10:33
vilabut I'll probably come back later (not today) to the point where I want to also use the same chroots to test ppa builds...10:34
vilamaxb: I'm fine with interesting hackery as long as it doesn't blow up at the most inconvenient time ;) So it may be worth investigating the issue anyway no ? Unless you already know it's too much work10:36
maxbI'm not entirely convinced there *is* an issue10:37
vilamaxb: hehe, there is at least one: *I* don't understand why I can't just use 'apt-get build-dep bzr' (I mean, I understand it doesn't work, but not the fine points nor whether this could be addressed to make it work for me ;)10:39
vilamaxb: chroot rebuilt from scratch, seems to be working10:39
vilamaxb: so thanks for that already ;)10:40
maxbI think the process should be:10:40
maxb1) Create chroot10:40
maxb2) Add bzr/ppa to sources.list10:40
maxb3) apt-get install python-{docutils,lzma,medusa,meliae,subunit,testtools}10:40
maxbdone10:40
maxbOh, python-dev too10:41
vilahmm, bzr python-testtools seemed enough (so far)10:41
maxbIf we need something more organized, we should probably use bzr-landing-dependencies10:42
vilamwhahahah: make: command not found :)10:43
maxbapt-get install build-essential10:43
vilamaxb: how come I didn't need that for the natty chroot ?10:48
vilamaxb: and how could I find why a package has been installed /10:48
vila?10:48
maxbDid use use debootstrap --variant=buildd on natty but not maverick?10:48
vilanope, no variant at all10:49
maxbThere's no way to find out why a package was installed. You can ask aptitude what dependencies are currently keeping it installed. aptitude why pkgname10:50
viladebhelper, triggered by the apt-get build-dep bzr in the natty chroot (where it worked)10:52
maxbright - well, there's no particular reason why you would want debhelper installed in a babune chroot afaik10:53
vilawell, I just installed aptitude so I'm not that strict about keeping them as minimal as possible10:57
vilajam: I just saw python-roman being installed, didn't you encounter a related issue on windows ? (As in a missing file which may be exactly what this package provides)11:11
jamvila: docutils no longer provides roman, you install it separately.11:11
jamI filed a bug against sphinx and they pointed me in that direction11:12
jamthe real bug is that docutils should depend on roman, or sphinx should11:12
vilaoh, right, it's a python-docutils dep here11:14
vilai.e. on maverick (and natty too)11:14
didrockshey11:47
didrocksI have a very stupid question… is it possible to have some kind of graphical file history (like bzr visualise), but just for one file?11:48
viladidrocks: try bzr qblame11:51
viladidrocks: oh wait, hmm, nothing purely gnome (before you mention it ;)11:52
didrocksvila: ok, I'll install the qt bindings then11:52
didrockswell, no worry, I can install them :-)11:52
viladidrocks: note that gary is very keen about sharing code between qbzr and bzr-gtk so we should get there at one point11:53
maxb"bzr qlog filename" works11:53
didrocksvila: maxb: excellent, will use qbzr waiting for the gnome equivalent if gary wants to work on it :-)11:53
didrocksvila: maxb: thanks!11:53
vilamaxb: wow... they never stop to surprise me ;)11:54
didrocksyeah, bzr qlog was exactly what I was looking for :)11:54
viladidrocks: so qblame will display the same graph history than qlog <file> but only it (which may be exactly what you wanted)11:55
didrocksvila: you mean, only history where there is still a line from a displayed revision?11:56
vilathe so-called per-file graph11:57
didrocksbut bzr qlog will show me the full history of the file, even if the revision is not present anymore at all (there is no more line from that revision remaining)11:57
didrockswell, some kind of it, yeah :-)11:57
vilaqblame shows you that, below the annotations11:57
vilabah, it's hard to describe a gui :)11:58
didrocksvila: ok, so it's the full per-file graph! perfect then :-)11:58
didrocksright, it's not that easy to describe11:58
didrocksthanks11:59
Riddellwhat's the machine called that does the UDD imports?  I need to file the "install xz" rt ticket12:01
vilajubany12:03
Riddellvila: is there somewhere specific I need to tell them to install it?  like in a chroot?12:03
maxbRiddell: You might want to wait on filing that RT.12:11
Riddelluh oh12:11
maxbThe importer codebase is sadly lacking in XZ support.12:11
maxbWe might want to check that it won't do something stupid if the tooling is present12:11
Riddellmaxb: is it specific to the importer?  does it just use dpkg-source -x ?12:11
maxbIsh. There's some interesting code in bzr-builddeb import_dsc.py (I think) that needs fixing12:12
vilaRiddell: no chroot there (bbiab, lunch time)12:13
maxbSo, I'm a bit annoyed by the volume of Launchpad code review email that ~bzr gets12:14
maxbI'm contemplating sending an email to bazaar@ suggesting that ~bzr and ~bzr-core be unsubscribe from all branches12:14
maxbDoes that sound silly to anyone?12:14
Riddellby Launchpad code review e-mail you mean merge requests for bzr?12:15
maxbyes12:15
maxb(and all comments on all merge proposals)12:16
RiddellI seem to remember we had a conversation on Friday about unsubscribing ~bzr from that and having people just subscribe themselves12:16
maxbThat sounds like a sensible arrangement to me12:17
viladidn't lp provides a mean to unsubscribe from such inherited subscriptions ?12:18
maxbI thought it did, but it doesn't seem to be working. And, in any case, I'm not convinced that it makes sense to email everyone about everything by default.12:19
maxbWell, it seems sufficiently plausible that it's worth me sending a proposal email.12:21
lamontlifeless: bug 78807212:47
ubot5Launchpad bug 788072 in Bazaar "AttributeError: 'module' object has no attribute 'trace'" [Undecided,New] https://launchpad.net/bugs/78807212:47
vilalamont: eeerk, sounds like a weird packaging issue, there is no way we can even run tests without bzrlib.trace and we run the tests while building the package AFAIK (slight doubt for 2.3 but I'm pretty sure we started to do that for 2.2)13:09
lamontvila: and it's only on that one machine13:14
lamontpersonally, I'm more interested in making it stop doing that13:14
lamontthan in actually isolating the bug13:14
lamontpurging and reinstalling bzr and python-bzrlib does nothing13:14
vilawow13:14
james_wcircular import issue?13:15
vilalet's try to achieve the former (which should give us some data to fix the bug anyway)13:15
vilalamont: can you try 'bzr -Derror <whatever command you used>' to get a pdb prompt ?13:17
vilajames_w: occurring on a single machine ?13:18
james_wmy guess is some other package in the namespace messing it up on that machine13:19
vilalamont: oh, failed_to_load_extension in the traceback13:19
lamontbzr -Derror help13:19
lamontTraceback (most recent call last):13:19
lamont  File "/usr/bin/bzr", line 102, in <module>13:19
lamont    import bzrlib13:19
vilaok, trying to load bzrlib._chunks_to_lines_pyx, so you have two issues, the root one being that we don't find the extension13:21
vilalamont: the missing file is therefore  bzrlib/_chunks_to_lines_pyx.so under... wherever bzr has been installed13:22
lamontfind /usr -name _chunks_to_lines_pyx.so13:24
lamont/usr/lib/python-support/python-bzrlib/python2.5/bzrlib/_chunks_to_lines_pyx.so13:24
lamont/usr/lib/python-support/python-bzrlib/python2.4/bzrlib/_chunks_to_lines_pyx.so13:24
vilalamont: but your traceback says usr/lib/python2.5/site-packages/bzrlib/__init__.py13:24
vilamissing/broken symlinks ?13:24
lamontinterestingly, the same 2 files are the only output on a working machine13:27
vilalamont: any symlink in /s usr/lib/python2.5/site-packages/bzrlib ? (or in any sub path) ?13:30
vilagrr13:30
vilalamont: any symlink in /usr/lib/python2.5/site-packages/bzrlib ? (or in any sub path) ?13:30
lamontfind /usr/lib/python2.5/site-packages/bzrlib/| wc -l13:31
lamont^^ 33 lines where broken, 111 where working13:31
lamontsounds like a smoking gun13:31
vilawow, smoking shotgun even13:32
lamontboth machines are current on their packagelist13:32
* vila scratches head13:35
vilalamont: my local hardy uses 2.3.3 and python-bzrlib is installed under s usr/lib/python2.5/site-packages/bzrlib there13:35
vilathere is an almost empty /usr/lib/python2.5/site-packages/bzrlib containing only an empty benchmarks dir13:36
caravelHello everybody13:37
vilalamont: that seems to rules out bzr itself (and points to a packaging issue) no ? (Happy to continue to help otherwise)13:37
vilacaravel: _0/13:38
lamontvila: except that the very same package works quite well on EVERY OTHER MACHINE I HAVE13:38
lamontand "reinstall the machine" seems a trifle drastically overkill13:38
vilalamont: different install history for *this* machine maybe ?13:39
lamontin the end, it could be that python-support is b0rked in ways we don't yet understand13:39
caravelWhat's the recommended permission setup, for any ssh-based host ? Is the only choice, to use ACL ?13:40
vilalamont: I didn't mention upgrading to 2.3.3. Not what you want right ? (Just checking)13:40
vilacaravel: using authorized_keys with a dedicated user on the server is far better13:40
lamontI was kind of thinking of making 2.4.0 the next upgrade13:40
lamontthough if 2.3.3 is out, i suppose that's actually my next upgrade13:41
vilait is13:42
caravelvila: key or password is not the issue here I believe, and each bzr client user, has a dedicated user already. This is my point : I failed to obtain something that works : I tried the sticky bis without success13:42
vilalamont: but I can't guarantee it will fix the issue if something else is already broken there :-/13:42
lamontvila: so sounds like "moreinfo, try 2.3.3" is the appropriate status for the bug13:42
lamontvila: I'm 99% sure it won't fix the issue13:42
vilalamont: right, so no need to add noise by upgrading then13:43
vilacaravel: you lost me here, are you using bzr+ssh ? What kind of sharing are you trying to achieve ?13:44
vilaby 'bzr+ssh:' I mean as opposed to 'sftp:' in the URLs you use with bzr13:44
lamontthanks13:45
caravelvila: we have two groups of users, two branches and need different permissions (one brach is trunk essentially, the other is for contribs, the second user group must read.only the truck and write to contrib). So far we are using sftp://and will eventually use bzr+ssh but to my understanding this makes no difference on the server side (each user can connect over ssh also)13:46
caravel( server in a Standard Ubuntu maverick )13:46
vilacaravel: the main difference is that the sftp server filters the mode bits while bzr+ssh executes locally and should better deal with that13:47
caravelvila: hah! :)13:47
caravelvila: thanks, I'll give it a go - but what do you mean by "the sftp server filters the mode bits" ? sftp server is standard openssh module here13:49
vilacaravel: yup, that's the one I'm referring to (I don't remember the details though so I may be slightly wrong)13:50
caravelvila: ok thanks13:50
vilabut at one point in the past that was the shared belief13:50
vilajam: Where do we lose the chmod bits with sftp ? ^13:51
caravelMy second question is : is this possible to push a repo to a remote eg. sftp area, in such a way that the latest version of all files exist *not only* within the .bzr folder ? We want to (read-only) access the pushed repo using either bzr client, but *also* over sftp when no access to history is requred13:54
caravel(bzr client might not be avail/installed everywhere, purpose is code review)13:55
vilacaravel: either bzr-push-and-update or bzr-upload would satisfy that (check their docs for your exact needs)13:59
caravelvila: thanks, I knew I had missed something :)13:59
vilacaravel: the former will maintain the working tree up-to-date while the later will upload *only* the working tree but not the .bzr directory14:00
caravelvila: but these aren't avail in tortoise interface, only cli, right ?14:00
* caravel hasn't got a windoz to check14:00
vilacaravel: no idea, I don't use tortoise (and only rarely windows)14:01
vilacaravel: should be pretty easy to add support for them to tortoise though, file a bug /14:01
vila?14:02
caravelvila: when I was vnc'ing their workstations, I didn't see these options14:02
caravelvila: well, ok but they need something that works... last week :)14:03
vilaoh cool, we can think a bit about it before replying then :)14:03
caraveltortoisebzr context menu isn't hackable, besides editing source code and recompiling ?14:04
vilano idea14:04
caravelhmmmm - thanks a lot for your help vila, much appreciated14:05
vilabzr-upload can be configured to trigger automatically though14:05
caravelvila: not bzr-push-and-update ?14:06
vilamay be even both of them can be installed and configured on the server (I never did that myself though)14:06
vilahmm, not sure, but it seems to me that just installing the plugin will just do the right thing if the remote branch can be accessed with either sftp or bzr+ssh, worth a try14:08
jamvila: setgid gets stripped by openssh IIRC14:27
vilajam: thanks, that was my guess too, so on the server side14:27
jamvila: yes14:27
jamso it has setgid, we then issue chmod(2775) or whatever, and then it gets stripped of setgid14:27
jamso, for example, we are trying to change 2777 to 2755 or whatever, it ends up 75514:28
vilajam: http://babune.ladeuil.net:24842/job/selftest-windows/lastFailedBuild/testReport/ the last two failures should be obvious for you ?14:35
jamvila: obvious as in blame vila?14:35
vilareally ?14:36
jamvila: for running an old windows, I think14:36
vilaxp ?14:36
jamno, I'm just harassing you.14:36
vilaisn't it a "can't open a file already opened" ?14:36
vilaha :)14:36
jamI could have sworn I wrote and tested those on windows14:36
jamvila: can't open because we locked it in another instance14:37
vilabut the third one is for me ;)14:37
jamyou can open a file twice, but not if it has been locked, I think14:37
vilajam: so just skip on windows or fix the test ?14:37
jamvila: I'm seeing if I can fix it14:38
vilajam: so, I've blacklisted one more test on babune and now we're seeing failures that occurred in the last... ~month14:40
vilajam: first and second failures seems weird too: permission denied on a .pack file ? huh ?14:41
jamvila: I have an update for "worth_saving_limit" which passes here14:44
vilajam: do you have a public branch for that ? (And do you want a bug # for it ? (I'm filing bugs for the other))14:44
jamvila: no need for a bug, I'm proposing it now14:45
vilak14:45
vilaI've filed bug #788130 for the .pack file14:45
ubot5Launchpad bug 788130 in Bazaar "test_branch_local_remote failure on windows: permission denied on .pack file" [High,Confirmed] https://launchpad.net/bugs/78813014:45
jamvila: https://code.launchpad.net/~jameinel/bzr/2.4-dirstate-test-on-win32/+merge/6229814:46
jamvila: for this http://babune.ladeuil.net:24842/job/selftest-windows/lastFailedBuild/testReport/bzrlib.tests.test_config/TestLocationMatcher/test_file_urls_are_normalized/14:47
jam/dir/subdir is, indeed, illegal on windows14:47
jamso probably just change the test to add "C:" or whatever14:47
vilaprobably shallow, yeah14:47
jamhttp://babune.ladeuil.net:24842/job/selftest-windows/lastFailedBuild/testReport/bzrlib.tests.commands.test_commit/TestCommitWithBoundBranch/test_commit_mine_modified/ seems more complex14:47
jamin the first code path, we are getting an abort14:48
jambecause we thought we had a write stream that we are closing.14:48
jambut maybe that is just fallout from the other failure14:48
vilajam: filed bug #788131 as I'm already in the middle of mole whacking/yak shaving14:48
ubot5Launchpad bug 788131 in Bazaar "TestLocationMatcher.test_file_urls_are_normalized failure on windows" [Medium,Confirmed] https://launchpad.net/bugs/78813114:48
jamvila: commit_mine_modified passes here14:49
jamso it could be a timing thing14:49
vila<shudder>14:51
jamvila: running 10 times in a row all the tests in that module, no failures14:53
vilajam: I can confirm there is no virus scanner on this slave ;)14:54
vilajam: approved14:57
jamRiddell: did you need a review for "unescaped-backslash" that seems trivial enough to land15:01
Riddelljam: I self approved, but I feed-pqm tells me that launchpad staging is getting a code update so I can't submit it yet15:02
jamRiddell: I think you need a newer hydrazine15:03
vilaeeerk, why would staging be involved  there ?15:03
jamlaunchpadlib changed the signature of their connection15:03
jamand that caused hydrazine to start connecting to staging15:03
Riddellit's a bug that maxb was looking at last week15:03
jamRiddell: are you using packaged hydrazine or a branch?15:04
jamIf you pull the latest hydrazine trunk, it should work correctly.15:04
Riddellpackaged15:04
Riddellok I'll do that15:04
jambut I went ahead and submitted it, since I was there15:04
Riddellthanks15:05
maxbWhere is hydrazine packaged?15:06
Riddellmaxb: it's in a ppa15:06
Riddell@hydrazine-core15:06
Riddell~hydrazine-core15:06
Riddellbut it's out of date, there's only packages for maverick15:06
maxbHm15:06
maxbHydrazine feels like the kind of thing that everyone should just run from the branch all the time15:07
maxbBut if we have the PPA, it should be kept up to date15:07
Riddellpackaged by elliot murphy back in June 201015:08
jammaxb: daily builds!15:12
Riddellooh, good idea15:12
maxbTempting15:12
caraveljam: thanks for the setgid explanation (that one was for me) -- is it only while using its sftp mod ? or just any ssh use of openssh ?16:05
vilajam: AFAIK https tests are passing fine on babune, I'm not sure I understand the context were you see them failing, is it with bzr.exe from the installer ?16:57
vilajam: in this case you may be running into an old bug where the ssl certs should be taken into account by setup, so may be it's the same bug under a different use case16:58
vilajam: see PKG_DATA in setup.py16:58
vilajam: otherwise some other piece is missing like telling... whatever server/client to use the right path to access them (but I fail to see how that could be compatible with the tests passing on babune ;)17:00
lifelessvila: I think its a lazy import race reporting extension loading fail18:58
=== BasicPRO is now known as BasicOSX
caraveljam: what you mentioned about openssh, is this applicable to sftp only or also to bzr+ssh ?19:16
jamcaravel: sftp only19:16
workthrickhiya19:17
workthrick$ bzr dpush git+ssh://git@github.com/mathrick/cl-cairo2.git19:17
workthrickPermission denied (publickey).19:17
workthrickbzr: ERROR: The remote server unexpectedly closed the connection.19:17
workthrickI checked, and the key I'm using is properly setup, I can login using putty19:17
AuroraBorealisi had this problem where it was using a bad version of ssh.19:17
workthrickI also know that bzr uses paramiko + pageant properly for other connections19:17
workthrick(ie. sftp://)19:17
workthrickis there a possibility that dpush and/or git+ssh:// are somehow not using paramiko?19:18
workthrickhmm, actually I can see they aren't, since paramiko is very noise on connecting19:18
caraveljam: thanks alot. And using sftp, is the only way around, to use ACL, then ?19:18
workthrickbut why?19:18
AuroraBorealisi installed git on windows19:18
AuroraBorealisand it put like a weird version of ssh.exe in its folder19:18
workthrickI don't want to touch git, especially on windows19:18
AuroraBorealisand that was in the path, so bzr was using that instead of its own19:18
workthrickah, ok19:18
AuroraBorealisso suddenly bzr wasn't working with ssh stuff19:19
AuroraBorealisso see if there is any other ssh'es in your path? :o19:19
workthrickAuroraBorealis: I can still connect over sftp://, it just doesn't respect BZR_SSH for dpush somehow19:19
AuroraBorealishmm. ive never used dpush so i dunno :<19:19
workthrickyou have to if you want to push to git19:20
jamworkthrick: bug #67003519:21
ubot5Launchpad bug 670035 in Dulwich "git+ssh doesn't work on Windows" [Medium,Triaged] https://launchpad.net/bugs/67003519:21
jamcaravel: I believe if the permissions are already correct, we don't chmod19:22
jamso if you set umask, etc, it might just work for you19:22
AuroraBorealishmm =/19:22
jamwhich you can do in an sftp wrapper19:22
jamcaravel: http://jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions19:22
caraveljam: thanks (umask isn't an option here, it's only for a given space)19:22
caraveljam: ok - I see (reading)19:23
caraveljam: well no, we can't do that :( unless defining distinct users just for bzr -- and we don't want this. I'm a bit surprised since I was expectig that to be a very common need, but found it hard to find some info19:26
caravelso I'll try the acl route -- but that one is fine, right jam ?19:27
workthrickjam: ah, I see19:27
jamcaravel: I haven't tried it19:27
jamhttp://doc.bazaar.canonical.com/bzr.2.3/en/admin-guide/index.html19:27
workthrickthat's a pity, but I can probably work around it19:27
jamgenerally we recommend away from sftp once you can, because it really doesn't scale well19:28
jamonce the project is big, the performance goes way down19:28
jamit is better than ftp, but that isn't saying much19:28
AuroraBorealisthere is also little to no documentation on the smart server =/19:30
workthrickjam: any idea why paramiko doesn't get used here? I don't know how the transport stacking works in bzr19:31
jamworkthrick: I don't know. Presumably the low levels of dulwich don't use bzr transports19:39
workthrickok, so I solved it by transplanting ~/.ssh from linux, only to hit bug #62634119:43
ubot5Launchpad bug 626341 in Bazaar Git Plugin ""ValueError: too many values to unpack" when pushing to github" [High,Fix released] https://launchpad.net/bugs/62634119:43
* workthrick sighs19:43
AuroraBorealiswell it says fix released?19:44
workthrickyes, but I need to update, which probably means upgrading bzr, which is a royal PITA on windows19:44
workthrickbecause I'm running the non-standalone version19:45
caraveljam: ok, I understand. But say that one want to setup, as well as the bzr thing, a functional sftp *anyway* on the same machine (for basic file sharing), with multiple groups etc. Then ACL is a must, then sftp might be used okay, right ? Or would you do that differently ?19:45
AuroraBorealiscant you just use the installer?19:45
caravel(I meant : then sftp might be used okay for bzr also, right ?)19:46
* caravel wonders if *anyone* is using bzr and sftp with the same openssh instance (??)19:47
* fullermd killed off using sftp with bzr with great glee when bzr+ssh became a possibility...19:48
LeoNerdI only did that when it was actually faster to do so :P19:48
LeoNerdMy Celeron 333 server was -waaaaay- faster at running sftp, that it didn't matter the extra roundtrips and bandwidth19:49
* caravel meant : is *anyone* using bzr+ssh as well as standard sftp, using the same openssh instance ? :)19:49
caravel(i.e. standard sftp client)19:49
fullermdI don't use sftp much; easier to scp or rsync mostly.  But I've used it occasionally.  Not sure what cross-impact it might have on bzr+ssh though.19:51
caravelI mean, if standard sftp requires acl for multiple user groups, and if acl permits the use of bzr over sftp also, THEN, yes, bzr+ssh is still better, but not strictly mandatory (or do I get this entirely wrong ?)19:52
* fullermd suspects there's background in scrollback he hasn't read.19:52
fullermdI always just assume bzr+ssh is mandatory, really.  sftp is an available emergency fallback, whose use means "something is wrong".19:52
caravelDefining this thing to the opposite : with multiple branches on the same "ssh space", without acl THEN sftp is simply not an option, right ?19:53
fullermdOf course, the setgid issue with sftp-server wouldn't affect me anyway.19:53
LeoNerdI found that on a slow server, sftp is faster, generally, because the server's sftp server is nicely C code, whereas having to spin up python and bzr to run the server, slowed it down19:54
fullermdWell, the load isn't spinning up python, it's that the server is doing something other than "read from disk; write to network".19:55
maxbIt needs to be a pretty slow server and a pretty fast network connection for sftp to win out19:56
workthrickAuroraBorealis: no, since I wanted to use bzr-git, and that needs dulwhich19:56
* caravel hasn't found any hint in the documentation about such limitation : I understand this is not really a bzr issue, but still : one -- like me :-) might have thought « okay, we need sftp anyway, so the quickest way to get that bzr running will be that one ». [...]19:56
AuroraBorealisah.19:56
workthrickI have since learnt you can use _lib inside the plugin's dir for that, so I might try that next time19:56
workthrickbut now I just switched to linux, upgraded its bzr, and pushed from there19:57
* workthrick hugs the VM19:57
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== mwhudson_ is now known as mwhudson
mgzvila: saying bb:tweak to riddell is a little perverse even if you explain what you mean by it21:58
vilahmm, why ? I thought he needed to learn the acronym as I don't think we;ll stop using it. No ?22:00
vilamgz: by the way, I was about to switch back to lazy_hook_test_cleanup_785054 which made my eyes bleed earlier today ;-D22:01
mgzit seems mostly useful to people who've actually used bundle buggy in the past.22:01
vilamgz: right.22:02
mgz^yeah... I think I just need to step through in a debugger or something to work out what the hell is going on22:02
vilaI'll ask him here tomorrow to make sure he understand what  I meant22:02
mgztesttools is a pain to follow in pdb though, it's got so many layers of helpers calling helpers22:02
vilabut why not just use overrideAttr and forget about _restoreHooks ?22:03
mgzchanging the hook cleanup method completely is a good idea.22:04
vilaoh, and what makes it hard to review is that tests are failing so I don't know which failures I should really expect 8-)22:04
mgzI'm just not sure what the current code is actually doing, which makes me a little scared of replacing it.22:04
vilaAFAIK it removes all hooks for the duration of the test,22:05
vilaexcept for the ones that should really be left there :D22:05
mgzthe tests are nicely commented as to which ones are failing, the why is the hard bit.22:05
vilaok, let me try again22:06
vila./bzr selftest -s bt.test_selftest.TestHookIsolation -> 6 tests, 3 failures22:07
vilaexpected ?22:07
mgzyup, though I don't know why for the test_*_artificial cases22:08
mgzthe hooks.known_hooks logic is saving the locks hooks even when the lazy restoration code is doing the wrong thing.22:09
vilastarting with test_dict__lazy_hooks_restored22:11
vilayou're already protected there so the failure doesn't surprise me22:11
vilaerr, wait22:12
vila:)22:12
mgzthat one fails because the cleanup added for lazy hooks is wrong, but the confusing aspect is test_lazy_hooks_unregistered_lock does *not* fail22:12
mgzeven though the cleanup for lazy hooks is wrong22:13
mgzbecause the hooks in the known_hooks list are covered by the old hooks cleanup code anyway22:14
vilawhy and where should test_lazy_hooks_unregistered_lock fail ?22:16
mgzbecause the code added in _restoreHooks for lazy hooks doesn't set self._preserved_lazy_hooks back to the correct place22:17
vilabecause it should call the hook that you think should still be there ?22:17
mgzwhat's the reasoning for the way the current hooks test isolation code is written?22:21
mgzwhy not just blow them all away for the context of a test?22:22
mgz(and optionally re-add the essential ones)22:22
vila1) no idea22:22
vila2) that's what I was aking you :)22:22
vilawell for 1), I think it predates overrideAttr and was not recognized as a possible call site that could use it22:25
vilaerr, wait a minute, why is iter_parent_objects() used twice ??22:27
mgzfirst is to get the current hooks, then to set a blank factory on the hook point22:29
mgzif I have the terminology right22:29
mgzalso, it's somewhat confused by the behaviour changing with the adding of lazy hooks22:29
mgzI'm still not certain what's stored as attributes on Hook classes and what's in that _lazy_hooks dict22:30
mgzI think the intention is everything's now in the one dict.22:31
mgzwhich should mean it's safe to simplify the test isolation22:31
vilawhat's blank factory ?22:32
mgzbut I don't understand why the two failing tests aren't working22:32
mgz^a hook class by the look of it22:33
vilabut why do you say blank ? Looks like the real thing to me22:34
mgzas in, with no callbacks set22:35
mgzthough this is complicated by the api change, I really don't know what's going on now22:36
vilaha, right, yes, blank factory, ok got it22:39
vilaso in effect, this reset all the hooks indeed22:41
vilathis guarantees that you will always get a result when querying the registry, but start afresh without any hook points22:41
vilaa two-level dict if you prefer so we can't just do self.overrideAttr(hooks, 'known_hooks', KnownHooksRegistry())22:42
mgzright.22:43
mgzand I'm not clear on what 'known_hooks' consitutes. are all usabled hooks nessersarily found there?22:44
mgzbecause otherwise it looks like we're only protecting the basic bzrlib hooks and not any added by plugins etc22:45
vilaerr, plugins we are getting rid of the hook points, only bzrlib defines hooks AFAIK (and if I get the names right ;)22:50
vilameh s/plugins//22:51
vilaso there is a single hook point that is preserved: the smart request one to check the server jail22:52
mgzokay then, if _builtin_known_hooks is intended to be exhastive, I think I can just delete the _lazy_hooks dictionary overriding, and the two *_artificial tests22:53
vilaI'm pretty sure _builtin_known_hooks is exhaustive22:55
vilaat least as far as testing bzrlib goes22:55
vilaand I always considered that to test a hook point you *had* to install it during the test22:56
mgzso what I'm doing with _TestingHooks in those tests is just bogus because it's not named in _builtin_known_hooks?23:00
vilahaaa, could be, you don't even register it no ?23:01
mgzI call install_named_hook or install_lazy_named_hook23:02
vilaghaa, right, I think a lot of confusion is coming from hook/hookpoint and not even respecting that in all method names23:02
vilabut that's one level below23:02
vilayou've just defined a Hook that is not protected and inside that you add hookpoints23:03
vilait's not a two-level dict, it's a two-level registry23:08
vilathis may be worth refactoring for clarity but the compatibility issues might be... interesting23:10
vilamgz: I'm crashing :-/23:12
mgzsleep!23:13
vilamgz: did this discussion clarify things a bit ? (It did for me at least but I'm not fresh enough to explain it properly I fear)23:13
mgzI think so.23:14
vilathe lazy_hooks are really hookpoints I think and don't require as much care (single level)23:15
* vila off23:16

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