/srv/irclogs.ubuntu.com/2008/12/17/#bzr.txt

kfogelhttp://paste.lisp.org/display/7226600:00
Peng_kfogel: bob2's probably right. It's probably a distro package.00:01
kfogelPeng_: ah00:01
Peng_Or you could've manually installed it in the past, I guess.00:01
kfogelindeed, it is00:01
kfogelI just tried 'apt-get install bzrtools' and it told me I have the latest version00:02
kfogelSo, I want to override that with a dev version, right?00:02
spivkfogel: perhaps try "bzr co lp:bzrtools ~/.bazaar/plugins/bzrtools" to get the current development version of that plugin (to match the development version bzr).00:02
kfogelspiv: would the more bzr-ish thing to do be to branch that instead of cp?00:02
spivOr run the tests without plugins.00:02
spivWell, if you're not planning on editing it, it doesn't really make a difference :)00:03
kfogelspiv: hmmm.  Shouldn't the tests run without plugins by default?  I mean, if bzr's own test suite depends on something in an external package (bzrtools), then... then bzrtools isn't really external, in a sense.00:03
spivbzr's test suite doesn't depend on plugins.00:03
Peng_kfogel: It runs the tests suites of plugins.00:03
kfogeloh...00:04
spivBut if plugins are loaded, they can add their own tests to the "bzr selftest" test suite.00:04
kfogelhuh00:04
spivSo that the plugins can have tests that can use all the shiny test infrastructure in "bzr selftest" :)00:04
kfogelrunning LC_CTYPE= LANG=C LC_ALL= ./bzr --no-plugins selftest -1v 2>&1 | sed -e 's/^/[ascii] /'00:06
jelmerpoolie, np00:07
kfogelOkay, bigger question this time: I've got a draft fix for bug 306394 (still writing test, so there will be more commits).  But I'd like to show my branch to the world.  Currently, the branch is on my laptop.  I went to launchpad.net and clicked "Register a branch", figuring that I'd be able to publish my branch over in launchpad that way.  But the form requires that I supply a "Branch URL", i.e., that my branch already be hosted somewhere00:20
kfogelon the public Net.00:20
ubottuLaunchpad bug 306394 in bzr "bzr status should not ignore all other command line arguments if when passing non-existent file" [Undecided,Confirmed] https://launchpad.net/bugs/30639400:20
kfogelAm I doing something wrong?00:20
Peng_kfogel: Erm, it's entirely possible to push branches to LP, but I'm not sure how you do it. It might just be "bzr pusl lp:~kfogel/bzr/bug-whatever" or something, without registering it first.00:21
Peng_push*00:21
kfogelhmmm, that would be nice00:21
Peng_Sorry, but I've never done it. :P (I host all my branches on my server and let LP mirror them.)00:21
spivkfogel: what Peng_ said.00:22
garyvdmkfogel: you need to set up a ssh key on launchpad00:22
pooliethumper: ^^00:23
spivkfogel: you don't need to register the branch on launchpad's web ui first (but it doesn't hurt if you do)00:23
garyvdmand then bzr push lp:...00:23
kfogelgaryvdm: bzr launchpad-login kfogel00:23
kfogelbzr: ERROR: The user kfogel has not registered any SSH keys with Launchpad.00:23
kfogelSee <https://launchpad.net/people/+me>00:23
kfogelheh00:23
kfogelgaryvdm: seems so00:23
garyvdmhttps://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair00:24
pooliekfogel: if it's just a fix for this, it's more straightforward atm to just send the bundle to the mailing list, with [merge] in the subject00:24
pooliesoon i believe there'll be a process in lp to say 'here's the bundle for this bug'00:24
kfogelpoolie: that would be straightforward, but part of my goal here is to learn what bzr/lp is like for larger development too00:24
spivkfogel: "bzr send --mail-to bazaar@lists.canonical.com", assuming you've committed the change.00:24
kfogelpoolie: also... Well, for example: I've committed one fix, and have some questions about writing the test, and so I wanted to be able to point people to the branch as it stands so far, so they'd have context for my question.00:25
kfogelI *could* do it all with patches on the mailing list.  But I'd much rather do it The Right Way.00:25
Peng_Bundles *are* the right way of proposing a change to bzr, though having a public branch isn't a bad thing, especially if you want to collaborate with other people on it.00:27
Peng_(Well, sending a merge request. It doesn't technically have to be a bundle.)00:27
poolieok, so then pushing to lp is a good idea00:28
pooliebtw, thanks for actually looking at that bug!00:28
kfogelPeng_: ok.  What would I do with the bundle -- post it as an attachment to my mail, or upload it somewhere?  (I noticed that bundles don't have a cleartext log msg, although the diff is cleartext.)00:28
kfogelpoolie: np :-)  (though I misunderstood it the first time, oops)00:28
Peng_kfogel: Yeah, attach it to a mail with a subject starting with "[MERGE", so it'll be tracked by BundleBuggy. (Though if it's just a rough draft, use "[RFC]" or something instead if it's not worth tracking.)00:29
kfogelPeng_: is BundleBuggy active for all projects, or just bzr?00:31
Peng_kfogel: Bundle Buggy is FOSS (right?), and a few other projects are hosted at http://bundlebuggy.aaronbentley.com/00:33
Peng_(Mostly bzr-related.)00:33
kfogelPeng_: So BundleBuggy is set up outside Launchpad (right now), okay.00:34
Peng_Launchpad has merge proposal stuff too now, but Bundle Buggy hasn't gone away.00:35
mwhudsonOdd_Bloke: dude, you need to spend less time on identica00:37
Odd_Blokemwhudson: Or maybe you need to spend more.00:38
Odd_BlokeNo, you're probably right.00:38
mwhudsoni went for lunch, hit refresh and had a page of you :)00:38
Odd_Blokemwhudson: You're welcome. :p00:39
=== BasicPRO is now known as BasicOSX
=== Hydrogen_ is now known as Hydrogen
kfogelhuh.  bzr Makefile doesn't have an "install" rule. ?01:15
kfogeloh, there's an INSTALL file01:16
garyvdmWould there be a performance difference between calling repo.get_revisions 1 revision at a time, and calling repo.get_revisions for a number of revisions.01:16
garyvdmI've got some code in qlog that calls repo.get_revisions 1 revision at a time, but it's not a trivial change to batch the calls.01:17
spivkfogel: I generally just run bzr from my checkout of bzr.dev.01:18
spivkfogel: and when I'm not trying to use the bleeding edge, I just rely on the ubuntu packages in the PPA.01:18
spivgaryvdm: yes, there would be.01:19
jmlpoolie: https://bugs.edge.launchpad.net/launchpad-bazaar/+bug/280595 <-- know anything about that one?01:19
ubottuLaunchpad bug 280595 in launchpad-bazaar "RevisionNotPresent error when mirroring stacked branches" [High,Triaged]01:19
spivgaryvdm: imagine for example that the branch you're doing qlog is on a high-latency network link.01:20
spivgaryvdm: but even locally I think you'll see some improvement.01:20
garyvdmspiv: that just the case I'm trying to improve.01:20
spivjml: possibly those branches are victims of #291046 ?01:22
jmlbug 29104601:23
ubottuLaunchpad bug 291046 in bzr "pushing branch6/packs5 to location with default stacking policy creates broken branch" [High,Fix committed] https://launchpad.net/bugs/29104601:23
jmlspiv: I don't know. :)01:23
spivjml: i.e. they are actually broken branches, and the problem is only noticed at mirroring time because bzr clients wouldn't have necessarily noticed on the first push.01:23
spivjml: or, in more practical terms,01:23
spivjml: does "bzr check" on the hosted branches pass?01:24
jmlspiv: make things really clear for me. what would a "yes" answer imply, what would a "no" answer imply?01:24
spivjml: Or more cheaply, maybe check what branch and repo formats are?01:24
pooliejml, all i know is what spiv/abentley said01:25
jmlpoolie: thanks.01:25
spivIf the branch format is not stackable and the repo format is, then it is probably a victim of 291046.01:25
spivIf so, then as people start using 1.11 these issues should start going away (because clients won't be making broken half-stacked branches anymore).01:26
jml        branch: Branch format 701:28
jml    repository: Packs 5 (adds stacking support, requires bzr 1.6)01:28
jmlspiv: no such luck.01:29
spivjml: drat01:29
spivjml: no idea, then.01:29
jml(although, of course, there's no guarantee that the branches with those names are the same branches as those triggering the bug.)01:29
jmlspiv: leonard's branch has the symptoms you describe01:31
spivjml: ok, so it explains some cases.01:35
jmlspiv: well, the other branches I sampled are no longer failing with that error message.01:35
jmlspiv: I'm marking the bug as Invalid on launchpad's side.01:35
spivjml: sounds reasonable.01:37
garyvdmspiv: Is it ok if I bug you with some questions about loading revisions?01:50
spivgaryvdm: that's ok.01:50
garyvdmspiv: Changing to "batch loading" is going to be a bit of work because qlog can open branches from different repos at the same time.01:52
garyvdmcurrently we go through each repo and see if we can load it from that one, else go to the next one.01:52
garyvdmsee http://bazaar.launchpad.net/~qbzr-dev/qbzr/threadless-throbber/annotate/564?file_id=liblogmodel.py-20080624153442-csesbwmxg0s8db2x-101:53
garyvdmline 88001:53
garyvdmI think I can write some code using graph functions to work out which repo a revision comes from.01:54
spivgaryvdm: so why not ask the first repo for all revisions, then the next repo for any that are still missing, etc.?01:54
garyvdmBecause if there is 1 revision that is not in the first repo, get_revisions raises and exception01:55
garyvdmand you don't get the other revisions01:55
spivOh, get_revisions raises.  Unfortunate.01:55
spivSo, first, please file a bug about that, because it would be a useful feature to add :)01:56
garyvdmOk01:56
spivSo yes, you can use get_parent_map first to find out which repos have the revision.01:57
garyvdmMaybe we could implement a stackedRepo class like we have a StackedGraph class01:57
spivrevision*s*01:57
spivWell, there's already Repository.add_fallback_repository, but that requires that you have a stacking-capable repo to start with.01:58
garyvdmThis is my real question: Currently I call QtCore.QCoreApplication.processEvents() which keeps the gui responsive, inbetween each revision that we load01:59
garyvdmSo if we are loading revisions over a slow network, the gui does not lock up.02:00
spivBut a loop like "revs = []; revisions_to_get = set(self.revisions); for repo in self.repos: revs_in_repo = repo.get_parent_map(revisions_to_get).keys(); revs.append(repo.get_revisions(revs_in_repo)); revisions_to_get.difference_update(revs)" wouldn't be too bad, and is fairly easy.02:01
spivAh.02:01
spivbzrlib doesn't really have any facility for co-operating with an event loop.02:01
garyvdmIf I changed get_revision to be a generator, rather than return a list at the end, would I get what I am looking for?02:02
spivA bit.02:02
spivIt'd certainly be better than not doing that, but you'd still have lengthy stalls in the GUI depending on how long it takes for network requests to be answered.02:03
spivI'd recommend keeping the GUI event loop in a separate thread, I think.02:03
garyvdmWhich we have to some degree.02:03
spiv(Using a generator is a good idea regardless)02:04
garyvdmSome devlopers are insistent that we don't use threads.02:04
spivYeah, I saw that mentioned the other day.02:04
spivI don't think there's much choice.  Parts of bzrlib are fundamentally blocking.02:05
spivSo if you don't want that blocking to affect your GUI, you need separate threads (or even separate processes, if you like).02:05
garyvdmCan you explain to me: are there a number of revisions stored in one file, or is each revision in its own file on the disk?02:06
spivbzrlib will try to stream results as quickly as possible, which will tend to keep the periods it blocks low-ish, in common conditions.02:06
spivIn current formats, there are multiple revisions in one file.02:06
garyvdmIs there an api to find out which revisions are in the same file as another revisions?02:07
spivI sympathise with wanting to avoid threads, I don't like them either.  But I do think they're probably your best option here.02:07
spivThere is, but it's format-dependent... why do you want to know?02:08
spivbzr doesn't fetch the entire pack file in a single operation.02:08
spiv(usually)02:08
garyvdmOh02:08
spivWe do readv requests etc.02:08
spivI strongly suggest not trying to second-guess bzrlib's fetch logic :)02:09
garyvdmI was thinking - If we have opened that file, we might as well read the other revisions in there. I'll take your advice though.02:09
spivAlso, over smart-server protocols (like bzr+ssh) the exact file layout is irrelevant.  (Well, a bit.  But that's increasingly true)02:10
spivYes, that's the sort of thing that bzrlib does already :)02:10
spivAnd it works much better if you ask for all the revisions you want in a single call! :)02:10
garyvdmOk - Thanks for the info - I'm going to start with making get_revisions a generator - and see how that works..02:11
spivCool.  repo.get_parent_map is a good way to find out what revisions that repo has, in case I didn't already mention that.02:12
spivBut it'd be even better to get us to improve get_revisions -- if you peek at the implementation, you'll see it'd be pretty easy for us to improve it to take a "missing_ok=True" flag.02:12
garyvdmOk - thats a cool idea.02:13
spivgaryvdm: or, you could even use repo.revisions.get_record_stream directly.02:13
garyvdmOk02:13
spivgaryvdm: take a look at how bzrlib.repository.Repository._get_revisions calls it.02:14
spivgaryvdm: which would be even more appropriate for you, actually, because that streams the revisions one-at-a-time, rather than batching them up.02:14
garyvdmYes - and that would be easy to do.02:15
garyvdmspiv: Out of interest: I was looking for where repo.revisions gets set, but I could not find it. do you know where that happens?02:16
spivgaryvdm: depends on the format.02:19
garyvdmOh - ok02:19
spivFor pack repos, it happens in KnitPackRepository's __init__, for instance.02:19
garyvdmMakes sense now.02:20
rockyjelmer: any luck on the svn issue i reported earlier ? :)02:20
garyvdmspiv: Thank you very much for your time.02:20
spivgaryvdm: not a problem.  Glad I could help!02:20
jmlspiv: hi02:28
jmlspiv: is this the bug that you just fixed: http://paste.ubuntu.com/86710/02:29
spivjml: no02:38
jmlbugger.02:39
mwhudsonlooks like a client bug02:42
mwhudsonSEP field UP!!02:42
jmlmwhudson: yeah. https://bugs.edge.launchpad.net/bzr/+bug/30882202:44
ubottuLaunchpad bug 308822 in bzr "bzr+ssh says "has no revision", sftp doesn't complain" [Undecided,New]02:44
=== Spaz is now known as AnalougeKiwi
igchi all03:55
igcmarkh: hi03:55
markhigc: hi ian!  I was going to ask you about the ramifications of not having eol config stored per-branch...03:56
igcmarkh: well, IMO, it's not done-done until per-branch storage/merging/etc. is supported03:58
markhultimately I guess I want to know what happens to the branches where we don't want this to happen.  If I just need it for 1 or 2 projects, will that screw anything else?03:58
markhright :(03:58
markhany eta on that?03:59
markhFrom the mailing list it seems that Alex sees this as a showstopper - I'm trying to determine how true that is (or if it is true, when I should again get my hopes up :)03:59
igcmarkh: it depends. It *was* supported by it was backed out by Robert because quite a few people were unhappy with how it was done, i.e. by having a .bzrrules file in the tree04:00
igcs/by/but/04:00
markhheh - presumably not any windows devs in that bunch :)  So is that actively being worked on, or it it in the never-ending-queue?04:01
igcso we need to get agreement on *where* to store the settings, e.g. under .bzr/checkout/rules, say.04:01
igcI can easily support an agreed place. Supporting propagation and merging of settings is more complex though.04:01
igcWell, more complex if it's somewhere special outside the working tree04:02
igcthat's the bit Robert agreed to do, but he'll be busy on the CHK stuff first I suspect04:02
markhok - so we don't really have any idea when I can get my hopes up again? ;)04:03
igcIn the short term, if we got a location agreed, then developers could easily add the rules for just the trees they cared about04:04
igcthe rules wouldn't propagate BUT that may not be a big deal.04:04
markhis there a practical use case for this EOL work *without* such a place?04:05
igcAdding/editing .bzr/checkout/rues (say) would then be part of the project setup process I guess04:05
igcmarkh: I think so. Many Windows would want EOL support enabled for all trees wouldn't they?04:06
igcmarkh: If so, adding settings to BZR_HOME/rules will work04:07
igcand that's supported now04:07
markhumm - ultimately that might be correct - but I'm not sure what the impact on *existing* bzr windows users would be04:08
markhso yeah - I see it useful for people who only ever want windows trees - but I'm being selfish atm and working out if it will be any good for *me* :)04:08
markhit may well be fine - but if, eg, bzr.dev moved to the new format and I locally enabled that rule, I'm not sure what the impact on the existing trees might be04:10
markhif the only impact was suddenly all my .py files in bzr.dev and elsewhere got \r\n, that would probably be ok04:11
lamalexcan I undo a bzr revert?04:11
markhlamalex: you should find the revert created '~1~' like files with the original contents04:14
lamalexok, so is there a bzr way to move them back?04:15
markhlamalex: not within bzr - just use mv/cp/etc04:15
igcmarkh: well, my plan is to get something basic supported first without ruling out a better solution later. Even that will take some work.04:16
markh(not that I'm aware of anyway)04:16
markhigc: that sounds reasonable -  I'm not sure how it would be dogfooded, but there are lots of things I'm not sure about :)04:17
markh(in case you can't tell, I'm quite keen to get this capability to open up a number of possibilities to use bzr where I can't today...)04:20
=== AnalougeKiwi is now known as Spaz
mtaylorhas any progress been made on nested branches?05:53
vilahi all07:00
pooliehello vila!07:07
pooliemtaylor: some; there's a patch from larstiq that improves them07:07
pooliethere's also a recent plugin from bialix that supports this kind of function in a simpler but less integrated way07:07
mtaylorpoolie: when you say improves them... does that mean they exist currently? I must not have been paying attention :)07:41
pooliethey do exist but are experimental/buggy07:44
LarstiQmtaylor: if you ping me later on I can give you a rundown on what the status is08:13
LarstiQunfortunately, not very active08:13
* LarstiQ will get back to that later too, afk for now08:13
=== tga_ is now known as tga
rockyjelmer: no luck on the bug we discussed yesterday i suppose?11:37
rockyperhaps something i can help with?11:37
ronnyhi12:49
ronnybzr kinda put me into a headache situation, its the only vcs that can't point a workdir to something different that tip12:50
ronnyalso the whole pulling history to a branch enforces a merge stuff12:52
ronnyits kidna hard to abstract that into a model that fits git/hg/bzr/darcs as well12:52
ronnyhmm12:56
ronnywell, just ignoring bzr would kill my issues, but that wont help users of my lib12:57
lukswhat else could a working tree point to?13:01
ronnyother revs13:02
luksother revs of what?13:02
ronnyworks pretty well in git/hg/monotone13:02
ronnyof that branch13:02
ronnywell, those also allow more than one head13:02
luksbzr pull -r X . --overwrite13:02
fullermdThat's not exactly the same thing   :p13:02
ronnyluks: doesnt that just kill stuff?13:03
luksof course, because doesn't have multi-head branches13:03
fullermdYou don't have to have multi-head branches to support update -r.13:03
ronnythen its not helpfull13:03
ronnyit helps13:03
fullermdYou just need to follow through every 8 months or so when somebody picks up the patch and updates it, posts it to the mailing lists, and listens to the crickets chirping.13:03
lukswhat would it do if you commit to such a tree?13:03
ronnyusually the next thing people want to do it a dagy patch13:03
ronnyluks: add a new head13:04
fullermdFail.  So what?13:04
luksI'd imagine it creates working_tree_rev+113:04
lukswhich is exactly the same as creating a new branch13:04
lukswhich is what the pull -r command does13:04
fullermdgit doesn't have multi-head branches either.  It's still useful to fling the WT around.13:04
luksbut you need to remember the pointer to the original branch13:04
fullermdNo.  Wrong.  pull -r makes it absurdly difficult to get BACK.13:04
ronnyfullermd: gits "brances" are just references into the repo13:05
luksronny: so are bzr branches13:05
ronnyits not exactly the same13:05
luksronny: the only difference is that in git it's a file, in bzr it's a directory with a few files13:05
ronnyluks: in git i can easly repoint my workdir, in bzr, well - i have to do studd13:06
ronny*stuff13:06
luksthat's something different13:06
luksyou can have a lightweight checkout and repoint it13:07
fullermdNot nearly as easily as you can with git.13:07
ronnythats my issue with bzr13:07
ronnytonns of modes that are all less easy than just the other stuff13:07
fullermdBranches as primary entities make some things a lot nicer and some things a lot uglier.13:08
ronnythats why its not easy to abstract it away13:08
fullermdBut neither decision really has anything to do with update -r.13:08
luksif they would be the same, why would we need to many VCSes?13:08
luks*so13:08
pygiwe don't need them ...13:08
pygiits about humans ;)13:08
fullermdBecause every VCS except $MY_CHOICE sucks, of course   :p13:08
pygifullermd, I disaagree13:09
fullermdSee?  That's why you're wrong!13:09
luksI could personally see bzr update -r to make the working tree "read only"13:09
luksbut I can't imagine how to handle commit to such a tree13:09
ronnyfullermd: you see my hell ?13:09
pygifullermd, I am not wrong13:09
ronnyluks: multiple heads13:10
LarstiQpygi: dude, sarcasm13:10
fullermdThere are various possibilities that could be pursued.  But they're not necessary to the core feature; they can be additions.13:10
pygiLarstiQ, :P13:10
* pygi hides13:10
pygiLarstiQ, dude, lack of sleep xD13:10
luksronny: doesn't help if there is no branch pointing to them13:10
LarstiQpygi: np :)13:10
pygiLarstiQ, how ar eyou doing? :)13:10
fullermdupdate -r is useful even if you can't commit based on it.  Not AS useful, certainly, but it still has useful properties.13:11
ronnyluks: well, they are just heads in a branch13:11
ronnyor at least heads in a repo13:11
LarstiQpygi: good, good, back in the Netherlands after losing my passport in Finland, I'm good :)13:11
luksronny: unreferenced heads are exactly what bzr pull -r X --overwrite . would produce13:11
fullermdAnd making update -r work is "easy"; making commits work on it is hard, and doubly hard since there isn't an agreement on how it SHOULD work.13:11
ronnyhg/git/monotone manage that kind of stuff pretty well13:11
pygiLarstiQ, ah, sorry to hear about losing that stuff13:11
LarstiQpygi: apparently it's possible to fly with just a police statement13:12
fullermdWell, mtn is a special case.13:12
fullermdLarstiQ: Sure, you demolish a few buildings, and they'll fly you around with no papers at all.13:12
pygiLarstiQ, heh, well, they can't keep you in Finland forever :P13:12
LarstiQpygi: no, but yesterday they let me know the passport has been found and reside at the Immigration Unit of the police in Espoo, so they're luring me back to pick it up ;)13:13
ronnyfullermd: mtn istn that special, the history structure is pretty semilar, just the metadata is really good13:13
pygiLarstiQ, ...13:13
pygiLarstiQ, cant they just send it?13:13
ronnywell, bzr is the one that creates the most conceptual issues for my abstraction13:14
LarstiQpygi: I haven't asked, imo sending documents like that around is a bad idea.13:14
fullermdIt's not that it's "good", it's that its worldview permits those sort of situations naturally.13:14
fullermd's not the case elsewhere (except maybe in hg; I can't keep track of the weird things they half-do at any given point in time)13:15
ronnyhg and git both permit that kind of thing13:16
ronnywell, and darcs/camp are kinda special13:16
fullermdYou can't have multi-head branches in git.13:16
fullermdYou can just make new branches easier.13:16
fullermdThat's not a difference in kind.13:17
ronnyfullermd: but the repo thats on your workdir can have multiple heads more easy, and you can just update to an old rev and commit13:17
luksthat's the "making new branches easier" point13:17
fullermdRight, but that's no different conceptually than the way you'd do the same thing in bzr.  It's just a much smoother process in git.13:18
fullermdIn mtn, it's a different conceptual process.13:18
ronnyit needs a new dir in bzr13:18
luksit needs a new file in git13:18
ronnythats something thats entirely impractical to me13:18
luksreally, the only difference is that bzr is beeing explicit about creating new branches13:18
* fullermd points at the difference between "concept" and "implementation".13:18
ronnyluks: all of my workdir stays in the same stuff13:19
LarstiQronny: same with bazaar13:19
fullermdIt may LOOK almost identical between git and mtn, but conceptually it's very different.  It may look very different between git and bzr, but conceptually it's almost identical.13:19
LarstiQunless you meant something different with workdir13:19
ronnyLarstiQ: uh how ? they cant have more than one head13:19
ronnyso its rather tricky, needs a repo around, and tracking of stuff in the repo to make that branch tick like i want13:20
ronnythat makes the whole workflow more complicated13:20
fullermdI don't certainly wouldn't argue against the proposition that the inability to have multi-branch bzrdirs is a big failing in bzr.  It is.13:20
fullermdI'm not even sure what we're arguing about.13:21
* fullermd obviously needs coffee.13:21
=== abentley1 is now known as abentley
=== bac_afk is now known as bac
=== vednis is now known as mars
Lo-lan-doHi all15:16
Lo-lan-doAm I mistaken, or is the parent_location defined in locations.conf not overridden by the one in branch.conf?15:16
abentleyLo-lan-do: That is correct.  locations.conf always overrides branch.conf, because you control locations.conf, but may not control branch.conf.15:42
alsurenis there an interactive version of the add command?15:44
Lo-lan-doI see.  The problem is that branch.conf moves automatically when the repository or its layout changes, but I have to update locations.conf by hand.15:45
abentleyLo-lan-do: There are certainly some problems with this approach, but the alternatives generally involve making the configuration mechanism more complicated.  So we've shied away from them so far.15:47
Lo-lan-doOther problem is that it makes "bzr push --remember $url" fail to work as advertised.15:48
Lo-lan-do(Which is my main gripe, really, I can live with updating my configuration when revamping my repository)15:49
abentleyLo-lan-do: It should *warn* you that it's failing to work as advertised, though.15:50
komputesAny idea when bzr 1.10 will be posted as a windoze executable? No worries, it's not for me, I would never join the dark side ;)16:22
\shjelmer: hi again...ok, now I got a traceback regarding my problem from yesterday :) http://paste.ubuntu.com/87158/16:24
marcoilIs there some place I can get info on ghost revisions?16:25
Peng_komputes: The build machine is having problems, so..."eventually, probably".16:35
=== Mario__ is now known as pygi
* \sh needs to rush home...16:39
davidstraussIs there a guide to making unit tests for Bazaar?16:39
komputesPeng_: hmmm, can we upgrade that to "eventually, definitely" or "oh look it's built, look on LP" ;)16:42
* komputes can dream...16:42
=== sdboyer-laptop_ is now known as sdboyer|sprint
kfogelI'm about to mail bazaar@l.c.c with a question about my fix-in-progress for bug #306394.  Is there something special I should put in the subject line so that the bug tracker notices the mail?17:24
ubottuLaunchpad bug 306394 in bzr "bzr status should not ignore all other command line arguments when passed a non-existent file" [Undecided,Confirmed] https://launchpad.net/bugs/30639417:24
kfogelsort of like that? :-)17:25
fullermdThe bug tracker doesn't watch the list.17:27
Odd_Blokekfogel: If you're attaching a patch/merge directive and want it to be voted on, the subject should start with "[MERGE".17:28
=== enigma1 is now known as enigma42
kfogelOdd_Bloke: I'm not proposing it for merge yet.  I'm just asking a question, but it would be good to have the thread tracked by the bug tracker.  That's what I'm not sure how to do (or even if it is automated).17:29
Odd_Blokekfogel: You could CC it to the bug.17:29
kfogelOdd_Bloke: aaaaaaaah (enlightenment).  Thanks, I'll look for how to do that.17:30
kfogelOdd_Bloke: just wrote this in #launchpad:17:42
kfogelHow do you CC a bug in Launchpad?  Neither the generic bug tracker landing page nor the specific bug page (in this case, https://bugs.edge.launchpad.net/bzr/+bug/306394) documents what address one would mail in order to have the email become a comment in the ticket.  (Over in #bzr, Odd_Bloke just told me to CC a bug, and I'm trying to figure out how.)17:42
ubottuLaunchpad bug 306394 in bzr "bzr status should not ignore all other command line arguments when passed a non-existent file" [Undecided,Confirmed]17:42
=== ameoba_ is now known as ameoba
LarstiQkfogel: also, if you do send a bundle that bundlebuggy will track (and provided you mention the bug), the bug and thread will be tracked from http://bundlebuggy.aaronbentley.com/17:45
LarstiQkfogel: so consider sending it as [RFC] instead of [MERGE]17:46
kfogelLarstiQ: so let me make sure I understand: I'm going to put "[RFC]" on the subject, and CC the bug number.  Other than that, I just write the mail as usual.17:48
fullermdkfogel: It's like <number>@bugs.launchpad.net17:48
kfogelfullermd: thank you (yes, over in #launchpad someone said same)17:49
LarstiQkfogel: yup, that will make it show up in bundlebuggy and on the launchpad bug17:50
LarstiQkfogel: (bundlebuggy tracks if patches are merged, and provides a review queue)17:50
kfogelLarstiQ: there's no bundle in my mail; instead, it points to a change pushed up to a personal branch.17:52
LarstiQkfogel: that should result in manual tracking, which is a bit more work but fine17:53
LarstiQkfogel: of course, if you feel it is premature to go this far, no need to17:53
LarstiQjust expanding on what infrastructure is in place17:53
kfogelthanks17:55
=== sdboyer-laptop_ is now known as sdboyer|sprint
=== ja1 is now known as jam
nDuffDoes bzrlib need the ids passed into WorkingTree.add to be a real dict (able to, for instance, enumerate its keys), or can it be any object with its __getitem__ overridden to determine an ID based on the name?19:17
abentleynDuff: WorkingTree.add does not use dictionaries of any kind.19:29
abentleynDuff: WT.add takes a list of files and an optional list of file_ids (and an optional list of file kinds).19:31
abentleynDuff: Supplying a real list, rather than a generator or some sort of fake container is definitely recommended.  I suppose it's possible that other containers might work.19:33
nDuffabeaumont, it's the dict of file_ids that I'm considering faking; I have no reason to provide anything other than a real list wrt. the files.19:34
* nDuff backs out that "no reason" bit19:34
nDuff...when doing a smart_add, for instance, I'd like to be able to generate IDs for things without having known that the recursive add was going to include them.19:34
abentleynDuff: There is no dict of file_ids for WT.add19:37
nDuff...hrm, you're right, looking at the API docs. Could have sworn that somewhere else there was documentation to the effect that there was a dict.19:38
abentleynDuff: Howerver, have a look at smart_add's action parameter.19:39
=== Hydrogen is now known as __hy_dr_og_en__
nevansI'm getting an error with the new bzr unshelve: ERROR: No such file: None19:41
rockyjelmer: hey ... the tag issue with bzr-svn has now shown up on another repo for me ... the issue we discussed yesterday ... is there anyway i can help with it?19:43
rockyat some point i intend on coming intimately familiar with the bzr-svn code... but atm i'm just too busy19:43
Jc2kjelmer: ping19:52
=== __hy_dr_og_en__ is now known as Wasserstoff
abentleynevans: What do you get if you run unshelve -Derror?19:56
nevansabentley: I get the same stacktrace as is here: https://bugs.launchpad.net/bzr/+bug/30909720:02
ubottuLaunchpad bug 309097 in bzr "bzr unshelve fails with "No such file: None"" [Undecided,New]20:02
=== Wasserstoff is now known as Hydrogen
jelmerJc2k, pong20:17
jelmerrocky, Not aware of what's causing it yet, I probably just need to spend some more time investigating it20:20
jelmerhmm20:40
jelmerbzr: ERROR: Transport error: [Errno 40] Too many levels of symbolic links: u'/home/jelmer/bzr/bzr-git/dulwich/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/20:40
jelmergit/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.bzr/branch-format' [Errno 40] Too many levels of symbolic links: u'/home/jelmer/bzr/bzr-git/dulwich/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.20:40
jelmerplugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.plugins/git/.bzr/branch-format'20:40
Jc2kjelmer: lol :)20:44
nDuffIs there a better way than setting os.environ['BZR_EMAIL'] for bzrlib applications to change the active user ID?20:45
Torneis it expected that doing bzr co on a remote svn branch with 19000 revisions will make my bzr eat all my ram and fall over after a couple hours? :)20:57
Tornei've never used bzr-svn before adn this  might have been a rather ambitious choice20:57
jelmerTorne, larger repositories have been handled with bzr-svn20:59
jelmerTorne, older versions may use memory a bit more aggressively though21:00
Tornehm21:00
* nDuff sets the username via the BranchConfig, which seems to be a better fit.21:00
Torneit's not particularly up to date, now that i check21:00
Tornebzr 1.5 and bzr-svn 0.4.1021:01
jelmernDuff, if you do a commit in bzrlib you can specify the committer21:03
mwhudsonjelmer: ;)21:04
nDuffjelmer, ahh -- sorry 'bout that. I'll make a note to check the generated API docs (rather than the Integrating with Bazaar page) before asking about things here.21:04
nDuff...actually, the API docs don't make that very clear either.21:05
jelmernDuff, no need to be sorry, I don't think it's very easy to find atm21:05
nDuff(at least, not http://starship.python.net/crew/mwh/bzrlibapi/bzrlib.mutabletree.MutableTree.html#commit)21:05
nDuffis there somewhere else I should be looking?21:06
=== doko__ is now known as doko
* nDuff finds bzrlib.commit.Commit, and understands a little more.21:12
nevansabentley: I was able to (easily) repro the unshelve bug on a new branch (details in LP bug)21:16
abentleynevans: Cool, thanks.21:16
nevansBTW: I wonder, why not store the shelf as just "plain old" revisions on an anonymous branch in the repo?  then unshelve could be as simple as merging that revision (and revert --forget-merges, because the shelf "branch" is irrelevant).21:21
nevansnot that I really know what I'm talking about.  ;)21:21
fullermdI was thinking that way in my mental meanderings back before the new shelf was written.21:27
fullermdIt has other neat side-effects too, like that you can conceptually throw the shelved bits around between branches easily, even send merge directives of them.21:27
nevansyep.21:28
fullermdI think it would require doing rather more work than shelve currently does, though.21:29
nevansfullermd: well, that would probably answer my "why not...?", then.  :)21:29
fullermdSorta a long way about; shelve a change, make a snapshot based on that change, then later use that snapshot to re-create the change.21:30
dman13is there a good way to convert a simple bzr repo to an svn repo?  no branches and merges, just a history of changes21:32
awilkinsYou just have to push it in21:32
awilkinsIt even works well with barnches a21:32
awilkinsbranches and tags21:32
dman13I tried, but it complains that I need to merge first.  Then the merge fails due to no common ancestry21:33
awilkinsThere's a particular syntax, I've got a script doing it (converting a large archive of old crap into a neat version history)21:34
dman13am I doing something wrong, or do I just need a newer version?  (bzr 1.3, bzr-svn 0.4.9)21:34
awilkinsThe boss wants it SVN but bzr is so much quicker I can test and iterate v.fast21:34
awilkinsAnd then push to SVN when done21:34
dman13:)21:34
dman13that's basically what I need to do21:34
dman13I started with bzr, and now have the svn repo on the central server21:35
awilkinsI'm using bzr 1.9 and the tip of the 0.4 branch of bzr-svn built against the svn 1.5 libs21:35
awilkinsI'm just pushing to a local file:/// repo ; I can copy it to the server later21:35
dman13I was using a file:// repo to test the results before I do anything to the server21:36
dman13what are the necessary parameters?21:36
awilkinsyou want `bzr svn-push -d <source_branch> $baseurl/$projectname/branches/$branchname21:38
awilkins("branches" has to exist)21:38
awilkinsI have an empty folder layout for my initial revision which I import into the repo21:40
dman13yeah, I still get bzr: ERROR: These branches have diverged. Use the merge command to reconcile them.21:40
dman13trying bzr merge results in:  bzr: ERROR: Branches have no common ancestor, and no merge base revision was specified.21:41
kiorkymerge then force commit21:41
kiorkythen repull21:41
kiorkyit must be ok21:41
awilkinsYou might need a newer build...21:41
awilkinsjelmer ?21:41
LarstiQehm, I'd try looking at what the branches involved actually are21:41
kiorkyi dont remember the force switch, see with bzr help21:41
dman13the one branch/repo was created with bzr; it has contents and history21:42
dman13the other repo is a newly created svn repo21:42
dman13there is no common ancestor ... but that's okay because the svn repo is empty;  I just want to push the history from bzr to svn21:43
dman13I'll try to get the latest bzr + bzr-svn installed to try it21:44
jelmerdman13, you're trying to push to the repository root?21:49
dman13jelmer: I created trunk/ branches/ and tags/ in the root of the svn repo21:50
dman13jelmer: I was trying to push to trunk/21:50
jelmerdman13, so it's correct it's giving that error21:50
jelmerdman13, since /trunk already has history, and that history diverges from the branch you're trying to push21:51
dman13okay, now I understand.  That's what the manual meant about automatically creating directories.21:53
dman13now it worked, I just don't have branches/ and tags/  but that isn't so important  (they can just be created in a later revision)21:54
dman13there's no way to not lose the original timestamps, is there?21:54
jelmerdman13, there is, see the bzr-svn FAQ21:56
dman13that requires server-side access to reconfigure the svn repo, doesn't it?21:58
jelmeryes21:59
jelmerbut there's no other way to override the timestamp with svn21:59
dman13that's what I figured.21:59
dman13and, IMO, that part of the purpose of the repository:  to maintain that information without allowing tampering21:59
dman13thank you for explaining what I was doing wrong!22:00
awilkinsWhy did bzr not do what git does and hash the revision as a revid? What's the history of the design there?22:17
awilkinsI quite like the property of git that two identical revisions independantly comitted ARE the same revision22:17
awilkins(is that actually true? I'm just rolling dieas around my head?)22:18
awilkinsAnother thought - would file-id that was an SHA hash of the original file help prevent content conflicts?22:18
fullermdWell, yes, but, independently committing two identical revisions is for all practical purposes impossible   :p22:19
awilkinsHmm, I suppose if you hash the timestamp that's true22:19
fullermdAIUI one implementational reason is that we need the revision id before we have all the pieces to calculate a hash.22:19
fullermdIt hashes everything.  The timestamp, committer, log message, etc.22:19
awilkinsAnd the revid?22:19
awilkinsSo bazaars revision hashes include the revid?22:19
fullermdI don't know.22:20
spivWhich revision hashes?22:20
fullermdI think I heard that one place the revid id used is in storing the file texts...22:20
awilkinsI dunno, I heard it had hashes22:20
spivOh, right.  Yes, it does, in the revision metadata.22:20
* awilkins needs to regrok the internal design a bit more22:20
spivAs an integrity check, basically.22:21
awilkinsYes, not the primary key like git22:21
spivSee e.g. "bzr testament"22:21
awilkinsHow about the identical-files-have-identical-fileid thing?22:23
awilkinsIf you say, added the same file in two branches at the same path, that would be a content conflict22:23
awilkinsBut if they were identical I'd say that was pretty much a non-conflict22:23
spivYou can do "bzr add --file-ids-from ../other-branch"22:23
awilkinsWhee, so you can22:24
fullermdAnd then there's the occasionally-brought-up path-tokens idea...22:24
spivThere are some plans to allow file-ids to converge (and diverge, for when you split a file in two).22:24
awilkinsMy idea would Just Work (tm) though, as long as the files where identical on addition22:24
spiv(What fullermd just said)22:24
spivWhich isn22:25
spiv't always true, and would give false positives.22:25
awilkinsYes, the split-converge idea would bring better feature parity with SVN22:25
awilkinsWhat, if the fileid was a SHA hash of the initial file state, two identical files would always have the same fileid22:26
spivAs a trivial example, Python packages often have __init__.py files that often start their history as empty files.22:26
awilkinsAh22:26
awilkinsEmptiness22:26
awilkinsHash of the content plus path?22:26
spivJust because the content is the same doesn't imply that the files have the same identity to the user across history.22:26
awilkinsAlso a good point :-)22:27
garyvdmHi spiv. I got batched loading of revisions in qlog working. On a 1.9 repo - it's about 50% quicker :-). But on a 1.6 repo - it slower :-(22:27
spivAnd ditto for having the same initial content and path in two different branches -- branches that you may later join.22:27
spivgaryvdm: huh!22:28
spivgaryvdm: slower total, or just slower to start returning results?22:28
garyvdmspiv: Slower total.22:28
spivgaryvdm: are the repositories you're comparing packed to a similar degrees (i.e. how many files in .bzr/repository/packs)?22:28
spiv1.9 does have a much better index format.22:29
spivBut I'm surprised that doing things that way would make 1.6 worse.22:29
garyvdmI think so. They were both recently branch bzr.dev's22:30
garyvdmI write a test that just does revision loading to test it more accuratly22:30
spivawilkins: it would be great if bzr did notice that two files with different IDs were conflicting at the same path, and made it easy for you know that and to resolve that.22:31
davidstraussWhere can I read about adding unit tests to my patch?22:33
davidstraussI have no idea what system bzr uses.22:33
spivawilkins: I mean, bzr is recording strictly more information than git, so it could in principle use the same heuristics as git.  Or we can try to do better, because we have more data :)22:33
spivdavidstrauss: http://doc.bazaar-vcs.org/latest/en/developer-guide/HACKING.html http://doc.bazaar-vcs.org/latest/developers/testing.html22:33
davidstraussspiv: thanks22:33
fullermdOf course, the alternate perspective on that is that git relies on the heuristics, so the devs have incentive to make them work well.22:34
spivdavidstrauss: it's basically using the Python standard library's unittest module, but with lots of little extensions (which is after all what xUnit is designed to allow).22:34
davidstraussspiv: makes sense22:35
spivfullermd: right.22:35
fullermdThis leads into my theory that, in any project, you should carefully decide what the most important part is, and then never write any code to do it.22:35
spivfullermd: I'm less convinced by that bit :P22:35
davidstraussIs it possible to change the merge algorithm when updating a checkout?22:35
fullermdPfft.  It's a great labor-saving device.  Makes project management a lot less contentious.22:36
fullermdMore seriously, though, you can see side effects of its corrolaries in bzr.22:36
fullermdWho else has even a shadow of our capability in supporting dumb servers?  arch, maybe?  I don't think anybody else.22:37
spivdavidstrauss: "bzr help update" says yes :)22:37
davidstraussCobalt-2:~ straussd$ bzr help update22:37
davidstraussPurpose: Update a tree to have the latest code committed to its branch.22:37
davidstraussUsage:   bzr update [DIR]22:37
davidstraussOptions:22:37
davidstrauss  -v, --verbose  Display more information.22:37
davidstrauss  -q, --quiet    Only display errors and warnings.22:37
davidstrauss  -h, --help     Show help message.22:37
davidstraussspiv: where?22:38
fullermdbzr blows everybody away in dealing with crappy network models.  As a [not technically, but socially] necessary result, our network handling is crappier than everyone else.22:38
spivdavidstrauss: oh, what version of bzr?22:38
davidstraussspiv: 1.1022:38
* fullermd peers at spiv.22:38
spivOh, look at that, the loom plugin...22:38
fullermdEven bzr.dev doesn't have any --merge-type there.  Pls send bundles back from your future-bzr   8-}22:38
spivIt turns out that "bzr up" is a totally different command if you have bzr-loom installed.22:39
spivHmm.22:39
spivdavidstrauss: sorry for the confusion!22:39
davidstraussWhat does bzr-loom do to bzr update?22:39
spivNothing, it adds an "up-thread" command.22:39
spivAnd I typed "bzr help up"22:39
spivAnd didn't read the result closely enough!22:40
spivI just saw the "--merge-type=ARG" option and ran off to IRC with false information...22:40
fullermdOh well.  Who believes anything on IRC anyway?22:41
fullermdIt's not authoritative until it's on Wikipedia...22:41
spivdavidstrauss: it seems like a reasonable feature to add.  You *might* be able to use "bzr remerge" on a conflicted file from and update, though.  I'm not sure.22:41
spivdav22:41
davidstraussspiv: but you can't safely merge when you have uncommitted changes22:42
fullermdI would be a little surprised, I think...22:42
davidstraussBTW, bzr is working pretty well for the Drupal code sprint.22:42
spivdavidstrauss: well, "bzr remerge" is designed to let you redo a part of an uncommitted merge with a different merge algorithm.22:42
davidstraussspiv: does remerge work when you get conflicts from an update?22:43
fullermdNow, if conflicts were coming about because of local commits, you've got a back door.  But we already had the --local mock-fest  :)22:43
davidstraussfullermd: by my decree, we're not using local commits.22:43
spivdavidstrauss: But I'm not sure if that works for checkout conflicts too.  Try it, it'll either work or just give an error. :)22:43
spivfullermd: I actually think --local is a nice idea, despite all the bugs :(22:44
fullermdMy guy would say that it wouldn't work.22:44
spivfullermd: yeah, that's my guess too.  But it's worth checking.22:44
fullermdOh, I do too, in a way.  I think it's a really handy crowbar to have around.  I just don't think it's a suitable day to day tool.22:44
spivdavidstrauss: cool, glad to hear it.22:44
fullermd(even bug-free)22:45
fmcould someone look at http://pastebin.ca/128811322:45
spivdavidstrauss: does drupal use bzr?22:45
spivfm: looks like a URL ;)22:45
davidstraussspiv: not yet22:45
fmwhich editor is called when doing a bzr ci without -m?22:45
davidstraussfm: your EDITOR environmental variable22:46
spivfm: $EDITOR, unless $BZR_EDITOR is set.22:46
fullermd$BZR_EDITOR or the config'd editor or $VISUAL or $EDITOR or random-guesses.22:46
davidstraussfullermd: random guesses?22:46
fullermddavidstrauss:         for editor in ['/usr/bin/editor', 'vi', 'pico', 'nano', 'joe']:22:47
fullermd(or another list on win32)22:47
davidstraussfullermd: joe?22:47
fmspiv davidstrauss fullermd thanks sadly none of these are there on opensuse 11.122:47
fullermdIt's sorta a pico-ish emacs, from what I recall.22:47
* fullermd peers at fm.22:47
fullermd*vi* isn't there??22:47
mlhmaybe it's vim22:48
mlh(one to add to the list?)22:48
fm /usr/bin/vi -> /bin/vim22:48
mlhso vi is there22:48
fullermd(mind, I always just Assume(tm) that any *nix user has $EDITOR set.  Maybe I'm a little atavistic that way.)22:49
fmok so vi is there in fact but nevertheles "bzr: ERROR: [Errno 13]" is what i am getting without a -m22:49
fmi am using bzr 1.1022:49
spivfm: weird.22:49
awilkinsfullermd: I think only CVS and Visual SourceSafe like dumb servers as much as Bazaa22:50
spivfm: do you have a /usr/bin/editor ?22:50
fmfullermd: which source file are you quoting?22:50
spivAnd is it executable?22:50
awilkinsOf course, VSS fucks it up. Badly.22:50
* fullermd frowns.22:50
fmspiv: no i do not have that22:50
fullermdErrno 13 is EACCESS22:50
spivfullermd: yeah, I just figured that out too.  (At least on x86 linux...)22:51
mlhah I thought my German wasn't that bad :-)22:51
fullermdIt catches ENOENT, but not EACCES.  What could that be failing on?  Bad perms on the temp file maybe?  Kinda odd.22:51
spivfullermd: or trying to run a file without the 'x' bit set.22:51
mlhit's not unknown for /tmp to go restricted perms due to some sysadmin error22:51
fmfullermd: spiv the only way i found the error was reading the trace in .bzr.log nobody thinks about missing editor when getting perm denied. I thought my repo had a wrong permission22:52
mlhlike untaring in /tmp22:52
fullermdCould be.  Sounds like an odd thing to come across.  We should catch it along with ENOENT, though.22:52
fullermdfm: See bzrlib/msgeditor.py; _run_editor()22:52
spivfm: I'm pretty sure that error is due to one of the editors bzr is trying to run not actually being executable.22:52
spivfm: we should fix bzr to catch this error22:52
mlhIt'd be could to actually spit out the args to subprocess in the exception too22:53
spivmlh: yeah22:53
mlhone of my pet hates with exceptions in python and java22:53
fmi am known at suse for bzr bugreports ;)22:53
kfogelvila: regarding bug #211852: it isn't clear from your comment whether that means you're working on it or not, but... I can hope, right? :-)22:53
ubottuLaunchpad bug 211852 in bzr "bzr log should accept multiple files" [Wishlist,Triaged] https://launchpad.net/bugs/21185222:53
spivfm: but to solve your immediate issue, let's find which editor executable on your system isn't executable :)22:54
fullermdEasier, to solve the immediate issue, just set $EDITOR22:54
spivfm: so "echo $BZR_EDITOR $VISUAL $EDITOR" is empty?22:54
fmspiv: yes it is22:55
fmspiv: i have vi and nano installed and both are executable22:57
spivfm: hmm, and you don't have an "editor = something" line in ~/.bazaar/bazaar.conf ?22:57
fullermdAnd /usr/bin/editor?22:58
fmeditor = ""22:58
spivAh :)22:58
* fullermd blinks.22:58
fullermdWow.22:58
fmis in my ~/.bazaar/bazaar.conf thanks alot22:58
spivOk, EACCESS isn't quite what I would expect from that situation.22:58
fmhow did it get there?22:58
spivBut that isn't totally surprising either.22:58
spivI have no idea!22:58
dman13spiv: sure, if you use os.system() ... the empty "command" means the shell treats the first argument as the executable22:59
dman13(I don't know which underlying system call bzr is using for that)22:59
fullermdSounds like another thing we should specifically trap...23:00
spivdman13: bzr uses subprocess.call to run the editor.  But I wouldn't expect the system give EACCESS rather than ENOENT.23:01
fullermdspiv: See, proves my earlier point!  Writing log messages is important, and if nobody had written any code to do it, we wouldn't be having this problem   ;p23:01
fmjust printing a message your editor ("") cannot be run would be good for me23:01
spivfm: right.23:01
dman13spiv: some forms of subprocess parse a string to find the executable ... right?23:01
spivfm: AFAICT, nothing in bzrlib will set the editor option in your config file automatically.23:02
spivfm: so whatever set it wasn't bzr itself.  (Possibly a confused user, possibly an insane plugin?  I really have no idea what might do that!)23:03
spivdman13: right -- hence why I'd expect ENOENT rather than EACCESS.  :)23:03
spivdman13: but what I expect has very little to do with what happens :)23:03
fmi have no idea how it got there i have been playing with bzr for some time 0.6 or something, maybe it did back then. I did not even know this file exists so i am pretty sure i haven't it inserted there myself ...23:03
dman13spiv: unless you told/let subprocess pass the string to a shell23:03
spivYeah, it's possible that older versions of bzr might have done something silly.23:04
dman13spiv: it doesn't prevent using the risky forms of execution23:04
fmthanks alot23:04
spivdman13: no, we pass an argv not a shell command.23:05
dman13spiv: okay, then I agree with your expectations.23:05
spivdman13: strace shows the EACCES comes from the execve in the child process23:06
dman13spiv: interesting.23:07
dman13spiv: now I wonder if it is possible to create a file with the empty string as its name ...23:08
dman13no, that yields Errno 2: no such file or directory23:09
dman13:)23:09
spivRight, ENOENT, as expected ;)23:09
mlh~but ...23:11
mlhis "" interpreted sometimes as current dir?23:12
mlh./. gives EPERM though23:12
mlhoh here we go23:14
mlhstrace ./"" ...23:14
mlhexecve("./", ["./"], [/* 27 vars */])   = -1 EACCES (Permission denied)23:14
fullermdThat's trying to exec a directory.  Seems an odd way to react to an empty string thouhg.23:14
spivHmm, treating "" as meaning the cwd would explain EACCES.23:15
jmlpoolie1: hi23:51
jmlpoolie1: what did you guys end up deciding re upgrading the bzr.dev branch's format?23:52
spivjml: poolie1 isn't around today/tomorrow23:53
spivjml: (except for beer)23:53
Peng_Upgrade it to 1.9-rich-root! :D23:54
jmlspiv: ahh thanks.23:54
jmlspiv: perhaps you can answer my question?23:54
spivI don't remember any decision being made.23:54
AfCPeng_: :)23:55
spivMy guess is it's probably fine to upgrade it to 1.6, but if we do we should keep a pack-0.92 mirror for a while for e.g. hardy users.23:55
spivfm: I submitted a patch to improve the error handling in your situation: http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C20081217235314.GA24352%40steerpike.home.puzzling.org%3E23:56
jmlspiv: ok. I'll chase it up with poolie next year then.23:56
Peng_A 1.9 mirror would be nice too.23:56
jmlyeah.23:57
spivjml: I'd be ok with a checkbox in Launchpad for "please upgrade the format for this mirror" ;)23:57
Peng_That would be neat.23:57
jmlspiv: you mean "mirror this branch, but in 1.9 instead of whatever it is"?23:58
spivjml: right.23:58
jmlspiv: that'd be kind of cool.23:58
spivjml: (or the appropriate 1.9 variant for rich-root/subtree :/ )23:58
jmlspiv: atm, we have quite hardcore restrictions on mirroring branch's that have the same URL23:58
Peng_How useful would it be? Why not just upgrade the source branch?23:59
jmland, when you guys start hosting your code on Launchpad, it'll be even trickier since we don't let you mirror branches from Launchpad onto Launchpad.23:59
spivRight, but why does that matter (I'm not thinking that Launchpad should mirror one URL in both original *and* latest formats!)?23:59
jmlspiv: ummm, I thought you were.23:59

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