[00:01] jelmer: I'm also going to fix testrepository with trunk [00:01] TagCollapsingDecorator doesn't forward testsRun [00:01] I've been wondering about that one [00:01] so far I've just been hand editing testsRun+=1 out [00:03] oh [00:04] I see [00:04] jml: rev 91.5.21 in testrepository breaks with your TagCollapsingDecorator in subunit. [00:05] jml: FWICT its working around 'after filtering testsRun is too small' [00:05] as a bug on subunit. So I'm going to fix that there. === Ursinha-afk is now known as Ursinha [00:11] hello [00:17] hi Ursinha [01:00] Morning folks. [01:03] poolie: spiv: I wonder if someone from the bzr team could debug this repository problem reported on friday on LP ? (the mixxx/1.9 issue) [01:21] hi there spiv, lifeless [01:21] i think we should, too [01:22] spiv, could you look at it first? [01:22] i'm leaving tomorrow so i'm not the best choice [01:29] poolie: Ok [01:30] thanks [01:45] thanks! === r0bby is now known as robbyoconnor === Ursinha is now known as Ursinha-afk [07:08] hi all ! === vila changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila [07:10] * fullermd waves. [07:14] hmm, has anyone else trouble to access code.lp.net ? [07:14] ha, went trough, finally [07:30] vila: 1. heyo! 2. yeah, we've lost a key server, is causing pain. [07:31] spm: 1. Hey :) 2. No worries [07:42] hi vila [07:42] how are you? [07:44] poolie: hey, hopefully not jetlagged anymore ;) [07:44] good for you [07:44] you bet ;) [07:44] at least Valentine knows what jetlag *is* about :) [07:45] now [07:45] haha [07:45] thanks for the reviews on the config stuff to all ! [07:45] S was the same when she first came to Europe with me [07:45] no problem, thanks for writing it [07:45] it looks really good and i'm keen to see it landed [07:45] i hope that came across in the reviews [07:46] yup [07:47] there are some points I don't fully agree and I'll explain why but there are also missing parts that made the review harder, I'll also explain the plan to go from there but may be we can discuss it briefly here [07:47] roughly, [07:48] I'd like to instrument the test suite so we can use it to gather useful stats for a significant set of config uses [07:49] and from that being able to compare the actual and the proposed implementation when it comes to number of IOs and other more fine-grained patterns (how may objects are built, reused etc) [07:49] i'm going to be leaving sydney tomorrow and i'll be semi-offline [07:49] s/may/many/ [07:49] ok, np [07:49] at UDS, until i see you after that [07:50] so, grab my attention if you want to talk [07:50] but don't block too much on me [07:50] ok [07:50] maybe we should talk now about the points where we don't agree? [07:50] your comment on the whole mp triggered a series of 'yes' from me ;) [07:50] ha right, [07:51] one is using ConfigStore instead of config.Store, I'd like to use this work to show case my ideas there, concretely introducing __repr__ to address your point about python tracebacks to start with [07:51] i.e. I think there are still valuable discussions to have about name spaces [07:54] the distinction between read-only/mutable as class names, hmm, there are various ways to look at it, I need to dig a bit more so not really a disagreement [07:54] i'm glad you mostly liked it [07:55] ah, this reminds me a bit of the thing a while ago about 'import config;. .... config.Store(...)' [07:55] which istr john objecting to [07:55] and i'm not a big fan myself either [07:55] callables for sections: I'm only mid-way in the whole implementation and I don't want to optimize too early [07:55] I think jam *agrees* with . instead [07:56] spiv: hi [07:57] spiv: did you have any luck with that bug ? [07:57] but some sections are just dicts (true python dicts or almost true python dicts) so forcing the caller to wrap them in a callable sounds weird [07:57] i'm not sure exactly what you're talking about here [07:58] I also have the intuition that not caching them may simplify building stack variations (as in, I have a config.LocationStack for '/xx/yy' and I reuse it to build one for 'xx/yy/zz') [07:59] poolie: nm then, I'll explain better in the review [07:59] re your comment above [07:59] i'm not so sure about instrumenting the performance during the test case [07:59] i mean, during the test suite in general [07:59] its patterns are not necessarily very representative [08:00] a deterministic test for some particular cases could be good [08:00] or, i guess, measuring the overall test run time [08:00] I'm more after numbers than time [08:00] but perhaps better measuring actual bzr operations like branching or merging [08:01] i.e. reading/writing 1.000s config files vs 10s [08:01] err 's not seconfs [08:01] seconds :) [08:04] and I think the test suite is still somehow representative of *somthing*, we just need to learn to use it as what it is [08:07] it may not *directly* translates to the user experience but being able to get some numbers for one set of operations across various platforms (for example) may still be interesting [08:08] ok [08:08] were you planning to do this before merging? [08:08] and it will help demonstrate goals like: and now we read a given config file only once per operation [08:09] not necessarily, I haven't look precisely yet, but since the overall proposed stack doesn't interfere with the actual implementation, I'd be happy to land everything that reached an agreement and continue with incremental steps [08:09] lifeless: some, although I've been perturbed by intermittent segfaults in bzr while doing so! [08:10] \o/ [08:10] ! [08:10] (current hypothesis is my hardware) [08:10] seems likely [08:10] maybe time for a memtest run? [08:10] Yeah. [08:11] What, you just check for logged ECC events... [08:11] fullermd: :-p [08:11] (Although the memtest-like that lenovo includes in Windows saw no issues a few weeks ago when I let it do a full system check) [08:12] spiv: you've moved on from your dell? [08:13] lifeless: Yeah, since nearly a year ago now! [08:13] Thinkpad T410 [08:15] spiv, can you put a note on the bug saying what you did find out, before you end your day? [08:15] or maybe before you reboot into that [08:15] poolie: yep [08:16] thanks [08:18] wee, look at all the builds [08:18] vila, regarding class naming [08:19] at the moment we have a reasonably consistent practice of just using the class name in the repr, just importing them directly, and making them tolerably unique [08:19] i think if you want to change that we should probably try to do so independently of any other work [08:20] though it becomes a bit like those cases where you would never get around to doing the cleanup if it wasn't as part of a particular bug [08:20] at any rate i think having the _discussion_ separately may be better [08:20] it will give you a chance to explain the advantage [08:22] vila, can you see my direct messages? [08:26] morning poolie [08:26] hi there jam [08:27] well, I don't think we are that consistent, if only because we had a lot of cases where it broke or lead to weird behaviors with lazy imports [08:27] vila: I do prefer "from bzrlib import config; config.XXX" however, I'm not sure about config.Store vs config.ConfigStore. The main issue is stuff like tracebacks don't print the module for objects. So you just see "Store". Thus, even though the code may have namespaces, classes should generally be unique. [08:28] jam: hence my proposal to add the module into the __repr__ , AFAIK, we never extract them from there so if the issue is just that they are missing, adding them should fix it [08:28] hi guys. [08:29] I'm looking for an email post-commit notifier plugin. [08:30] jam, poolie: part of the issues with lazy imports are probably linked to the fact that importing a symbol into another module *duplicates* this symbol, while using the module.symbol syntax doesn't [08:31] hi there [08:31] sobersabre, bzr-email? [08:31] vila i find always writing config.Store() in the code is a bit long [08:31] (though i guess not that much longer than ConfigStore) [08:31] come on, no longer than ConfigStore() [08:32] yup [08:32] hm [08:32] anyhow, i wouldn't block the review on it [08:32] cool [08:32] _my_ experience with python tends to lead me to prefer fairly standalone class names [08:32] I looked at bzr-email and bzr-email-notifier [08:33] but i'm not sure i can objectively justify it [08:33] i have certainly had cases where it was quite confusing that there were two different Foos from different modules [08:33] I am not sure where I'm failing, but I need to be able to control the destination of emails on per folder basis. which of them supports this ? [08:33] istr one case of something like whatever.Exception [08:34] bzr-email will do that and i'm pretty sure the docs have examples [08:34] sorry i missed where you said you looked [08:34] perhaps it is not clear enough [08:34] poolie: I looked at the examples. I didn't see referring to location. [08:35] I somehow remember that there can be a section definition [url] and below it its own definitions for destionation, etc. [08:35] poolie: well, in my case it's not specific to python, it's more about having a rule that fails in mysterious ways at the most inconvenient times ;) [08:35] basically you want a [/home/sobersabre/....whatever] section in your .bazaar/locations.conf [08:35] but I don't remember the syntax of the right url. [08:35] then under that, mail_to=who@example.com [08:35] OH! [08:35] i don't recall if that's the right variable [08:35] I think this is what I've missed locations.conf! [08:36] what's the rule? [08:36] poolie: no idea. I want to send to various destination depending on the location. [08:36] lemme reread the fine manual. [08:37] importing symbols and creating duplicates. This led to believe I failed all socket/thread leaks only to realize that get_transport has been duplicated before I could redefine it was the most painful one [08:38] but many IllegalScopeReplacer failures have the same root cause [08:38] the trouble is that you can *most of the time* import symbols and be fine [08:38] ah, that can be bad too [08:38] hm... poolie I don't see any location related example in the output of bzr help email [08:38] but suddenly one case breaks and it's generally quite hard to fix [08:39] ok [08:39] and then config.ConfigSection is a bit long [08:39] and redundant [08:39] if the alternative is to dot-qualify every single symbol things will be pretty long everywhere though [08:40] vila: I don't like making our code a bit more verbose just to make monkey-patching globals more effective. I'd rather fix the need to monkey-patch that object at all. [08:40] there are valid cases where a module can relay a symbol [08:41] Or am I misunderstanding/remembering what you mean by "redefine"? [08:41] spiv: true, that means adding registries here and there and I'm all in favor of doing that because it makes the code clearer anyway [08:41] yeah [08:41] (get_transport is really a registry in disguise anyway) [08:41] vila: sometimes hooks rather than registries, but yeah. [08:41] spiv: indeed [08:43] as for ConfigSection, the only valid use cases should be to define daughter classes and I don't mind being a bit more verbose there [08:44] anyhow, i wouldn't block on it but i would prefer if you find more explicit names [08:45] poolie: funnily enough, that's one of my goals and we seem to all agree that making the *module* name part of them is a Good Thing [08:46] what i mean is i would prefer 'class ConfigStack' etc [08:46] i'm happy to also separately look at how things interact with lazy import etc [08:46] yeah, we disagree on the dot and the case is what I meant ;) [08:53] let's not get stuck on it [08:54] indeed, if it's too controversial I'll wait for a better case anyway, my query here was: can I have a go here and see if we can reach an agreement [08:55] if we can't, I can always rename all classes in the end before they are used in the wild [08:59] vila i hate to interrupt you from this but i would like you to have a look at a bug for guilhem [08:59] which is bug 494147 [08:59] Launchpad bug 494147 in FEniCS Web "The platform sniffer is highly flaky" [Undecided,New] https://launchpad.net/bugs/494147 [08:59] hm no [08:59] bug 494197 [08:59] Launchpad bug 494197 in Bazaar "Fail to create .BASE when getting conflicts in some criss-cross merges" [High,Confirmed] https://launchpad.net/bugs/494197 [08:59] heaven help us when we get to seven digits [09:02] poolie: ghaa, I don't even understand what jam is saying in the last comment so that will be a huge context switch ;-/ [09:02] hm, maybe jam could do it? [09:02] well "understand" as in: having an idea of what code is involved there [09:03] so he has push of tags, and some bugs about tree references [09:03] the first seemed like it might need time to digest [09:03] maybe he'll be back in a bit [09:03] at least pairing would minimize the effort [09:20] I could, or I certainly could pair on it [09:21] the depth is certainly a bit tricky, because the obvious answer doesn't work very well because of side-effects [09:21] there was one other he mentioned which might be easier... [09:22] bug 721211 [09:22] Launchpad bug 721211 in Bazaar "bzr merge --weave gives superfluous content conflict" [High,Confirmed] https://launchpad.net/bugs/721211 [09:30] O.M.G. When did the comments on mps became rezisable ? Hug from me to the guy fixing that ;) [10:05] heya vila [10:06] bialix: heya ! [10:06] bialix: I may have some mail backlog but: did you release qbzr this week-end ? [10:06] so, tomorrow is 2.4b2 official day, isn't it? [10:06] in theory, yes [10:06] vila: just finished it. my weekend is still going [10:07] 1-2 May is holiday in ex-USSR [10:07] bialix: but the source is already frozen so it's more about announcing the installers anyway and you made it clear that using trunk were fine [10:07] s/trunk/qbzr trunk/ [10:07] ha ha, lucky you ! Only 1st is holiday here and that was a Sunday ;) [10:08] well, I wonder if Gary will be able to build win32 installer [10:09] I need to setup my own build machine, I just need several free days for this [10:09] new qbzr is pretty exciting, IMO [10:10] I'm glad we have so many good contributions for it [10:10] vila: http://bazaarvcs.wordpress.com/2011/05/02/qbzr-0-21-beta1-new-features/ :-) [10:12] bialix: cool ! [10:12] :-) [12:10] vila: do you have a clean run of windows since my last patch? [12:20] jam: lunch time, but I haven't checked yet, will do and report [12:25] jam: still there? [12:27] jam: I'm trying to make sure I get the logic for creating new text revisions right. What I have currently: [12:28] * for directories only a new text revision is created when the directory is created [12:28] * for files/symlinks a new text revision is created if the text or the metadata changes or if there were multiple (different) text parents [12:29] jelmer: not quite correct [12:29] renames will create a new record for directories and files/symlinks [12:29] vila: thanks, everything I saw was failed runs [12:29] jam: ok [12:30] jam: yeah, early fails to make matters worse :-/ [12:30] jam: and IIUC directories don't get a new text revision when their children are created [12:30] jam: ? [12:30] jelmer: so for files, if you think in terms of 'last modified'. If one sides supersedes another, than we just take it. If neither is a "head" then we create a new entry [12:30] jelmer: directories are not updated by changing children, correct [12:31] jam: when you say one side supersedes the other, you mean that if a merge takes the version from one of the parents as-is, the text revision stays the same? [12:32] iow, just the text revision from that parent? [12:32] jelmer: http://paste.ubuntu.com/602216/ [12:32] if history goes down [12:33] if when we merge C into B [12:33] if C says "A", and B says "B", then B supersedes A, and wins cleanly (no new text) [12:33] if C and B say C and B, then we create a new entry for D [12:33] ah, I see [12:34] jam: I think I have a clear idea of it now. Thanks [12:35] jelmer: this is the hardest one: http://paste.ubuntu.com/602220/ [12:35] at least, the hardest to get right if you don't track last-modified directly [12:35] I'm not 100% sure it is *worth* spending a lot of time on. But it does mean graph correct vs wrong [12:36] which is why we didn't just go with sha1 as our text handle, because wanted file graphs, and sha1 can converge [12:36] while the graphs never do [12:36] hg uses sha(parent_sha1 + content) [12:36] which doesn't often converge [12:37] unless 2 commits apply the same patch to the same base revision [12:37] I'm mainly worried about getting the text store revision graph right, as not getting it right leads to bugs like bug 485601 [12:37] Launchpad bug 485601 in Bazaar Subversion Plugin "missing chk node(s) for id_to_entry maps" [Critical,In progress] https://launchpad.net/bugs/485601 [12:38] jam: are there tests for this behaviour, and if so, where do they live? [12:38] jelmer: probably in per_commit_builder [12:39] or per_repository test_commit_builder ? [12:40] jam: That makes sense, thanks. [12:40] jam: Found them. [12:40] I count 86 tests in that file, so it is fairly complete for edge cases [12:40] also tests kind changes (file becoming directory, etc) [12:42] looks like I need to fix the testsuite to not require a working tree in the same location first :-/ [12:44] what's the bzr equivalent of cherry-pick? [12:44] lamont: "bzr merge -c REVNO" ? [12:44] or 'tever to get just a single revision in a manner that I can commit it to a different branch, with the tracking I want [12:44] can I do it without the branch? [12:45] lamont: I'm not sure what you mean by "with the tracking I want". And I don't know how you merge without the branch. [12:45] that is, export it from one, sneakernet or whatever it to the other, and then commit it? [12:46] lamont: "bzr send -c REVNO -o outputfile; bzr merge outputfile" I think works [12:46] but you may need "-r REVNO-1..REVNO" [12:46] and send gets a bit funky in general, because it is trying to be smarter than you [12:46] in that other system I sometimes use, I can email the patch in a manner that the far end can stuff it into their branch [12:47] "the tracking I want" == the commit is intact as itself, and a future merge back from the other branch won't cause a conflict simply because of being the same change [12:47] ok [12:47] lamont: merges are never a conflict simply because of being the same change. It may conflict if you then do a change on top of that one [12:47] (patch is change a => b, but you then change it to C, a future merge may conflict because of A=>B) [12:48] lamont: I would probably say, get access to the branch if possible, as that makes life easier, but other ways are possible if necessary [12:49] I would think that if I make the identical change in two branches, that there could be a merge conflict, no? [12:49] ISTR seeing just such a thing at least once in the last decade... [12:49] lamont: identical change == no conflict, just happy convergence [12:49] well, near-decade [12:49] the main problem is near-identical changes [12:50] right [12:50] and whitespace prolly matters [12:50] yep [12:51] I think we could do something about whitespace, but in some languages it *really* matters. [13:16] jam: yes, your patch fixed the issue [13:17] vila: thanks === Ursinha-afk is now known as Ursinha\ === Ursinha\ is now known as Ursinha [15:19] Is python2.5 now acceptable for 2.4? [15:19] I think I missed the last bit of discussion about it wrt John's patch. [15:58] jelmer: my specific patch is bumped in favor of a compatible one. I don't think the decision is 100% clear to me yet [16:24] I want a preprocessor for Python.... [16:25] #if PyVERSION < 2060 [16:25] #define b(s) s [16:25] #else [16:25] #if PyVERSION < 3000 [16:25] #define b(s) bs [16:26] #else [16:26] So pipe the script through cpp at setup [16:26] #define b(s) s [16:26] #endif *2 [16:27] If we use macros like these, we can generate source package for 2.5 and 3.0. [16:37] #define b(s) b##s [16:38] My cpp stops because b"foo" is not a valid token in C. [16:39] m4 plus a set of custom macros then ;) [17:08] So we can prepare for moving to Python3 without stopping Python 2.5 support. [17:08] B("foo") => "foo" (for Python 2.5 [17:09] B("foo") => b"foo" (for Python 2.6 and 3 === med_out is now known as medberry [19:05] hi all - is there a way to move a file from a branch in one project to a branch in another project, i.e. move a file between projects which are both under bzr, but not really related? [19:15] tbnorth: there is "bzr add --use-file-ids-from" which can let you keep the existing file id in case the projects are ever merged in the future [19:16] jelmer: so you'd lose the history in the file's new home, but get it back it the projects later merged? [19:17] tbnorth: yeah. The alternative is to use "bzr merge -r0..-1 ../path/to/file". That will bring in the history of that specific file but also of the rest of the branch. [19:18] ok, thanks. [19:21] I have a project in which some .pdf files are being recogized as binary, and some are not. (doing a bzr diff makes it obivous which are which) I have looked at https://bugs.launchpad.net/bzr/+bug/218128 , just wondering if there was a workaround [19:21] Ubuntu bug 218128 in Bazaar "want a way to mark files as binary even if they look like text (eg pdf files)" [Medium,Confirmed] [19:47] hi [19:47] i just installed bzr on my debian server [19:47] friend (he have shell account) asked me for this [19:48] but, it's possible to add someone to his bazaar so someone can make changes in his project? [19:48] the only way i see is creating sysaccount for someone... [19:50] is it possible to merge only one file? [20:35] why when i'm doing bzr co bzr+ssh://username@server/ i'm getting: bzr: ERROR: Not a branch: "bzr+ssh://username@server/". [20:35] ? [20:37] morsik: that url is at the root of the server, generally there will be a path component as well [20:37] lifeless: i tried /projectname too, with the same result [20:38] i'm trying to do multiuser repo... [20:45] morsik: have you read the docs on this? [20:46] lifeless: what doc? this? http://wiki.bazaar.canonical.com/BzrAccess [20:48] ~http://doc.bazaar.canonical.com/bzr.2.3/en/ [20:48] bah [20:48] morsik: http://doc.bazaar.canonical.com/bzr.2.3/en/ - [20:48] this is the same link ;p [20:48] http://doc.bazaar.canonical.com/bzr.2.3/en/admin-guide/index.html and http://doc.bazaar.canonical.com/bzr.2.3/en/tutorials/index.html [20:48] may be useful === zyga is now known as zyga-afk [20:52] lifeless: i saw this tutorial [20:52] i created repo on user1 [20:52] but anotheruser needs to have access to it... [20:53] i created also .ssh/authorized_keys [21:20] morsik: where is your repository located on the server, what's the path? [21:29] jelmer: /home/sirmacik/sites/bzr and here is project /proj [21:30] morsik: are you running "bzr co bzr+ssh://username@server/home/sirmacik/sites/bzr/proj" ? [21:30] no [21:32] morsik: what are you running? [21:32] jelmer: ok, that syntax works... [21:32] morsik: you need to specify the full path on the server; you can use ~ to mean the users home directory [21:33] question is, whats permissions should be on sirmacik user so i can modify his project [21:35] morsik: writable in some way by your user account; you could put them in the same group and make the repository group writable [21:36] yeah, that i know, but probably theres no other nice option? [21:40] morsik: there's also the bzr_access script [21:40] http://wiki.bazaar.canonical.com/BzrAccess [21:40] jelmer: i tried this, with no success... or i don't know how to use it [21:41] morsik: where did you get stuck? [21:43] jelmer: well, i created user, i write command="" into .ssh/authorized_keys on sirmacik and otheruser [21:43] i created bzr_access.conf [21:43] but hmm... i didn't create ssh keys [21:44] morsik: bzr_access works by being installed in the account of just one user [21:44] morsik: it lets all the users ssh into the same user account and then looks at the ssh key that was used to login to identify the user [21:45] mhm... === r0bby is now known as robbyoconnor