/srv/irclogs.ubuntu.com/2010/04/29/#bzr.txt

bendjTresEquis: sure. or @ http:// or webdav, etc.  hrm.  with a little juggling, i *could* live with one-way only ... still not ideal for the long term. but ...00:00
* TresEquis is running live mirrors of the repoze SVN repository to each of bzr, git, and hg00:01
TresEquismostly to say STFU to folks who want us to commit to *their* DVCS choice00:01
bendjTresEquis: I was hoping to say STFU to projects that want me to commit to crowbarring MY workflow to fit THEIR rcs choice ;-)00:04
TresEquissure00:04
TresEquisSVN doesn't suck too badly as the "centralized" repo00:04
TresEquisand if everybody else can do branches, etc. using their tool of choice, then that makes SVN an "implementation detail"00:05
bendjsneaker-net with Hollerith field punched cards was, at times, easier .... sigh.00:05
TresEquisonly those who can commit to the central repo need to care about00:05
lifelessmwhudson: https://code.launchpad.net/~mwhudson/launchpad/code-import-workers-copy-too-much/+merge/2428200:06
lifelessmwhudson: did you see my note?00:06
mwhudsonlifeless: yes, i meant to ask you about that00:07
mwhudsonlifeless: i don't understand how it's "wrong", i can see it might be less than perfect00:07
lifelesstheres nothing that says the control dir is .bzr00:07
mwhudsonoh come on00:07
lifelesswe've tried pretty hard to make it possible for loom or things like that to use different dirs00:08
lifelessits a shame to bypass that00:08
lifelessanyhow00:08
lifelessif you want to use .bzr + clone, do so - but using .transport will be shorter and easier to read IMO00:08
lifelessI guess for lp which enforces .bzr as the control dir name there are less degrees of freedom, at least at the moment.00:09
bendjxnox: TresEquis k. so to be clear -- as long as i'm only branching, with NO re-commit back to upstream, despite NOT support svn:{externals,ignores}, mmy bzr-svn branch/co *of* (from?) the central svn repo will be locally complete, with all the externals, etc pulled in. correct?00:09
bendj AND, I can hack to my heart's delight, then 'bzr merge' to repull upstream changes later?00:09
mwhudsonlifeless: it seemed more symmetric to me to clone on both transports00:11
xnoxbendj, well bzr treats imported svn revisions as regular bzr commits. So yes you can do anything with your branch. As long as you do not rewrite history you will be able to merge from svn.00:11
lifelessmwhudson: if I was writing it I would use relpath and the transport itself, I think.00:11
mwhudsonif the control dir was called something other than .bzr i should be doing something else, like comparing .transport and .root_transport00:11
xnoxbendj, so commit .bzrignore and use join to get the externals. And got wild =)00:12
xnoxbendj, just don't use rewrite plugin and don't uncommit svn revisions00:12
lifelessmwhudson: perhaps a :XXX that it won't handle non .bzr control dirs [contrasting with cloning or a complete copy]00:12
xnoxand don't merge partial revisions e.g. merge -r-20..-1900:12
lifelessmwhudson: and use the code you wrote00:13
mwhudsonlifeless: i can agree to that, certainly00:13
bendjxnox i clearly misunderstood the need -- some, anyway -- for maintaing the externals/ignores for one-way-only checkout/branch.  still, the need's fully there for re-commit. just ping-ed the "power that be" for input.  pending ...00:14
bendjxnox: does your 'method', by any chance, exist anywhere in print?  on the wiki, perhaps?00:14
xnoxbendj, well I can blog it now to planet =)00:15
lifelessmwhudson: I don't suggest these things just to make your life hard :P00:16
lifelessmwhudson: its a corollary to not using the standard bzr glue to do things00:16
mwhudsonindeed00:16
bendjxnox: Would be useful if 'immortalized' ... btw, WHICH Planet?00:16
xnoxUbuntu Planet =)00:16
mwhudsondoing the right (well, more right) thing doesn't seem to hard actually00:16
bendjxnox: thx. (rss to the rescue ...)00:17
mwhudsonlifeless: is this the sort of thing you meant? http://pastebin.ubuntu.com/424287/00:17
lifelessmwhudson: that would make me maximally happy, if you're able to use it00:18
lifelessmwhudson: you can make it a little more compact if you like: (sec, typing)00:18
mwhudsonlifeless: it passes my tests, so yeah i'm happy to use that00:19
lifelesshttp://pastebin.ubuntu.com/424288/00:20
lifelessmwhudson: the mkdir and ensure_base were redundant, so I folded together00:20
mwhudsonlifeless: well, not quite, because ensure_base will only create '.'00:23
mwhudsonbut a create_prefix is cleaner anyway00:24
lifelessmwhudson: oh, doh :)00:24
xnoxbendj, published01:19
xnoxbendj, http://tinyurl.com/bzr-join01:19
bendjxnox: Thanks -- just caught it on the feed :-)01:39
xnoxbendj, does it look ok ?01:39
xnoxi mean formatting01:40
bendjxnox: yup.  formatted nicely on this end01:41
bendjbrb ...01:43
bendjping xnox02:39
xnoxbendj, pong02:39
bendjxnox: just fyi, http://github.com/andrep/git-svn-clone-externals.  adaptable, perhaps ..02:40
xnoxyeah i guess but =)02:41
bendjaha, the 'yahbut' ...02:41
xnoxwhat's the point =)03:03
xnoxi like my way cause I know I'm on single branch, i can share it with people and work together03:03
xnoxand my joined branch doesn't require any other commands / plugins03:03
bendjxnox  Sure.  Different strokes ... adminttedly, I'm looking at a scripted solution for projects with large #'s of svn:externals ...03:06
bendjagh! admittedly03:06
xnoxbendj, I know a tool like that =)03:07
xnoxit starts with "s" and ends with "n"03:07
bendjcomment += $comment . ' ... and that pulls it all into a local DVCS.'03:08
xnox=)03:26
bendjThis page (http://doc.bazaar.canonical.com/bzr.2.0/en/user-guide/svn_plugin.html) references "rich-root", as in: 'bzr init-repo --default-rich-root'.  manpage fails to mention "--default-rich-root" as a specific option, and states for "--default" that "Provides rich roots which are a one-way transition.".03:40
bendjAnd, of course, search in docs (http://doc.bazaar.canonical.com/bzr.dev/en/search.html) on 'rich-root' comes back empty.03:40
bendjW.   T.    F.  ?!03:40
bendjwhere is this documented?  Buehler?  Buehler?03:40
idnarI think the docs are a bit out of sync03:41
idnarthe new default format in bzr 2.0 is the 2a format, which is a "rich root" format03:41
idnarso there's no (longer) --default-rich-root, because --default is already rich root03:41
idnarI'd say svn_plugin.html should be changed, I'd suggest filing a bug report03:42
bendjidnar: Ugh.  Ok, b4 I do, I'm gonna try to 'sed' the commentary at https://answers.launchpad.net/bzr/+question/71563#6 "... The reason appears to be that bzr doesn't set a unique root ID for a branch unless it was *created* as a rich-root branch.  ...", to see if it stil holds.03:44
bendjidnar: Thanks.  I think.03:44
bendjAlthough, I think I've bumped squarely into the lack of nested-tree support.  again.  But by another path ...03:45
idnarspiv: (moving from #launchpad) I guess that would help, but I wouldn't want to define a prefix for each and every one of my projects05:06
spivI can't find the plugin I was thinking of, but bzr-bookmarks is perhaps close enough.05:07
idnarmaybe what I really need is a browser plugin so I can click a button when I'm viewing a merge proposal, and have it grab the corresponding branch05:07
idnarthat's not the only time I branch a new remote branch, but it's probably the most common05:08
* idnar looks at bzr-bookmarks05:08
spivI *think* actually that bzr-bookmarks will look at locations.conf, but perhaps only if you already have a branch.  Hmm.05:09
thumperidnar: make something that hooks into the scheme provider05:09
thumperidnar: so if you click on lp:some-branch it fires up an app to get it :)05:09
_habnabitIf I did a bzr checkout by accident instead of a bzr branch from a launchpad branch, is there an easy way to switch?07:27
_habnabitI have uncommitted changes that I don't want to implicitly push.07:27
spiv_habnabit: bzr reconfigure --standalone07:27
spivOh, oops, wrong option07:27
_habnabit--branch ?07:28
spivbzr reconfigure --tree07:28
_habnabitAha.07:28
_habnabitThanks!07:28
spiv(Or 'bzr unbind')07:28
_habnabitThat did it.07:28
_habnabitOh nice, that looks like exactly what I want.07:28
vilahi all !07:50
vilaspiv: Can we talk briefly about https://code.edge.launchpad.net/~vila/bzr/401599-strict-warnings/+merge/23932 ?07:52
vilaspiv: I've got the feeling you're searching for a test modification that has been done in a previous submission where the behaviour changed, this one was about the displayed message which was misleading07:54
spivvila: well, I've checked what trunk without that does, and what that patch changes.07:54
vilaspiv: we were still saying 'use --no-strict to force the push' even if the push was already occurring07:54
spivvila: what other submissions should I know about?  I didn't notice any mention of them in that proposal.07:55
vilaspiv: did you see a behaviour change ?07:55
spivI did, and I agree with it.  But I don't see a test for the behaviour change.07:56
spiv(To be precise: a behaviour change in your proposal relative to what was in trunk)07:56
vilahuh ? Which one ?07:56
spivEr, the bits of the patch that touch files other than NEWS and bzrlib/tests/*07:57
vilaspiv: the previous submission is revno 5151 in trunk07:57
spivi.e. the behaviour change described in the NEWS entry.07:58
spivI'm rather confused.07:58
vilaspiv: well, the other files only modified the displayed message, not if we push or not07:58
spivThe display of a message *is* behaviour.07:59
vilahaaa, that's were we were misundestanding each other :)07:59
=== knitt1 is now known as knittl
vilaok, I made a distinction between whether we were pushing or not (or dpushing or sending) and what message we displayed08:00
vilabefore the last submission the tests weren't checking the message, I changed that and that only08:00
spivBut the tests still don't test that no warning is displayed in cases where we expect no warning: i.e. tests that would have caught the original spurious warnings.08:01
vilaspiv: they do now08:01
spivNo, they test something much weaker.08:01
vilamore focused, not weaker08:02
vilafor example: push displays 'Created new branch'08:02
spivOn stderr?08:02
vilaif we change it to 'Created new branch up to revno nn' the test doesn't have to be impacted because we already check that we push the right revision08:03
vilayes on stderr08:03
vilaI mentioned that in my previous answer (but you didn't cite this part)08:03
spivNot deliberately, I just missed that bit :)08:03
vilano worries08:03
vilathe truth is, after your review, I tried to build the full stderr content and this was... dirty08:04
vilaAs I said I'm not a big fan of assertContainsRe since it weakens some tests, but here.... I found the balance was in favour of it08:05
spivSo, the test for "doesn't contain this regex" is weak, in the sense of being fragile.08:05
vilakind of,08:06
spiv(Even though it is focused on the specific messages we care about)08:06
vilait's also robust about spurious changes in the part it didn't care08:06
spivBecause it will easily pass incorrectly with minor wording changes.08:06
spivSo the risk of incorrect failures is low, but the risk of incorrect successes is high.08:07
vilaIf the changes are in unrelated messages, the test shouldn't have to care08:07
pooliehi vila08:07
spivIt would be nice if run_bzr could give us a list of warnings emitted to the user, or even just a list of messages.08:07
vilahey poolie !08:07
pooliespiv, that would be nice08:08
spivRather than a single lump of bytes that got written to stderr.08:08
vilaspiv: pfew, yeah08:08
pooliethere is code to capture them, of course08:08
pooliebut not on by default there08:08
pooliemore standardization needed08:08
spivBut, we may be able to cheat that by splitting stderr by lines?08:08
vilapoolie: that needs to be factored out for trace.warning :-) I think I know about at least 3 or 4 call sites now08:08
spivBecause in many cases there's a one-to-one correspondence between a line and a message/warning.08:08
poolievila, how about a brief call?08:09
spivvila: So, I feel these tests of cmd_push ought to be able to account for every line of output08:10
vilaspiv: my position is that, on principle I agree with you about the strict checking of stderr, but in this specific case I made an exception because: 1) I see little to be gained, 2) the resulting code was awful (I revert to the simpler version I landed when I saw that)08:10
vilapoolie: just a sec08:11
spivvila: perhaps pass a regex list to add to a default list that expects to see the "N new revisions" or whatever.08:11
spiv(using "line" as proxy for "message or warning", which perhaps is overly optimistic)08:11
vilaspiv: yeah I thought about that too, but it's all the same in the end, if we check regexps there will still be holes and adding unrelated messages there is just asking for trouble: when they change the tests will fail for the wrong reason08:12
spivI agree the benefit for cmd_push is low, but ideally we'd find a way to do this that we can reuse in other places.08:12
spivCapturing the warnings emitted more directly might be better than asserting about the exact bytes on stderr, I can see arguments either way.08:13
spiv(It's kind of a shame we only get 2 channels to emit messages on!)08:13
vilaand to be honest, using blackbox tests there feels wrong, but it's often the case when trying to observe the behavior of command lines options that are handled in command.run()08:13
spivBut, if there's one thing I'd like you to take away from this review:08:14
vilatest should fail first ? :)08:14
spivIt's don't claim that what is shown in the UI is not behaviour ;)08:14
vilahmm08:15
bialixheya bzr!08:15
bialix_o/ vila08:15
vilaspiv: I'll think about it08:15
vilahey bialix08:15
vilapoolie: calling08:15
pooliehi bialix08:16
spivvila: I can argue about in some detail, but perhaps the main justification for me saying that is "it'll confuse people" :)08:16
bialixhi poolie  :-)08:16
vilaspiv: I agree, it's just my poor english08:16
spivvila: and that english is poor!08:16
bialixvila: http://ostatic.com/blog/more-bad-english-please08:17
bialixI've fwd this article to ru_bzr people and suggest to not shy filing more bug reports08:17
* bialix is working as english proxy sometimes08:18
lifelessspiv: small request - start setting commit messages (e.g. on08:18
lifelesshttps://code.edge.launchpad.net/~gagern/bzr/bug387117/+merge/23750)08:18
spivlifeless: it's a bit grating at the moment that feed-pqm-by-email and feed-pqm-by-lp-queue-magic expect different formats for the commit messages, AIUI.08:20
idnar:)08:21
idnarer, wrong window08:21
spivSo that discourages me from setting it unless I'm about to submit it myself.08:21
spivThinking of which, if PQM is reading directly from LP, perhaps it should just set the author revprop rather than putting it in the commit message.08:23
lifelessspiv: feed by lp queue seems very reliable to me know, I've been tracking it this week and no exceptions in th elogs according to spm08:23
lifelesss/know/now/08:23
lifelessspiv: I don't think setting author is appropriate08:23
lifelesspqm is merging, the history knowledge of who introduced lines is in the history08:24
spivThen why are we putting the name in the commit message?08:24
lifelessspiv: I'm not sure. I know why we put the queuer there, but the author never really made sense to me.08:25
spivI thought it was because we wanted to credit the author for people viewing the mainline, but PQM didn't give us control of any fields other than the message.08:25
lifelessI got asked to do it/followed what Martin was doing or whatever some years ago08:25
lifelessspiv: pqm has always been modifiable08:26
lifelessspiv: I object to mangling metadata incorrectly to solve reporting problems; we should just report better.08:26
spivSure, but lack of tuits involved in improving PQM, getting it deployed, tested, and upgrading the pqm-submit plugin devs were using to use it meant that never happened because the workaround was bearable.08:27
lifelessspiv: I'd be happy to drop the trailing (author)08:27
lifelessif we were to set author in pqm, it should be to the queuer, IMO.08:28
lifelessbecause they are conceptually responsible for the merge08:28
spivI don't see that "author" is an incorrect name for the field.  Yes it might not be the sole work of that person, but the person responsible for proposing the patch is assumed to be the person responsible for assembling it and otherwise doing some significant work towards making it land.08:29
lifelessI've a little trouble binding things there08:29
spivI'm not particularly against thinking of a better field, I just don't know that the distinction is more important.08:29
lifelesscould you rephrase08:29
spivThe primary person we typically credit in commit messages is generally the person that proposed the patch.  The person that proposed a patch is generally the person that wrote most of it, or at least did significant work on it (e.g. backporting).  Calling people that do that "author" seems good enough for me.08:31
spivEspecially if it unclutters the commit logs :)08:31
lifelessdo you mean the person in the trailing () or the leading () ?08:31
lifelessspiv: perhaps we can talk more next week on this08:33
lifelessspiv: I'm really convinced we should be able to show the people without setting author on a merge daemon08:33
spivWell, we aren't completely consistent about how we use trailing/leading (), so the answer seems to be "trailing, or leading if trailing is absent, or 'for $name' in leading if given"08:33
spivYes, showing the people is the main thing.  The second thing is not abusing commit messages.08:34
spivAuthor is a convenient hammer for achieving those two, but I'm not wedded to it.08:34
lifelessI don't like setting author for a few reasons; we don't do it when we do merges by hand in other projects; it doesn't map well IMO to the intent; it will generally tag precisely zero lines.08:35
spivWhat do you mean by tagging lines?08:36
lifelessin annotate08:36
lifelessyou see the revisions that introduce text to the tree08:36
lifelessthe annotation view of bzr shouldn't [in general] attribute *any* lines to pqm08:36
spivSure.  I'm not too bothered by annotate.08:36
lifelessthe most grating thing to me, I think, is that the old default log avoids the question entirely; it shows *the right stuff*, and there aren't any questions about the contributors to a patch.08:37
spivI'd be happy to see lp-proposed-by and lp-landed-by revprops.08:37
lifelessspiv: proposed/landed/queued ?08:38
pooliehi lifeless08:38
lifelesshi poolie08:38
spivlifeless: sure, whatever names, just capturing the data in a sane way :)08:38
lifelessspiv: ack08:38
spivBut there's more than just log (old or new): there's qlog, there's loggerhead, there's the branch page on LP...08:39
spivAnd none of them, today, report the authors/committers of non-mainline revisions in their default view.08:40
lifelessyeah08:40
lifelessthis saddens me08:40
spivMe too.  And AfC for that matter :)08:40
spivThe existence of PQM as the committer on mainline is far from the most interesting fact about that revision.08:41
spiv*Any* of the people involved would be better, in many ways.08:42
lifelessqueuer is IMO signed-off-by in git08:42
spivRight.08:43
spivOoh, there *is* a way to see Queued proposals for a branch: https://code.edge.launchpad.net/~bzr-pqm/bzr/bzr.dev/+merges?field.status=QUEUED (empty atm)08:46
lifelesswhats maximise-window-vertically in vim, again ?08:47
spivCtrl-W _08:48
lifelessthanks08:49
=== radoe_ is now known as radoe
spivApparently there's a "Code failed to merge" state.08:58
lifelessyes08:58
lifelesscan't be used08:58
spivHeh.08:58
lifelesssee my branch, nag thumper to reply to my review08:58
AfCspiv: indeed08:59
* AfC is abashed that spiv remembers him. Aw shucks.09:00
vilapoolie: about https://code.edge.launchpad.net/~jbowtie/bzr/fix-555439/+merge/24289 is the contributor agreement in the pipe ?09:31
vilaspiv: Can we mark https://code.edge.launchpad.net/~spiv/bzr/push-relock/+merge/23767 as wip ?09:33
thumperlifeless: I'll talk to you about it tomorrow, there are things I want to discuss09:33
lifelessthumper: naturally09:37
lifelessthumper: needs to be early, I have a plane flight at 1:30, leaving 10:45 or so09:37
thumperok09:37
thumperlifeless: ping me in the morning09:37
poolievila: https://code.edge.launchpad.net/~songofacandy/bzr/fix-523746-dev/+merge/20537 was originally created on the 3rd of March10:00
poolietherefore is nearly 2 months old10:00
pooliethe overview page only shows the date a review was most recently requested10:00
poolieand i see you have been following up on that and need win32 help10:01
poolie(bialix :-)10:01
pooliefor those wondering, i'm not nagging vila, i'm just answering why the "oldest mp" graph says 2 months when there don't immediately seem to be any so old10:04
spivvila: hmm, I suppose.  Although I don't know if the next step should be "make read-locks upgradable into write-locks" or just "land this hack"10:14
lifelessI'm ni favour of the former, quite strongly.10:18
lifelessI think its only slightly more work.10:18
vilapoolie: thanks10:26
vilaspiv: at your leisure, I'm just trying to clean up the review queue10:27
sproatyI just added my work pc's SSH key to LP, did a launchpad-login but my commit didn't come through 'linked' to my username?10:46
spivsproaty: the commit linkage is based on the name+email you've set with "bzr whoami"10:49
spiv(Or the name+email bzr has guessed if you haven't explicitly set it; either way, "bzr whoami" will show you what name is being recorded in your commits)10:49
sproatyah ok I just changed those (after commiting :p)10:50
spivThere's a bug + patch for making bzr never guess the 'whoami', btw.  Sounds like that would have helped you :/10:50
sproatythanks10:52
sproatyahh I changed whoami now I get this when pushing bzr: ERROR: Cannot lock LockDir(http://bazaar.launchpad.net/~sproaty/whyteboard/development/.bzr/branch/lock): Transport operation not possible: http does not support mkdir()10:58
sproatyhttps://answers.launchpad.net/bzr/+question/24695   doing lauchpad-login and bzr bind as suggested here, problem still exists10:58
spivsproaty: what command are you trying?  "bzr push lp:~sproaty/whyteboard/development"?11:02
spivsproaty: it's trying http rather than bzr+ssh, which suggests that either you aren't using the lp: URL, or somehow the "bzr launchpad-login" hasn't taken effect.11:03
sproatythat's what I pushed to earlier (with wrong whoami) - now I'm just doing push11:03
sproatyah there we go11:03
sproatyspecifying the url directly again worked11:04
spivOk, it's probably remembered the http one.  If you do "bzr push --remember lp:~sproaty/whyteboard/development" that should solve that.11:04
sproatyare these now right? http://paste.pocoo.org/show/207461/11:04
sproatycool cool11:05
spivNo, none of the branches on launchpad should start with http:// if you have done launchpad-login11:16
=== AfC1 is now known as AfC
=== mrevell is now known as mrevell-lunch
bialixwhat's the purpose of commit object passed to generate_commit_message_template function?13:04
bialixis there any real-life examples of commit_message_template hook?13:04
bialixjelmer: I found your patch of commit_message_template hook: http://markmail.org/thread/etkxlj6osy65rhfb . can you point me on any existing hooks?13:06
jelmerbialix: bzr-builddeb has one I believe13:09
jelmerbialix: it fills in the commit message based on the contents of debian/changelog13:09
bialixthat's what I need13:09
bialixcommit object should have link to working tree, right?13:10
jelmeryeah, I think so13:10
bialixcommit.work_tree13:11
bialixoki13:11
bialixjelmer: do you know why commit_message_template hook gets the commit object as argument? why not passing just working tree there?13:16
bialixjelmer: actually you're the author of that hook13:18
bialixqann say so13:18
spivIt's a more flexible interface.13:19
spivIt allows us to add more attributes to the commit object without breaking existing hooks.13:20
bialixspiv: for example?13:20
jelmerbialix: specified_files13:20
spivIf we passed arguments like working tree directly then to add another argument then it would break the hook.13:21
bialixbut that hook launched only with work_tree argument attached to commit object!!!13:22
bialixjelmer: I don't see where specific_files attached to commit_object13:22
jelmerbialix: it's not yet attached, but it would be a good candidate13:22
jelmerbialix: and we'd like to be able to make that sort of change without breaking existing hooks13:22
jelmerso it can't really be an argument to the hook13:23
bialix:-/13:23
spivGenerally new hooks have dedicated "params" objects13:23
bialixguys, I need the way to run these hooks without calling wt.commit so I can use them in qbzr13:23
bialixtoday it seems impossible hard13:23
bialixbecause hooks called from commit object13:24
bialixand I need valid commit object to fire hooks13:24
bialixit's a kinds of recursion, it's not?13:24
spivcommit_message_template is a hook for controlling the message template to use for a commit.'13:25
bialixwhen you start to talk about flexible I'm starting to fear13:25
spivSo by definition it needs a commit object13:25
spivWhy can't you create one?13:25
bialixI can create one, but I should attach all required attributes there manually13:25
bialixbecause they're attached only when actual commit started13:26
bialixso far I see there is only work_tree and branch attributes attached, then hook fired13:26
bialixnow you say there is need for specific_files13:26
bialixit's a kinda open can of worms13:26
* bialix don't like open ended13:26
jelmerbialix: specific_files isn't there yet but it might be added in the future13:27
spivI'm not sure why qbzr can't call wt.commit?13:27
spivPerhaps look at how cmd_commit does this.13:27
bialixspiv: because we allows user to enter message *before* we call commit13:27
bialixit's a gui application13:28
spivThe hook is invoked by generate_commit_message_template, which is invoked by the get_message callback that cmd_commit passes to tree.commit13:28
bialixyes, exactly13:28
spivWhy not allow the user to enter the message during commit, like the CLI?13:28
bialixand tree.commit is the real commit13:28
bialixspiv: http://groups.google.com/group/qbzr/t/f266b47d77e4bacb13:29
spivThe issue is that the real commit can affect what goes in the template.13:29
bialixwhy?13:30
bialixor more precisely: how?13:30
spivBecause the template often includes a summary of affected files, etc.13:30
bialixI see this hook as CLI-only thing13:30
spivI don't see that way.13:30
bialixspiv: in qcommit user can select/deselect files interactively13:30
bialixso the summary will be known only when commit started13:31
bialixI need template *before*13:31
bialixheh13:31
spivOk, then you can't use the hook that generates templates based on that information.13:31
spivPerhaps we could add a hook that works from a more limited set of information, although it would be correspondingly less useful...13:33
bialixI can live with that13:33
spivBut that post you just linked to suggests that you do want your templates to know if changelog/news is going to be part of this commit.13:34
spivSo it sounds to me like you have contradictory requirements.13:34
bialixspiv: currently that hook don';t have such info13:34
bialixspiv: I don't care if user will deselct the changelog file -- because user can just select suggested templated and delete it as well13:35
bialixit's a GUI13:35
spivActually, glancing at the code, specific_files does seem to be defined at the point the message_callback is invoked.13:35
bialix*exactly*13:35
spivbialix: ah, now that suggests a solution to me:13:36
spivbialix: start a real commit to get the message template then abort it.13:37
bialix?13:37
bialixsounds crazy13:37
spivWell, AFAICT that actually matches exactly the behaviour you want:13:38
bialixspiv: I think I don't want to start commit until user presses OK13:39
spivYou want to the initial message (that the user can edit) to be what the hook suggests if the user just committed everything.13:39
bialixyes13:39
bialixthat's my point13:39
spivSo, construct that commit, use it to get the template, then abort it and throw it away.13:39
spivThen once the user has edited the message and files etc, and clicked ok, do a commit (and let it finish).13:40
bialixhow I can abort commit?13:40
spivBy raising an exception from the message_callback.13:40
* bialix scratches a head13:41
spivIt's a bit of a hack (and will quietly log a traceback), but will work.13:41
bialixyep, it looks like a hack13:41
bialixthanks for the suggestion, but I don't like this idea13:41
spivWe can add some sort of cleaner API (perhaps just an explicit AbortCommit exception) if this is useful for you.13:42
spivJust because the way to abort the commit is a hack?13:42
bialixI don't know yet13:42
spivFair enough :)13:42
bialixI don't know yet if I need AbortCommit13:42
bialixI don't like idea of aborting commit because it's a waste13:43
spivThat's true.13:43
spivThe only other option is providing a way for a GUI to interactively configure the Commit object between starting and finishing it.13:44
spivAnd I think that would either be a lot more complex for bzrlib, or actually work out to be essentially the same as "throw the first one away and restart it".13:44
bialixyes, but for this I need to understand the required API of the hook, and it's not defined yet13:44
spivBecause you are fundamentally asking for repeated work.13:45
bialixno, when qcommit will start the real commit there will be passed real commit message and the hooks won't fired13:45
spivThe commit message template by definition depends on what is being committed.13:45
spivAnd you want that template before finalising what is committed.13:46
bialixI'm reading the http://bazaar.launchpad.net/%7Ebzr-builddeb-hackers/bzr-builddeb/trunk/annotate/head%3A/__init__.py#L8513:46
bialixand I see that in the end there's a lot of manual work13:46
bialixno real benefit from commit object13:46
bialixor maybe I'm blind13:47
spivOh, to be fancy you don't *have* to abort the first commit if the user doesn't deselect any files or change anything other than the message...13:47
bialixspiv: actually we run plain `bzr commit` under the hood13:47
bialixthat's why I don't want to manually invoke wt.commit13:47
bialixmaybe I can think about using MemoryTree instead, but anyway it's a waste13:48
spivWell, if you want to integrate very closely, at some point you need to use bzrlib directly.13:48
jelmerbialix: perhaps you can propose an interface for the object that's pased to the commit_message_template_hook ?13:48
bialixno, I'm only want to have template13:48
bialixit was to spiv13:48
jelmerbialix: that interface could then be implemented by Commit as well as some qbzr-specific object13:48
spivbialix: I agree that hook's params don't provide as many convenience methods as it could or should13:49
bialixjelmer: ok, I'll think about this13:49
spivbialix: I've recently don't some work on the merge_file_contents hook to add that sort of convenience.13:49
bialixbut it's real and used now, so anywy there is should be a way for backward compatibility13:49
spiv(although there's a long way to go)13:49
=== mrevell-lunch is now known as mrevell
LeoNerdHrm.. bzr ci   is now failing for me, because it can't talk to gnome keyring, apparently. I don't even run gnome..14:50
LeoNerd** Message: secret service operation failed: The name org.freedesktop.secrets was not provided by any .service files14:50
vilaLeoNerd: does bzr-gtk appears in the output of 'bzr plugins -v' ?14:51
LeoNerdYup14:52
vilaLeoNerd: if you don't run gnome... don't install it :-)14:52
vilaLeoNerd: yet, it's a bug, can you file it ?14:52
LeoNerdgtk != gnome14:52
LeoNerdgtk provides nice shiney visual stuff.14:53
LeoNerdI don't know if it's a bug...14:53
vilaha, that kind of user :)14:53
vilait is a bug you can't use bzr ci with bzr-gtk installed14:53
vilas//that/14:53
LeoNerdIt worked this morning :)14:53
LeoNerdI haven't changed anything to my knowledge...14:54
LeoNerdIt's possible that xfce starts a gnome-keyring-alike, which has since died..14:54
vilacanonical answer: then it works as it worked before ;)14:54
vilaLeoNerd: we had trouble with gnome-keyring in the past, so be sure to mention all the relevant versions (for a fully handwaved value of relevant)14:55
LeoNerdHmm... Temporary workaround for now..?14:55
vilabzr --no-plugins ci14:55
LeoNerdRighty... usefully this isn't one of my bzr-svn checkouts ;)14:56
vilaLeoNerd: ha silly me: BZR_PLUGIN_DISABLE=gtk14:56
LeoNerdAhh14:56
viladamn, not monetioned in 'bzr help env-variables' :-/14:57
vilaBZR_DISABLE_PLUGINS=gtk sorry14:57
LeoNerdHrm.. neither of those seem to work...15:01
vilaLeoNerd: bzr version ?15:01
LeoNerdBazaar (bzr) 2.1.115:01
vilaLeoNerd: right, you need 2.2b1 or newer, so next workaround is ....15:02
vilatemporarily move the gtk directory out of the plugins dir :-}15:03
LeoNerdHeh... which is in /usr/lib/python...15:03
vilaI knew it :-(15:03
vilaLeoNerd: fix your damn installation !15:03
vilacough, sry15:03
* LeoNerd goes for apt-get remove bzr-gtk15:04
LeoNerdPossibly the actually-gtk things could be separated from the gnome things? Make it two plugins?15:04
vilaLeoNerd: please file a bug against bzr-gtk, having to uninstall it as the only workaround speak volume...15:04
LeoNerdGTK does not imply Gnome15:04
vilayeah, that's what the fix should do15:05
jelmerbzr-gtk doesn't require GNOME in any way...15:05
vilabut gtk/keyring.py already trap import errors around gnomekeyring, which is weird15:05
vilajelmer: even gnomekeyring ?15:06
LeoNerdjelmer: Then why does it die fatally because gnome-keyring isn't running?15:06
jelmervila: yeah, gnomekeyring isn't required. we just skip it if it isn't there.15:06
LeoNerdhttp://paste.leonerd.org.uk/?show=87015:06
jelmerLeoNerd: that bug has already been fixed15:07
LeoNerdAhh..15:07
vilalooks like... yeah as jelmer said :)15:07
jelmerLeoNerd: it's probably not packaged anywhere though15:07
LeoNerdHmmm15:07
vilaLeoNerd: which bzr-gtk version ?15:07
LeoNerd  Candidate: 0.98.0-115:07
jelmerLeoNerd: afaik it's triggered by newer versions of gnomekeyring, older versions would never raise IOError15:08
LeoNerdAh.. Hrm. I see15:08
LeoNerdThing is.. I know bzr was working yesterday... admittedly in svn checkouts, not nayive bzr ones..15:08
vilaby the way, hi jelmer !15:08
LeoNerd*native15:08
vilaLeoNerd: OS ?15:08
jelmermoinmoin Vincent :-)15:08
LeoNerdDebian mostly-testing15:08
vilano updates (checking) ?15:09
LeoNerdHave just distupgrad'ed now... nothing newer15:09
jelmerI haven't uploaded any bzr-gtk packages since I fixed that issue in bzr-gtk trunk I think15:09
vilaLeoNerd: that  doesn't rule out an update since yesterday (quite the contrary)15:09
LeoNerdJust did update; still 0.98.0-115:10
vilaLeoNerd: I'm trying to find if it's an install issue or a runtime one15:10
vilaLeoNerd: well, in that case that could coming from gtk itself15:11
vilas/could/& be/15:11
=== oubiwann is now known as Wooster_
=== Wooster_ is now known as oubiwann
mathrickjelmer: poke?16:15
mathrickjelmer: git://repo.or.cz/org-mode.git <-- I cloned that, and bzr tag gets confused. It shows ?? as the revno for tag past release_6.35g, and if I tell it to branch off, say, release_6.35i, it claims there's no such revision16:17
mathrick6.35g and earlier ones work fine16:17
mathrickgit can also clone them alright, although when I tell it to git log `git rev-parse release_6.35i`.., it shows something but the returned hash (014cae20013eb2b4261b4da78827573ab921bfc7) is *not* listed16:18
jelmermathrick: I would suspect that revision is not on the mainline of your branch16:18
jelmermathrick:so there's no way to assign a revno to it16:19
mathrickuhh, can't it use the dotted notation?16:19
jelmermathrick: how would it do that if the revision is not on the branch?16:19
mathrickjelmer: the same way bzr log does it?16:20
mathrickI'm not sure I follow16:20
jelmermathrick: bzr tags doesn't show revno's for tagged revisions not on the mainline either, even when you're not in a git-imported branch16:21
mathrickI'd argue it's a UI bug then16:21
mathrickI mean, not telling me "can't show because it's not on mainline"16:21
jelmermathrick: how? What revno would you assign to it without causing conflicting revno's?16:21
jelmermathrick: that's what the ?? is intended to do, though I admit that could be a bit clearer..16:22
mathrickjelmer: bzr log assigns them somehow, how is that different in tags' case?16:22
jelmermathrick: bzr log works in the context of a single branch16:23
jelmermathrick: imagine you have two different revisions A and B that have the same ancestor16:23
mathrickokay16:23
jelmerthat ancestor could have revno 4216:23
jelmerwhat revno would you give its descendants?16:23
mathrickdepends on which of A and B is in the mainline16:24
jelmermathrick: let's say A is in the mainline16:24
mathrickjelmer: oh, I see, and both A and B are tips of the tree?16:24
jelmermathrick: right16:25
jelmermathrick: so bzr tags' output would be very confusing if it claimed that two tags were set on revision 43 while they were in fact different revisions16:25
mathrickokay, but then I can still specify tag:foobar as the revspec, no?16:25
jelmermathrick: yes, you can - if that revision is available locally16:25
mathrickthe thing is, git works in this case, and bzr tells me the revision doesn't exist16:25
jelmermathrick: bzr-git tries to stay consistent with Bazaar in this regard, and only fetches the branch mainline16:26
jelmermathrick: not necessarily the tags that aren't on the mainline or their ancestors16:26
mathrickjelmer: aha, so bzr clone foo -r tag:foobar would fail on pure bzr branches if it's not in the mainline?16:26
jelmermathrick: clone foo -rtag:foobar would work. clone foo and then trying to access the tags would fail16:27
jelmermathrick: if you explicitly specify you want that specific tag is should work16:27
mathrickjelmer: so I did clone the full repo above, and then tried to branch it off at tag:release_6.35i, and that failed16:27
jelmermathrick: that's correct in that it's (afaik) compatible with bzr's behaviour16:28
jelmermathrick: I think we should consider fixing it, but I'd prefer to fix it in bazaar first16:28
mathrickjelmer: aha, so currently bzr would fail in the same situation on a pure bzr branch, and you consider that something that should be rectified and allowed to work. Am I reading you correctly?16:29
jelmermathrick: yeah16:29
mathrickmulti-branch history is the most confusing part of any DVCS, so UI bugs here are really not helpful16:30
fullermdUrr?  Wait, what?16:30
fullermdbranch and tags and all work just peachy with tags not on the mainline.16:30
mathrickjelmer: out of curiosity, how would I get a non-mainline tag into a bzr branch?16:31
mathrickI can't just merge, since that automatically gets it into the mainline16:31
jelmerfullermd: does "bzr pull" fetch the contents of revisions that are not on the mainline but have tags ?16:32
fullermdSure.  Easily demonstrable by looking at your local bzr.dev mirror; there's only like 2 tags on the mainline.16:32
fullermdWait, fetch the REVISIONS?  How could pull work at all if it didn't fetch the revisions, whether they're on the mainline or not?16:33
* fullermd is confuzzled now.16:33
jelmerfullermd: iirc pull only fetches the branch tip and its ancestors16:33
fullermdSure, but it's still an ancestor even if it's not on the mainline.16:34
jelmerfullermd: right16:34
fullermdOK, now I'm completely lost.  Are we agreeing or disagreeing?16:35
jelmerfullermd: I was using confusing terminology I think16:35
jelmerfullermd: tags don't have to be set on revisions that are part of the tips ancestry16:35
jelmerfullermd: they can be set on arbitrary revisions. and bzr pull doesn't fetch those arbitrary revisions iirc16:35
fullermdOh, yes.  pull doesn't AFAIK poke into tags at all except to blanket grab 'em.16:36
jelmerfullermd: right, git does fetch all tags even if they point at arbitrary revisions16:36
fullermdOh, wait, were you using 'non-mainline' to refer to a completely separate branch?16:37
jelmerfullermd: yep16:37
jelmerfullermd: and I'll be the first to admit that's confusing...16:37
fullermdAh.16:39
fullermdOK, carry on; I'll go be unhelpful somewhere else for a while   :)16:39
jelmer:-)16:45
bialixdoes bzr has the method to check that some path is inside some dir?16:47
bialixe.g. I have root directory and want to make sure the supplied relpath is inside my tree16:48
bialixcheck relpath for .. ? and check it's not abspath?16:48
bialixosutils.is_inside16:50
kojiroHmm, I'm using bzr+svn and I'm very new. I understand to push my changes to the svn repo I would use bzr push svn+ssh://blah/my/repo, right?16:51
kojiroIf that's right, then is there some way I can have bzr 'remember' the location of the push target?16:53
kojirooh, maybe the answer is --remember?16:57
=== salgado is now known as salgado-lunch
bialixPathNotChild: Path "C:/root/foo/bar/spam" is not a child of path "C:/root/foo/bar/"  <-- what?17:01
=== IslandUsurper is now known as IslandUsurperAFK
=== IslandUsurperAFK is now known as IslandUsurper
=== salgado-lunch is now known as salgado
=== oubiwann is now known as Wooster_
=== Wooster_ is now known as oubiwann
=== oubiwann is now known as Wooster_
=== Wooster_ is now known as oubiwann_
=== oubiwann_ is now known as oubiwann
=== FryGuy_ is now known as FryGuy-
jelmermoin lifeless21:52
jelmerlifeless: I still don't think I understand your suggestions for my url subsegments split/join patch21:52
jelmerlifeless: you seem to assume that there's always going to be key/value pairs?21:52
lifelessjelmer: I thought thats what we'd agreed on as a first pass21:53
lifelessand certainly for emitting things21:53
jelmerlifeless: I thought we were just going to leave it open as a possibility for later21:54
jelmerlifeless: key/value pairs that is21:54
lifelessjelmer: I understood the reverse: start explicit, add magic later if wanted.21:55
jelmerlifeless: anyway, I can live with just key/value pairs for now; that at least makes your statements more comprehensible :-)21:55
lifeless:)21:55
jelmerlifeless: also, s/if wanted//. I'm pretty sure I'll want that magic21:57
lifelessI really don't like the huge confusion I expect users to experience at foo,bar rather than foo,branch=bar21:58
lifelessWe know that undocumented things generate confusion21:58
lifelessand that the more hints we give, the less confusion21:58
jelmer... and more typing21:59
jelmerthere's a balance in there somewhere21:59
lifelessright22:00
lifelessthus I'm ok with *accepting* foo,bar22:00
lifelessbut not [currently] ok with *emitting* foo,bar22:01
jelmerah, I see the distinction now22:02
* jelmer blames the caffeine withdrawal22:02
jelmerlifeless: thanks, I'll resubmit22:02
lifelessjelmer: accepting foo,bar is a little ugly too - I think we *have* to accept foo,branch=bar [as we emit it, and to support looms, pipelines etc]22:06
lifelessjelmer: but I'll not argue against it :P22:06
jelmerlifeless: I'm in favor of accepting both, the short form as more of a DWIM kind of thing22:09
a212901390231901erk, I thought I sent a message to Martin Pool and list, but don't see it in the list archives22:16
a212901390231901will send again, if it arrives twice, apologies22:16
=== salgado is now known as salgado-afk
jamPeng: are you around?22:26
jamor mwhudson22:27
mwhudsonjam: otp22:27
jamk22:28
drewwwI'm having this problem: https://answers.launchpad.net/bzr/+question/24695 and I've done everything in the thread and bzr is still trying to use http to push to launchpad - any suggestions?22:35
jelmerdrewww: what does 'bzr lp-login' tell you?22:36
drewwwreturns my username properly22:37
drewww"dharry" in this case22:37
drewwwI've tried rebinding after setting my login22:37
jelmerdo you have ssh keys registered on launchpad?22:37
drewwwupdated the ssh keys22:37
drewwwyep22:37
lifelessbzr info output might help22:38
drewwwah, hmm22:38
drewwwhttp://pastebin.com/DrjxSmjL22:38
drewwwhow do I get the push branch to not be http?22:38
drewwwthe pull one looks right22:38
drewwwer, checkout22:39
jamdrewww: bzr push --remember probably22:39
mwhudsonjam: here now22:39
jammwhudson: some questions wrt loggerhead, especially wrt codebrowse22:40
mwhudsonjam: ok22:40
drewwwjam: same issue, "cannot lock LockDir" and it's going over http22:40
jamdrewww: 'bzr push --remember $NON_HTTP_URL"22:40
drewwwahhh22:40
jammwhudson: 1) I was wondering if the file-change cache is specifically beneficial even in 2a format repos22:40
mwhudsonjam: i'm pretty sure it's a lot less vital in 2a format repos22:41
jamI can see where cPickle can be faster than iter_changes22:41
mwhudsonit probably is still a bit faster though22:41
jamjust wondering if it is really worth it22:41
drewwwjam: looking good - thanks!22:41
mwhudsonjam: i'm not sure22:41
mwhudsonthe motivation was not 2a repos, lets put it that way22:42
jammwhudson: sure22:42
jamI don't know that it is worth my effort to sort out right now, but maybe someday...22:42
jammwhudson: 2) I think it was beuno who mentioned that loggerhead only uses sqlite when it is available, but doesn't require it22:43
jamdo you think that is important?22:43
jamGiven that it creates a TEMP dir even if it isn't configured, the dependency on sqlite seems pretty minor22:43
jamI suppose py <2.6 doesn't have it built in?22:43
mwhudsoni think it's built in in 2.522:44
jammwhudson: it is here :)22:44
mwhudsonyeah22:45
mwhudsonso, no, i don't think i care about that22:45
mwhudson(codebrowse is running on 2.5 now)22:45
chxhow can i update to a specific tag?22:46
jamchx: It sort of depends what you mean by "update", but "bzr update -r tag:XXXX"22:47
chxjam: now that's weird, i read the docs it does not mention -r22:47
jamchx: update -r was introduced recently22:47
jamnot sure when22:47
chxhm i only have 2.0.322:48
chxjam: another question, how can i ask which tag a tree is at? revno says a number22:48
jamchx: I don't think we have that info, you can do "bzr log" and it will show tags22:51
jam"bzr log -r `bzr revno --tree`"22:51
chxjam: is that even necessary? just bzr log |head -3|tail -1|cut -d: -f2 seems to spit out the tag name.22:53
jamchx: it depends where you update to22:57
jametc22:58
jamI think log follows the branch, and not the working tree22:58
chxah22:58
chxjam: thx for all.23:22
jelmer'lo jam23:24

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