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

lifelessjelmer: I'm also going to fix testrepository with trunk00:01
lifelessTagCollapsingDecorator doesn't forward testsRun00:01
jelmerI've been wondering about that one00:01
jelmerso far I've just been hand editing testsRun+=1 out00:01
lifelessoh00:03
lifelessI see00:04
lifelessjml: rev 91.5.21 in testrepository breaks with your TagCollapsingDecorator in subunit.00:04
lifelessjml: FWICT its working around 'after filtering testsRun is too small'00:05
lifelessas a bug on subunit. So I'm going to fix that there.00:05
=== Ursinha-afk is now known as Ursinha
Ursinhahello00:11
lifelesshi Ursinha00:17
spivMorning folks.01:00
lifelesspoolie: 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:03
pooliehi there spiv, lifeless01:21
pooliei think we should, too01:21
pooliespiv, could you look at it first?01:22
pooliei'm leaving tomorrow so i'm not the best choice01:22
spivpoolie: Ok01:29
pooliethanks01:30
lifelessthanks!01:45
=== r0bby is now known as robbyoconnor
=== Ursinha is now known as Ursinha-afk
vilahi all !07:08
=== vila changed the topic of #bzr to: Bazaar version control <http://bazaar.canonical.com> | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila
* fullermd waves.07:10
vilahmm, has anyone else trouble to access code.lp.net ?07:14
vilaha, went trough, finally07:14
spmvila: 1. heyo! 2. yeah, we've lost a key server, is causing pain.07:30
vilaspm: 1. Hey :) 2. No worries07:31
pooliehi vila07:42
pooliehow are you?07:42
vilapoolie: hey, hopefully not jetlagged anymore ;)07:44
pooliegood for you07:44
vilayou bet ;)07:44
vilaat least Valentine knows what jetlag *is* about :)07:44
vilanow07:45
pooliehaha07:45
vilathanks for the reviews on the config stuff to all !07:45
poolieS was the same when she first came to Europe with me07:45
poolieno problem, thanks for writing it07:45
poolieit looks really good and i'm keen to see it landed07:45
pooliei hope that came across in the reviews07:45
vilayup07:46
vilathere 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 here07:47
vilaroughly,07:47
vilaI'd like to instrument the test suite so we can use it to gather useful stats for a significant set of config uses07:48
vilaand 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
pooliei'm going to be leaving sydney tomorrow and i'll be semi-offline07:49
vilas/may/many/07:49
vilaok, np07:49
poolieat UDS, until i see you after that07:49
poolieso, grab my attention if you want to talk07:50
pooliebut don't block too much on me07:50
vilaok07:50
pooliemaybe we should talk now about the points where we don't agree?07:50
vilayour comment on the whole mp triggered a series of 'yes' from me ;)07:50
vilaha right,07:50
vilaone 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 with07:51
vilai.e. I think there are still valuable discussions to have about name spaces07:51
vilathe 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 disagreement07:54
pooliei'm glad you mostly liked it07:54
poolieah, this reminds me a bit of the thing a while ago about 'import config;. .... config.Store(...)'07:55
pooliewhich istr john objecting to07:55
poolieand i'm not a big fan myself either07:55
vilacallables for sections: I'm only mid-way in the whole implementation and I don't want to optimize too early07:55
vilaI think jam *agrees* with <module>.<symbol> instead07:55
lifelessspiv: hi07:56
lifelessspiv: did you have any luck with that bug ?07:57
vilabut some sections are just dicts (true python dicts or almost true python dicts) so forcing the caller to wrap them in a callable sounds weird07:57
pooliei'm not sure exactly what you're talking about here07:57
vilaI 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:58
vilapoolie: nm then, I'll explain better in the review07:59
pooliere your comment above07:59
pooliei'm not so sure about instrumenting the performance during the test case07:59
pooliei mean, during the test suite in general07:59
poolieits patterns are not necessarily very representative07:59
pooliea deterministic test for some particular cases could be good08:00
poolieor, i guess, measuring the overall test run time08:00
vilaI'm more after numbers than time08:00
pooliebut perhaps better measuring actual bzr operations like branching or merging08:00
vilai.e. reading/writing  1.000s config files vs 10s08:01
vilaerr 's not seconfs08:01
vilaseconds :)08:01
vilaand I think the test suite is still somehow representative of *somthing*, we just need to learn to use it as what it is08:04
vilait 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 interesting08:07
poolieok08:08
pooliewere you planning to do this before merging?08:08
vilaand it will help demonstrate goals like: and now we read a given config file only once per operation08:08
vilanot 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 steps08:09
spivlifeless: some, although I've been perturbed by intermittent segfaults in bzr while doing so!08:09
lifeless\o/08:10
poolie!08:10
spiv(current hypothesis is my hardware)08:10
poolieseems likely08:10
pooliemaybe time for a memtest run?08:10
spivYeah.08:10
fullermdWhat, you just check for logged ECC events...08:11
vilafullermd: :-p08:11
spiv(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:11
lifelessspiv: you've moved on from your dell?08:12
spivlifeless: Yeah, since nearly a year ago now!08:13
spivThinkpad T41008:13
pooliespiv,  can you put a note on the bug saying what you did find out, before you end your day?08:15
poolieor maybe before you reboot into that08:15
spivpoolie: yep08:15
pooliethanks08:16
pooliewee, look at all the builds08:18
poolievila, regarding class naming08:18
poolieat 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 unique08:19
pooliei think if you want to change that we should probably try to do so independently of any other work08:19
pooliethough 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 bug08:20
poolieat any rate i think having the _discussion_ separately may be better08:20
poolieit will give you a chance to explain the advantage08:20
poolievila, can you see my direct messages?08:22
jammorning poolie08:26
pooliehi there jam08:26
vilawell, 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 imports08:27
jamvila: 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:27
vilajam: 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 it08:28
sobersabrehi guys.08:28
sobersabreI'm looking for an email post-commit notifier plugin.08:29
vilajam, 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't08:30
pooliehi there08:31
pooliesobersabre, bzr-email?08:31
poolievila i find always writing config.Store() in the code is a bit long08:31
poolie(though i guess not that much longer than ConfigStore)08:31
vilacome on, no longer than ConfigStore()08:31
vilayup08:32
pooliehm08:32
poolieanyhow, i wouldn't block the review on it08:32
vilacool08:32
poolie_my_ experience with python tends to lead me to prefer fairly standalone class names08:32
sobersabreI looked at bzr-email and bzr-email-notifier08:32
pooliebut i'm not sure i can objectively justify it08:33
pooliei have certainly had cases where it was quite confusing that there were two different Foos from different modules08:33
sobersabreI 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
poolieistr one case of something like whatever.Exception08:33
pooliebzr-email will do that and i'm pretty sure the docs have examples08:34
pooliesorry i missed where you said you looked08:34
poolieperhaps it is not clear enough08:34
sobersabrepoolie: I looked at the examples. I didn't see referring to location.08:34
sobersabreI somehow remember that there can be a section definition [url] and below it its own definitions for destionation, etc.08:35
vilapoolie: 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
pooliebasically you want a [/home/sobersabre/....whatever] section in your .bazaar/locations.conf08:35
sobersabrebut I don't remember the syntax of the right url.08:35
pooliethen under that, mail_to=who@example.com08:35
sobersabreOH!08:35
pooliei don't recall if that's the right variable08:35
sobersabreI think this is what I've missed locations.conf!08:35
pooliewhat's the rule?08:36
sobersabrepoolie: no idea. I want to send to various destination depending on the location.08:36
sobersabrelemme reread the fine manual.08:36
vilaimporting 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 one08:37
vilabut many IllegalScopeReplacer failures have the same root cause08:38
vilathe trouble is that you can *most of the time* import symbols and be fine08:38
poolieah, that can be bad too08:38
sobersabrehm... poolie I don't see any location related example in the output of bzr help email08:38
vilabut suddenly one case breaks and it's generally quite hard to fix08:38
poolieok08:39
poolieand then config.ConfigSection is a bit long08:39
vilaand redundant08:39
poolieif the alternative is to dot-qualify every single symbol things will be pretty long everywhere though08:39
spivvila: 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
vilathere are valid cases where a module can relay a symbol08:40
spivOr am I misunderstanding/remembering what you mean by "redefine"?08:41
vilaspiv: true, that means adding registries here and there and I'm all in favor of doing that because it makes the code clearer anyway08:41
poolieyeah08:41
vila(get_transport is really a registry in disguise anyway)08:41
spivvila: sometimes hooks rather than registries, but yeah.08:41
vilaspiv: indeed08:41
vilaas for ConfigSection, the only valid use cases should be to define daughter classes and I don't mind being a bit more verbose there08:43
poolieanyhow, i wouldn't block on it but i would prefer if you find more explicit names08:44
vilapoolie: 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 Thing08:45
pooliewhat i mean is i would prefer 'class ConfigStack' etc08:46
pooliei'm happy to also separately look at how things interact with lazy import etc08:46
vilayeah, we disagree on the dot and the case is what I meant ;)08:46
poolielet's not get stuck on it08:53
vilaindeed, 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 agreement08:54
vilaif we can't, I can always rename all classes in the end before they are used in the wild08:55
poolievila i hate to interrupt you from this but i would like you to have a look at a bug for guilhem08:59
pooliewhich is bug 49414708:59
ubot5Launchpad bug 494147 in FEniCS Web "The platform sniffer is highly flaky" [Undecided,New] https://launchpad.net/bugs/49414708:59
pooliehm no08:59
pooliebug 49419708:59
ubot5Launchpad bug 494197 in Bazaar "Fail to create .BASE when getting conflicts in some criss-cross merges" [High,Confirmed] https://launchpad.net/bugs/49419708:59
poolieheaven help us when we get to seven digits08:59
vilapoolie: ghaa, I don't even understand what jam is saying in the last comment so that will be a huge context switch ;-/09:02
pooliehm, maybe jam could do it?09:02
vilawell "understand" as in: having an idea of what code is involved there09:02
poolieso he has push of tags, and some bugs about tree references09:03
pooliethe first seemed like it might need time to digest09:03
pooliemaybe he'll be back in a bit09:03
vilaat least pairing would minimize the effort09:03
jamI could, or I certainly could pair on it09:20
jamthe depth is certainly a bit tricky, because the obvious answer doesn't work very well because of side-effects09:21
pooliethere was one other he mentioned which might be easier...09:21
pooliebug 72121109:22
ubot5Launchpad bug 721211 in Bazaar "bzr merge --weave gives superfluous content conflict" [High,Confirmed] https://launchpad.net/bugs/72121109:22
vilaO.M.G. When did the comments on mps became rezisable ? Hug from me to the guy fixing that ;)09:30
bialixheya vila10:05
vilabialix: heya !10:06
vilabialix: I may have some mail backlog but: did you release qbzr this week-end ?10:06
bialixso, tomorrow is 2.4b2 official day, isn't it?10:06
vilain theory, yes10:06
bialixvila: just finished it. my weekend is still going10:06
bialix1-2 May is holiday in ex-USSR10:07
vilabialix: but the source is already frozen so it's more about announcing the installers anyway and you made it clear that using trunk were fine10:07
vilas/trunk/qbzr trunk/10:07
vilaha ha, lucky you ! Only 1st is holiday here and that was a Sunday ;)10:07
bialixwell, I wonder if Gary will be able to build win32 installer10:08
bialixI need to setup my own build machine, I just need several free days for this10:09
bialixnew qbzr is pretty exciting, IMO10:09
bialixI'm glad we have so many good contributions for it10:10
bialixvila: http://bazaarvcs.wordpress.com/2011/05/02/qbzr-0-21-beta1-new-features/ :-)10:10
vilabialix: cool !10:12
bialix:-)10:12
jamvila: do you have a clean run of windows since my last patch?12:10
vilajam: lunch time, but I haven't checked yet, will do and report12:20
jelmerjam: still there?12:25
jelmerjam: I'm trying to make sure I get the logic for creating new text revisions right. What I have currently:12:27
jelmer* for directories only a new text revision is created when the directory is created12:28
jelmer* for files/symlinks a new text revision is created if the text or the metadata changes or if there were multiple (different) text parents12:28
jamjelmer: not quite correct12:29
jamrenames will create a new record for directories and files/symlinks12:29
jamvila: thanks, everything I saw was failed runs12:29
jelmerjam: ok12:29
vilajam: yeah, early fails to make matters worse :-/12:30
jelmerjam: and IIUC directories don't get a new text revision when their children are created12:30
jelmerjam: ?12:30
jamjelmer: 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 entry12:30
jamjelmer: directories are not updated by changing children, correct12:30
jelmerjam: 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:31
jelmeriow, just the text revision from that parent?12:32
jamjelmer: http://paste.ubuntu.com/602216/12:32
jamif history goes down12:32
jamif when we merge C into B12:33
jamif C says "A", and B says "B", then B supersedes A, and wins cleanly (no new text)12:33
jamif C and B say C and B, then we create a new entry for D12:33
jelmerah, I see12:33
jelmerjam: I think I have a clear idea of it now. Thanks12:34
jamjelmer: this is the hardest one: http://paste.ubuntu.com/602220/12:35
jamat least, the hardest to get right if you don't track last-modified directly12:35
jamI'm not 100% sure it is *worth* spending a lot of time on. But it does mean graph correct vs wrong12:35
jamwhich is why we didn't just go with sha1 as our text handle, because wanted file graphs, and sha1 can converge12:36
jamwhile the graphs never do12:36
jamhg uses sha(parent_sha1 + content)12:36
jamwhich doesn't often converge12:36
jamunless 2 commits apply the same patch to the same base revision12:37
jelmerI'm mainly worried about getting the text store revision graph right, as not getting it right leads to bugs like bug 48560112:37
ubot5Launchpad bug 485601 in Bazaar Subversion Plugin "missing chk node(s) for id_to_entry maps" [Critical,In progress] https://launchpad.net/bugs/48560112:37
jelmerjam: are there tests for this behaviour, and if so, where do they live?12:38
jamjelmer: probably in per_commit_builder12:38
jamor per_repository test_commit_builder ?12:39
jelmerjam: That makes sense, thanks.12:40
jelmerjam: Found them.12:40
jamI count 86 tests in that file, so it is fairly complete for edge cases12:40
jamalso tests kind changes (file becoming directory, etc)12:40
jelmerlooks like I need to fix the testsuite to not require a working tree in the same location first :-/12:42
lamontwhat's the bzr equivalent of cherry-pick?12:44
jamlamont: "bzr merge -c REVNO" ?12:44
lamontor 'tever to get just a single revision in a manner that I can commit it to a different branch, with the tracking I want12:44
lamontcan I do it without the branch?12:44
jamlamont: 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
lamontthat is, export it from one, sneakernet or whatever it to the other, and then commit it?12:45
jamlamont: "bzr send -c REVNO -o outputfile; bzr merge outputfile" I think works12:46
jambut you may need "-r REVNO-1..REVNO"12:46
jamand send gets a bit funky in general, because it is trying to be smarter than you12:46
lamontin that other system I sometimes use, I can email the patch in a manner that the far end can stuff it into their branch12:46
lamont"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 change12:47
lamontok12:47
jamlamont: 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 one12:47
jam(patch is change a => b, but you then change it to C, a future merge may conflict because of A=>B)12:47
jamlamont: I would probably say, get access to the branch if possible, as that makes life easier, but other ways are possible if necessary12:48
lamontI would think that if I make the identical change in two branches, that there could be a merge conflict, no?12:49
lamontISTR seeing just such a thing at least once in the last decade...12:49
jamlamont: identical change == no conflict, just happy convergence12:49
lamontwell, near-decade12:49
jamthe main problem is near-identical changes12:49
lamontright12:50
lamontand whitespace prolly matters12:50
jamyep12:50
jamI think we could do something about whitespace, but in some languages it *really* matters.12:51
vilajam: yes, your patch fixed the issue13:16
jamvila: thanks13:17
=== Ursinha-afk is now known as Ursinha\
=== Ursinha\ is now known as Ursinha
jelmerIs python2.5 now acceptable for 2.4?15:19
jelmerI think I missed the last bit of discussion about it wrt John's patch.15:19
jamjelmer: my specific patch is bumped in favor of a compatible one. I don't think the decision is 100% clear to me yet15:58
naokiI want a preprocessor for Python....16:24
naoki#if PyVERSION < 206016:25
naoki#define b(s) s16:25
naoki#else16:25
naoki#if PyVERSION < 300016:25
naoki#define b(s) bs16:25
naoki#else16:26
cbz_So pipe the script through cpp at setup16:26
naoki#define b(s) s16:26
naoki#endif *216:26
naokiIf we use macros like these, we can generate source package for 2.5 and 3.0.16:27
naoki#define b(s) b##s16:37
naokiMy cpp stops because b"foo" is not a valid token in C.16:38
cbz_m4 plus a set of custom macros then ;)16:39
naokiSo we can prepare for moving to Python3 without stopping Python 2.5 support.17:08
naokiB("foo") => "foo" (for Python 2.517:08
naokiB("foo") => b"foo" (for Python 2.6 and 317:09
=== med_out is now known as medberry
tbnorthhi 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:05
jelmertbnorth: 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 future19:15
tbnorthjelmer: so you'd lose the history in the file's new home, but get it back it the projects later merged?19:16
jelmertbnorth: 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:17
tbnorthok, thanks.19:18
CoffeeIVI 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 workaround19:21
ubot5Ubuntu bug 218128 in Bazaar "want a way to mark files as binary even if they look like text (eg pdf files)" [Medium,Confirmed]19:21
morsikhi19:47
morsiki just installed bzr on my debian server19:47
morsikfriend (he have shell account) asked me for this19:47
morsikbut, it's possible to add someone to his bazaar so someone can make changes in his project?19:48
morsikthe only way i see is creating sysaccount for someone...19:48
levuis it possible to merge only one file?19:50
morsikwhy when i'm doing  bzr co bzr+ssh://username@server/ i'm getting:   bzr: ERROR: Not a branch: "bzr+ssh://username@server/".20:35
morsik?20:35
lifelessmorsik: that url is at the root of the server, generally there will be a path component as well20:37
morsiklifeless: i tried /projectname too, with the same result20:37
morsiki'm trying to do multiuser repo...20:38
lifelessmorsik: have you read the docs on this?20:45
morsiklifeless: what doc? this? http://wiki.bazaar.canonical.com/BzrAccess20:46
lifeless~http://doc.bazaar.canonical.com/bzr.2.3/en/20:48
lifelessbah20:48
lifelessmorsik: http://doc.bazaar.canonical.com/bzr.2.3/en/ -20:48
morsikthis is the same link ;p20:48
lifelesshttp://doc.bazaar.canonical.com/bzr.2.3/en/admin-guide/index.html and http://doc.bazaar.canonical.com/bzr.2.3/en/tutorials/index.html20:48
lifelessmay be useful20:48
=== zyga is now known as zyga-afk
morsiklifeless: i saw this tutorial20:52
morsiki created repo on user120:52
morsikbut anotheruser needs to have access to it...20:52
morsiki created also .ssh/authorized_keys20:53
jelmermorsik: where is your repository located on the server, what's the path?21:20
morsikjelmer: /home/sirmacik/sites/bzr  and here is project /proj21:29
jelmermorsik: are you running "bzr co bzr+ssh://username@server/home/sirmacik/sites/bzr/proj" ?21:30
morsikno21:30
jelmermorsik: what are you running?21:32
morsikjelmer: ok, that syntax works...21:32
jelmermorsik: you need to specify the full path on the server; you can use ~ to mean the users home directory21:32
morsikquestion is, whats permissions should be on sirmacik user so i can modify his project21:33
jelmermorsik: writable in some way by your user account; you could put them in the same group and make the repository group writable21:35
morsikyeah, that i know, but probably theres no other nice option?21:36
jelmermorsik: there's also the bzr_access script21:40
jelmerhttp://wiki.bazaar.canonical.com/BzrAccess21:40
morsikjelmer: i tried this, with no success... or i don't know how to use it21:40
jelmermorsik: where did you get stuck?21:41
morsikjelmer: well, i created user, i write command="" into .ssh/authorized_keys on sirmacik and otheruser21:43
morsiki created bzr_access.conf21:43
morsikbut hmm... i didn't create ssh keys21:43
jelmermorsik: bzr_access works by being installed in the account of just one user21:44
jelmermorsik: 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 user21:44
morsikmhm...21:45
=== r0bby is now known as robbyoconnor

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