/srv/irclogs.ubuntu.com/2008/10/07/#bzr.txt

LeefmcQuestion: How do you check to see if your local branch copy of a project is current?01:03
jmlso, I wrote a couple of Bazaar commands over the weekend. I'd like it if someone could look over the code and tell me if I'm doing anything gratuitously stupid: lp:~jml/+junk/bzr-establish01:03
LeefmcWithout actually merging01:03
jmlLeefmc: bzr missing, I think.01:04
Leefmcnice, thanks01:04
jmlLeefmc: or you could do 'bzr merge --preview'01:04
Leefmcgotcha01:04
LeefmcNow if i have a /trunk and a lightcheckout of /trunk at /wrk, and im _in_ wrk, will merge commands and whatnot mess up my light checkout? In otherwords, do i need to do all merge previews and merges in /trunk and not /wrk? (ie, merge in trunk, and update my light checkout.. or something.)01:08
bob2they'll modify the checkout01:08
bob2and if you commit, modify /trunk01:09
Leefmcbob2: Ok i think i understand, but is that a good thing or bad thing? Is merging from the server to the working branch (lightcheckout) /wrk a bad thing? Should that server/client transactions be done in the real branch (/trunk)?01:24
bob2no, it is fine01:24
fullermdYou can't merge into a branch per se; only into a working tree.  The working tree colocated with the branch isn't any more "real" than any other.01:28
markhDoes 'UserWarning: lock on <open file u'.../.bzr/checkout/dirstate', mode 'rb' at 0x0301BF50> not released' imply I've taken a lock on a tree object and not explicitly unlocked it?  Or maybe a branch object?  Any other clues?02:00
spivmarkh: that you've taken a lock on a tree and not released it, yes.02:01
markhspiv: thanks02:01
markhare there any bzrlib api functions that implicitly take a lock for you and expect you to release it?02:06
* markh wouldn't have thought so...02:07
fullermdlifeless: Can you elaborate a little on what that means re manually zeroing errno?02:07
spivmarkh: not that I can think of02:07
lifelessfullermd: errno = 0; retvalue = readdir(handle); if (!retvalue) { if errno == XXX ()...02:09
jammarkh: I think DirState.initialize and maybe a couple others, but generally, no02:10
spivmarkh: not sure if you're already considering this, but it could be a lock_read rather than a lock_write.02:11
LeoNerd.oO( Why did I read that as  DireStraits ?)02:11
spivLeoNerd: because you're dreaming about getting Money for Nothing? :)02:11
lifelessspiv: its the chicks; its always the chicks02:11
markhjam: thanks.  All the locks I can see correctly use finally, so its something subtle.  I think I'm getting closer via 'print' debugging :S02:11
fullermdlifeless: Mmm.  Does readdir() even set errno?02:12
lifelessfullermd: is that rhetorical?02:12
fullermdMmph.  Blah, need to fix that manpage   :|02:14
fullermdI hate functions like that   :|02:14
lifelessfullermd: apue recommends this for all C library functions - set errno before calling if you want to consult it after for any reason other than 'I already know an error has occured'02:15
lifelessfullermd: its the 'NULL -> EOF || ERROR' that makes readdir suck in this case02:15
fullermdYah.  There's a half dozen functions with those sorta stupid dual meanings.02:16
fullermdI don't recall that suggestion in the book, though.  I don't think I've seen such a thing recommended elsewhere.02:17
lifelessit's not prhased quite like that02:17
lifelessquoting mwhudson quoting it02:17
lifeless"There are two rules to be aware of with respect to errno.  First, its value is never cleared by a routine if an error does not occur."02:17
LeoNerdThat's not quite always true. There are a few functions that will zero it first02:18
lifelesswell, eratta -> the author :P02:19
fullermdGenerally, because it internally calls one of those stupid ambiguous functions.02:19
fullermdWow, I've got a receipt for a muffler I bought 10 years ago serving as a bookmark in it, too.02:20
* fullermd sighs.02:26
fullermdIt should take me less than 30 seconds to figure out why 'bzr diff' isn't working right in a CVS checkout   :(02:26
poolielifeless, why would you want to check errno if an error has not occurred?02:28
pooliei thought it's value was undefined then02:28
fullermdpoolie: Because some functions (like readdir()) have ambiguous returns.02:28
fullermdIt returns NULL for both "Done" and "Oops"02:28
poolieah, i see02:29
pooliethat's pretty crazy02:29
poolieistr there are other routines which tread on errno - changing the value from 0 even if an error did not occur02:30
pooliebecause one occurred at a lower level02:30
fullermdLots of them do.02:30
fullermdYou just have to know which of them have ambiguous returns.02:31
jmlspiv: just email bugs to me.02:31
spivjml: but how will I know what their Status and Importance are? ;)02:31
jmlspiv: The planning committee will inform you in due course02:32
=== kiko is now known as kiko-zzz
lifelessargh04:01
lifelessjelmer: please please please please please please please please04:01
lifelessjelmer: stop bzr-svn bitching about versions ? kthx04:01
jelmerlifeless, uhm04:06
jelmerlifeless, when does it do that?04:06
lifeless$ bzr info04:06
lifelessbzr-svn is not up to date with installed bzr version 1.8dev.04:06
lifelessThere should be a newer version of bzr-svn available.04:06
lifelessbzr: ERROR: Version mismatch04:06
jelmerit already doesn't if you're running a development (e.g. not released) version04:06
lifelessjelmer: I run whatever branch you tell me to04:07
lifelessjelmer: till it breaks, then I generally remove it until I actually need it04:07
jelmer    if (bzrlib_version in desired or04:08
jelmer        ((bzrlib_version[0], bzrlib_version[1]-1) in desired and04:08
jelmer         bzrlib.version_info[3] in ('dev', 'exp'))):04:08
jelmer        return04:08
jelmerlifeless, what bzr-svn branch are you running?04:08
lifelessI don't know, I removed the symlink already04:09
lifelesssorry04:09
lifelessI have a trunk, 0.3, 0.404:10
lifelesstrunk was most recently pulled into04:11
jelmer0.3 is waay outdated (and would rightly warn about being incompatible), the other two are marked as being compatible with bzr 1.704:11
lifelesshttp://bazaar.launchpad.net/~jelmer/bzr-svn/trunk/04:11
jelmerso shouldn't warn if you run bzr 1.8dev04:11
lifelessjelmer: I should note, I don't pull plugins routinely04:11
lifelessjelmer: I bet if I pull and build it will get your update to say 1.7 is ok04:12
lifeless2008-09-24 10:4404:12
lifelessis the last date on the trunk dir04:12
jelmerthe latest revision should be from about 10 hours ago04:13
lifelesssure04:13
lifelessI'm not saying you haven't updated it to say 1.7 is ok04:13
pooliethat's interesting, you can using sigaction to say that system calls should be automatically restarted after particular signals04:13
jelmerah, sorry04:13
lifelessI'm saying that *I haven't updated* and I wish it would not force me to to shut it up04:13
poolieit seems like this would fix bug 173007 for instance04:13
ubottuLaunchpad bug 173007 in bzr "SIGQUIT debugging breaks networking" [Medium,Triaged] https://launchpad.net/bugs/17300704:13
jelmerlifeless, so it sounds like you should update :-)04:13
jelmerlifeless: There's no easy way to warn lazily04:14
lifelessjelmer: uhm, thats the point, it interrupts workflow to force that, for instance on a train its hard04:14
lifelessjelmer: sure, check the api minimum version rather than the bzrlib version04:15
lifelessjelmer: and ask for module specific versions for more precise api's that you depend on04:15
lifelessthats what we wrote that stuff for, to stop bzr-svn and bzrtools having to be so whingy04:15
jelmerlifeless, what APIs have a separate version though?04:17
lifelessthere is no evolution at the moment because you're checking the bzr command version not the library api compatibility version; and we're not being granular about the library because noone is using it04:17
lifelessstart using granular apis and tell me what you're using and we'll start being explicit about those modules04:17
lifelessbut please don't claim a better way isn't possible - we discussed this, came up with a solution, I wrote the bzr end, and nothing has happened since04:18
jelmerI'm claiming bzr-svn can't do better than this at the moment04:18
jelmerI'll happily use other APIs that are available when they're there04:18
jelmerand matter04:19
lifelessimport bzrlib.api04:19
lifelessapi.require_api(bzrlib.repository, (1, 6))04:19
lifelessthe api is available04:20
jelmerok, fair enough04:20
jelmerplease file a bug04:21
lifelessdone04:22
poolielifeless, i fixed 279381, and found quite a nice other bug right next to it04:24
jelmerlifeless, just tried it out04:29
jelmerlifeless, require_api() doesn't allow multiple versions04:29
jelmerlifeless, which makes it impossible for bzr-svn to claim support for bzr 1.6 and 1.704:29
jelmerbug 27944704:30
ubottuLaunchpad bug 279447 in bzr "bzrlib.api.require_api() doesn't allow multiple versions" [Undecided,New] https://launchpad.net/bugs/27944704:30
jelmerlifeless, it also doesn't allow bzr-svn to provide any information about which API versions it itself provides, e.g. new arguments to functions can break code that calls out to bzr-svn04:33
lifelessjelmer: so for the former04:37
lifelessjelmer: are you doing conditional stuff in bzr-svn?04:37
lifelessjelmer: or is it just that the bzrlib api update wasn't granular enough?04:38
jelmerlifeless: both04:38
lifelessfor the latter I'm not all that concerned, once we know what you're using and have api versions in place it should stop being an issue04:38
lifelesserm04:38
jelmeryes, but that will still hurt people in the mean time04:38
lifelessfor 'wasn't granular enough' ^04:38
jelmerI run both bzr.dev and bzr 1.7 with the same bzr-svn04:39
lifelessjelmer: secondly, it raises incompatible version - you can probe twice04:39
lifelesstry:04:39
lifeless    api.require_version()04:39
lifelessexcept IncompatibleApi:04:39
jelmerusing bzrlib.api.require_api() will break04:39
lifeless  api.require_version()04:39
lifelesswe can add a require_any_version(object, version_list) if you like04:40
jelmerthat would be nice, otherwise I have to add utility functions that myself04:41
lifelessjelmer: as for "doesn't allow bzr-svn to provide any information about which API versions it itself provides" - I'm not sure what you mean there04:41
jelmerlifeless, If a new argument is added for e.g. Branch.update_revisions(), does that mean the minimum_api_version and api_version are both updated?04:42
jelmereven if a default value is set for that argument?04:42
lifelessjelmer: yes04:42
jelmerok, that addresses my concern04:42
lifelessjelmer: we can also look at being more precise04:42
lifelessjelmer: e.g. we could have bzrlib.branch.client_api and bzrlib.branch.provider_api04:43
lifelessjelmer: the big problem is that noone is using this stuff04:43
jelmeranother thing is that the error message from require_api() is not shown to the user - bug 27945104:43
ubottuLaunchpad bug 279451 in bzr "IncompatibleAPI error should not be masked by "could not load plugin error"" [Undecided,New] https://launchpad.net/bugs/27945104:43
lifelessjelmer: so I can write tweaks to it and it still won't fit what you need: you have to tell us, and I will fix the things you tell me, and we'll iterate04:44
lifelessjelmer: I'll add a multi-version require04:44
lifelessI'm not sure about the second, it sounds like the could not load plugin error hack is broken04:44
lifelessor perhaps 'import foo' is translating the error to ImportError04:45
jelmerI just get "Unable to load plugin 'svn' from '/home/jelmer/.bazaar/dev-plugins'" if IncompatibleAPI is raised by bzr-svn04:45
jelmerlifeless: Thanks - I'll happily migrate once it's at the same level as it is atm04:46
lifelessjelmer: try python -c 'import bzrlib.plugins.svn'04:46
jelmerbzrlib.errors.IncompatibleAPI: The API for "<module 'bzrlib.repository' from '/usr/lib/python2.5/site-packages/bzrlib/repository.pyc'>" is not compatible with "(1, 7)". It supports versions "(1, 7, 0)" to "(1, 7, 0)".04:46
lifelessjelmer: ok, so its the bzrlib wrapper that needs tuning04:46
lifelesspoolie: whats the standard for bazaar plugin maintainers now?04:57
pooliea high standard :)04:57
lifelessI mean04:57
pooliemore specifically?04:58
lifelesswhat group04:58
poolieshould they join on launchpad?04:58
lifelessno04:58
lifelesswhat group should be the maintainer for a new plugin04:58
lifelesswhats the meta group, is it still 'bzr' ?04:58
lifelessor is it different04:58
poolielaunchpad.net/~bzr explains that ~bzr is the overall thing, ~bzr-core is for just bzr itself04:59
poolietherefore, plugins can either get their own group of which ~bzr is a member, or just be owned by ~bzr04:59
poolielifeless, speaking of (vaguely) this kind of thing, you have an approved patch "make dist includes plugins"05:01
poolieshould we just do it, or withdraw the patch?05:01
lifelesshttp://bazaar-vcs.org/BzrMigration doesn't mention lp's code import service; hmm05:01
lifelesspoolie: there is a note in the comments/thread/etc about that patch, it doesn't run setup.py for plugins, so e.g. bzr-svn will fail05:02
poolieok05:02
lifelessI said in the thread that I might get back to it 'eventually' but that we probably need that to go forward05:02
pooliedoes that mean we can use it but just not include bzr-svn?05:02
lifelessand if someone else wanted to that would be loverly05:02
lifelesspoolie: yah, anything trivial will just work05:02
lifelesspoolie: 'trivial' -> bzrtools, bzr-loom, etc05:03
lifelessmwhudson: oh lol; when will launchpad support --development2 ? :>05:04
mwhudsonlifeless: i sent you an email about that05:05
lifelessmwhudson: did you? cool05:05
lifelessI have lots of mail05:06
pooliecould i beg a review from someone for the bug 279381 fix so it can go in 1.8rc105:06
ubottuLaunchpad bug 279381 in bzr "_readdir_pyx.pyx in python 2.5 causes errors with bzr" [High,In progress] https://launchpad.net/bugs/27938105:06
lifelessmwhudson: any hint on finding it?05:07
mwhudsonlifeless: well, not really, but i sent a mail saying that something like bazaar.edge.launchpad.net would make it a lot easier05:08
lifelessfullermd: https://code.edge.launchpad.net/~bzr/bzr-cvs/trunk05:09
lifelessfullermd: I'm just about to 'upgrade' it to pack-0.9205:09
lifelessfullermd: but if you're in the bzr group you can read it direct from the writable area05:09
fullermdHuh?05:11
lifelessfullermd: ?05:11
fullermdIn reference to what?05:11
lifeless12:25 < fullermd> It should take me less than 30 seconds to figure out why 'bzr diff' isn't working right in a CVS checkout   :(05:12
lifelessfullermd: ^05:14
fullermdOh   :p05:15
fullermdYeah, I'm still short a month and a hundred gigs of space to do the conversion...05:15
lifelessfullermd: you don't need to05:15
lifelessfullermd: install that plugin05:15
fullermdYah, but it offers me conversion options, is my point   :p05:16
lifelessfullermd: thats to be helpful05:16
lifelessfullermd: it will stop the confusion though05:16
fullermdWell, ending the use of CVS will do that too   :)05:16
fullermdIt's the VCS version of bug 1 after all.05:17
ubottuhttps://bugs.launchpad.net/ubuntu/+bug/1 (Won't display info)05:17
lifelesslol05:17
lifelessanyhow, quick hack done, install it or not :P05:18
lifelessbut don't complain about taking 30 seconds to realise its CVS in future :>05:18
lifelessmwhudson: is there some way to trigger mirrors yet ?05:22
pooliespiv, still here?05:22
mwhudsonlifeless: the api might work at last, i haven't tried for a while05:23
lifelesshttps://code.edge.launchpad.net/~bzr/bzr-cvs/trunk05:23
lifelessits hosted, pack-0.92 *now*05:23
spivpoolie: yeah05:23
lifelessbeen > 5 minutes, no change05:23
pooliecould you read http://bundlebuggy.aaronbentley.com/project/bzr/request/%3Ce01316480810062029v75a37f54qb79c168f3b81cab2%40mail.gmail.com%3E for me quickly?05:23
lifelesspoolie: looks wrong to me:05:25
lifelesspoolie: EINTR is ctrl-C yes?05:25
poolieno, that's sigint05:25
lifelessI thought it was one of those dual-arrival-path things05:25
lifelesslike SIGPIPE/EPIPE05:25
pooliehttp://www.wlug.org.nz/EINTR05:26
poolieit will happen if for example somebody suspends the process or resizes the window while you're in that system call05:26
lifelessit looks like you have altered ENOENT's behaviour05:27
pooliei don't think i did, but i do notice that it's inconsistent with the comment05:28
pooliei think that in both the before and after versions, we terminate the loop successfully on getting enoent05:29
spivlifeless: the ENOENT behaviour looks the same to my eyes05:29
spivi.e. ENOENT -> continue05:29
lifelessbb:approve05:30
pooliei inverted the sense of that test for (subjective) clarity05:30
lifelessspiv: continue will exit the loop, I think poolie is right it was inconsistent with the comment05:30
lifelessmvo: hi105:30
poolieso the comment should be s/swallow this and continue/treat this as the end of the directory05:30
spivpoolie: I also voted bb:approve, but technically it should bb:tweak because I pointed out an unnecessary semi-colon ;)05:31
lifelesspoolie: actually I suspect all those special cases were due to the missing errno=005:31
poolielinux doesn't document that it can happen and http://www.opengroup.org/onlinepubs/009695399/functions/readdir.html is unclear about how it should be handled05:31
pooliethe eintr thing is definitely wrong and potentially quite scary05:31
poolieas i said05:31
poolieanyhow thanks05:31
mvohey lifeless05:32
lifelessI don't know that EINTR can happen here; it backs onto getdents - Id need to read through05:32
lifelessbut its not a bad condom to have05:32
lifelesshi mvo05:32
lifelessI saw your mail, I don't have any handy suggestions, that looks like storm complaining about something05:33
mvolifeless: thanks, I had hoped you had some sort of magic bullet. I look into it again then (squeeze it in between the ubuntu beta bug squashing)05:34
pooliei wonder if i should just delete the enoent case05:34
poolieneither treating it as eof (and potentially missing things) or retrying (and spinning) is very desirable05:34
lifelesspoolie: I suggest not at this point, rather get this change in05:36
lifelesspoolie: and do a test branch people can test with other changes; pqm is not a good assessor for this05:37
lifelessis 1.8 still open ?05:43
lifelesspoolie: ^05:47
poolieyes05:47
pooliebut i'm planning to start making it soon05:47
lifelessI'm asking because I've got a little api patch for jelmer05:47
lifelessI don't care if it goes in 1.8/1.9, but the docstring needs a version :P05:48
lifelessI love bzr-search sometimes :)05:52
lifeless:!bzr search -d ../bzr.dev Unable to load plugin05:52
lifelessjelmer:06:01
lifeless:!./bzr st06:01
lifelessUnable to load plugin 'cvs'. It requested API version (1, 0, 0) of module <module 'bzrlib' from '/home/robertc/source/baz/api/bzrlib/__init__.pyc'> but the minimum exported version is (1, 7, 0), and the maximum is (1, 8, 0)06:01
lifelessjelmer: better?06:01
persiaGood day.  I'm trying to solve a particular problem in arranging a branch history, and wondered if anyone could help me with a recipe.06:31
pooliehey06:31
pooliemaybe06:31
persiaSpecifically, I want to revert about 20 commits from trunk to get back to an older version, add some patches that were applied back then in some new revisions, and then reapply the changes to trunk as a base for a new revision.06:32
persia(this is a workaround for a package only partially managed in VCS in Ubuntu)06:32
poolieok06:33
poolieso if i were in this situation i'd think about just being lazy and applying the old changes on top of your current tip06:34
poolieotherwise, you should look at launchpad.net/bzr-rebase to rewrite the revisions06:34
persiabzr-rebase looks like what I want, but it seems to assume I have a clean starting point.  Is there perhaps a means by which I can start a branch from an earlier revision?06:36
pooliesure06:36
pooliebzr branch -r 123 . ../rewritten-trunk06:36
pooliefor instance06:36
pooliethen work over there, and when you're sure you're happy, bzr push --overwrite into your publishing location06:37
persiaThanks!  That's precisely what I want.  That way I can pull the old version, apply the patches, and bzr merge will do the right thing.  Thanks!06:37
poolieyou're very welcome06:37
* persia deletes everything06:37
poolie!!06:38
persiaI work with patchsets.  quilt is very comfortable for me.  replaying the set of changes I made is trivial, but I need to rebranch to get clean history.06:38
lifelessI'm pretty sure rebase can do what you want from an older base06:39
persialifeless, Hrm?  There's only one extant branch, which has more in it than I want.  My first attempt included reverting stuff that I then wanted to unrevert.  bzr branch -r makes it trivial to get it right.06:40
lifelesspersia: I may be wrong; you have a something that works now though, so cool - use that06:41
vilahi all06:48
pooliehm, our extern decl of errno doesn't quite work for it to be assigned06:49
pooliethis may be tricky06:49
poolieas it's not a real variable...06:49
poolienot necessarily a real variable anyhow...06:51
lifelessusually isn't06:52
poolieah, "global errno"06:55
pooliepython scoping yay06:56
vilaregarding bug #277537, I found a problem exhibited here: http://paste.ubuntu.com/54894/07:09
ubottuLaunchpad bug 277537 in bzr "annotate says revision modified file, "bzr diff -c" widly contradicts" [Undecided,New] https://launchpad.net/bugs/27753707:09
lifelessubottu: thats due to merges, its not a bug07:09
ubottuError: I am only a bot, please don't think I'm intelligent :)07:09
vilaAnd I just came across a comment saying: '# we hope there are no repositories with inconsistent parentage anymore.' in knit.py07:10
vilaDid I found such a repo ?07:10
lifelessvila: well, I'll have to look I guess07:10
lifelessvila: but I suspect its linear-expectations confusing people07:10
vilaseen my paste ?07:11
vilaannotate is provided with parent in wrong order, which is the cause of the wrong annotation07:11
vilas/parent/&s/07:11
vilalifeless: here is the script I used: http://paste.ubuntu.com/54897/07:13
vilabranches built as explained in https://bugs.edge.launchpad.net/bzr/+bug/277537/comments/307:13
ubottuLaunchpad bug 277537 in bzr "annotate says revision modified file, "bzr diff -c" widly contradicts" [Undecided,New]07:13
vilaubottu: you just said that, pay attention please :)07:14
ubottuError: I am only a bot, please don't think I'm intelligent :)07:14
pooliehey vila07:15
vilahey :)07:15
pooliei have to say that's really not one of python's nicest features, that adding an assignment statement changes the meaning of references to that variable occuring earlier in the text07:17
pooliei understand what's happening but it's still gross07:17
=== gour_ is now known as gour
chandlercjelmer: pong07:20
vilalifeless: Tell me where you end up before leaving and if you think I can continue from there (sounds a bit hairy to me, but yet, I didn't think I could go that deep before trying either)07:42
lifelessvila: I probably won't look at it this week07:43
lifelessvila: I was simply commenting07:43
vilaoh :-/07:44
vilalifeless: may be you can give some hints about that comment then ? A way to find if parentage *is* inconsistent in that repo ?07:46
lifeless'bzr check'07:47
vilaouch, I can go fix some coffee then :)07:49
poolielifeless, if you're still here, what was it that you wanted to merge into 1.8?08:57
poolieoh the api thing08:57
lifelesspoolie: I put 1.9 in the docstring08:58
poolieso you did08:58
pooliei was just looking at it08:58
lifelesspoolie: as it sounds like 1.8 is basically baked08:58
pooliei'm just seeing if a knife comes out cleanly08:58
lifeless ?!08:59
jmllifeless: were you using 'baked' in a more colloquial sense?09:00
Odd_BlokeThe old murder/cake confusion.09:01
jmlFirst you will be baked, then there will be cake.09:03
lifelessjml: no, I'm just sufficiently tired that following my sentence and poolies reply stumped me09:04
jmllifeless: :)09:04
jmlRest assured that there is absolutely no chance of a dangerous equipment malfunction prior to your victory candescence.09:05
lifelessyou want me to DE before VC ?09:10
Odd_Blokeabentley: In the 'merged' messages Bundle Buggy sends, would it be possible to show the revision number in which the change was merged, or would that cause considerable extra grief?09:11
* Odd_Bloke is trying to mark a bug as Fix Released, and likes to mention when it was merged to bzr.dev so people can be sure they have the fix.09:12
jmlOdd_Bloke: Launchpad should so do that for you.09:13
* jml waves his hands a bit09:13
Odd_Blokejml: Less waving, more coding! :p09:14
jmlOdd_Bloke: I'm waiting for some tests to run :)09:15
Odd_BlokeOh. Carry on.</xkcd>09:15
Odd_BlokeOne thing that would be nice to do in LP is to link a bug report to an arbitrary URL, which Launchpad then goes and mirrors for you, unlinking it if the URL isn't mirrorable.09:17
pooliejml/lifeless, i was referring to cookbook instructions as to when a cake is cooked09:28
jmlpoolie: yeah, I guessed.09:30
pooliebut thanks for the Portal reference09:30
poolie> "1953 - Aperture Science begins operations as a manufacturer of shower curtains. Early product line provides a very low-tech portal between the inside and outside of your shower. Very little science is actually involved. The name is chosen to make the curtains appear more hygienic.09:31
jmlpoolie: heh10:21
jmlpoolie: where's that from?10:21
=== mneptok_ is now known as mneptok
stefanlsdCould someone have a look at this for me please - http://pastebin.ubuntu.com/54943/     - i have a problem pushing with http. Giving me you have a valid .bzr control directory, but not a branch or repository. This is an unsupported configuration. I am using --use-existing-dir10:57
spivstefanlsd: try pushing to bzr+ssh://bazaar.launchpad.net/~stefanlsd/mplayer/devel11:10
spivstefanlsd: what led you to try pushing to http://code.edge.launchpad.net/...?11:12
spivstefanlsd: Actually, you probably need "bzr push bzr+ssh://stefanlsd@ssh://bazaar.launchpad.net/~stefanlsd/mplayer/devel"11:14
spivstefanlsd: Or more simply, "bzr push lp:~stefanlsd/mplayer/devel" (do "bzr launchpad-login stefanlsd" first if you've never run "bzr launchpad-login" before).11:15
stefanlsdspiv: mm. i wanted to do http as im going thru a proxy...11:20
spivstefanlsd: Launchpad doesn't offer any way to push to a branch via HTTP at the moment.11:21
spivOnly via sftp/bzr+ssh.11:21
stefanlsdspiv: aah. that sucks :)   -  so you can only branch from http currently?11:22
spivThat's right.11:22
stefanlsdspiv: kk. thanks for that.11:22
=== Freeky is now known as Freaky
abentleyOdd_Bloke: It would be a bunch of extra work, because Bundle Buggy doesn't currently determine which new revision merged the change.13:31
Odd_Blokeabentley: OK, don't worry about it.13:46
Odd_Blokeabentley: If I were to look into it sometime, would you be open to a patch to do it?13:46
abentleyOdd_Bloke: certainly.13:47
=== doko_ is now known as doko
=== Guest448` is now known as Leonidas
=== Mathilda is now known as uws
maysamhi, does anybody know if there is any Bazaar plug-in for visual studio 2008?14:51
=== kiko-zzz is now known as kiko
sabdflhow do i see the version of bzr on a remote server, like bazaar.launchpad.net?15:01
sabdflother than the web interface :-)15:01
abentleysabdfl: I'm not sure whether we can do that.15:04
abentleyI can grovel the code...15:04
ericvwSo I have a varchar() column in my database,  when I try to save something like P4_testCases, I get the following message:/mysql/base.py:83: Warning: Data truncated for column 'project_id' at row 115:05
ericvwany ideas?15:05
ericvwwrong channel :D15:05
__lucio__hi. bzr question: im trying to merge my branch into trunk, but bzr merge thinks trunk is newer, so its removing my changes. same thing if i merge trunk into my branch. what can i do?15:07
Odd_Bloke__lucio__: How do you mean 'removing your changes'?15:09
__lucio__Odd_Bloke: i have more lines in the new branch, but when i merge with trunk, the lines are gone.15:10
Odd_Bloke__lucio__: Have you committed them?15:10
__lucio__its trying to make my branch look like trunk, not trunk look like my branch15:10
sabdflthanks abentley. would be a nice little hpss patch if we can't already do it15:10
sabdflbzr version URL15:10
__lucio__Odd_Bloke: yessir15:10
Odd_Bloke__lucio__: And you're just running 'bzr merge <BRANCH>'?15:11
__lucio__Odd_Bloke: trunk$ bzr merge $MY_BRANCH and mybranch$ bzr merge $TRUNK15:11
abentleysabdfl: Yes, grovelling the code suggests we can't do it yet.15:12
Odd_Bloke__lucio__: Can you make these branches publically available?15:12
sabdflthanks abentley for checking it out15:12
__lucio__Odd_Bloke: not really. are you in canonical?15:12
Odd_Bloke__lucio__: Nope.15:12
abentleysabdfl: np.  I'm taking Community Help Rotation to new levels :-)15:13
Odd_Blokeabentley: Speaking of which, can you help __lucio__? I'm at something of a loss (and meant to be working :p).15:14
james_w__lucio__: when you split the branch did you use "revert" at all?15:15
__lucio__one clue: i may have branched the full branch and removed some of the code there. that branch is in trunk now.15:15
__lucio__james_w: i dont remember.15:16
james_wyeah, I've you've reverted the bits left in your branch in something that has ended up in trunk then I think bzr will consider them unwanted and not merge them,.15:17
james_wI'm not sure what debugging flags we have for merge15:17
abentleyOdd_Bloke, __lucio__: bbs15:19
abentleyjames_w: -Dmerge is it.15:19
james_wthanks abentley15:21
james_w__lucio__: could you run again with "bzr merge -Dmerge $MY_BRANCH" please?15:21
__lucio__james_w sure15:21
james_w__lucio__: if there is no extra output then it means it goes in to ~/.bzr.log15:22
beunojames_w, what's happening is actually expected15:22
beunohe had 1 big branch15:22
james_whey beuno15:22
beunobranched from that15:22
beunoand deleted all the branched lines from the second and first one15:22
beunomerged the first one15:22
beunoand is now merging the second one, which is the parent of the first, and deletes it's lines15:23
beunohi  :)15:23
james_wah, rubbish15:23
james_wdo you know of a way to get the result he wants?15:23
beunomy guess would be that he may be able to, either merge, commit, and merge from the old revision again15:24
abentleyjames_w: merge, revert text changes, commit.15:24
beunothat's it15:24
beunowhat abentley seaid15:24
beuno*said15:24
__lucio__revert text changes: this is by hand or some other way? bzr revert file by file?15:25
james_w"bzr revert ."15:25
__lucio__then bzr ci --unchanged?15:26
james_wumm, dunno15:27
__lucio__beuno: ?15:30
abentley__lucio__: You shouldn't need --unchanged, because it will still show pending merges if you do "revert ."15:31
abentleyIt only clears pending merges on "revert" (no dot).15:31
__lucio__abentley: ahh.. thanks. i thought that revert and revert . where the same.15:32
__lucio__now.. did i just kill all the changes that where in trunk? (not done by me)15:33
abentley__lucio__: Yes.  You should merge an older revision of trunk that has no changes.15:34
abentley__lucio__: (instead of what you just did, so uncommit)15:35
abentleyThen after you've redone the merge;revert .;commit, merge should work properly.15:35
__lucio__thanks a lot abentley, Odd_Bloke, beuno. got it.15:36
beuno__lucio__, :)15:36
abentley__lucio__: np15:36
psusiI'm trying to follow the revision history of a project ( https://code.launchpad.net/~scott/upstart/0.5 ) and am a bit confused... I can see a merge done from another branch, but I can not figure out where that branch is16:20
psusiwhat exactly is the meaning of branch nick:?16:20
abentleypsusi: It is a hint about the purpose of the branch.16:22
psusiabentley: so how do I figure out where the branch actually is?  I would like to view the history of, or check out, just that branch that was merged into the trunk16:22
abentleypsusi: We don't really track merges by branch, we track them by the code that was merged.16:23
abentleypsusi: So you can just checkout the revision that was merged into trunk.16:23
abentleyThat will have the full history of that set of changes.16:23
abentleyThere are other way of looking at it, like "bzr viz" from the "bzr-gtk" plugin.16:24
psusiwell, it says in revision 1045 that 1024.1.3 was merged to this branch.... what I can't figure out is what branch IS 1024.116:24
abentleypsusi: And you don't need to.  bzr checkout -r 1024.1.3 will give you a checkout with that history.16:24
psusihrm....16:25
psusiit doesn't seem to want to checkout from an existing checkout16:25
abentleypsusi: Well, no, that's usually a bad idea.  You can branch instead.16:26
psusiso why is it identified as 1024.1?  going by the branch nick and looking at the history, i tlooks like I started with a side branch and 1024.1 is the trunk that was merged in again, rather than being split off from 102416:30
psusiI thought the 1024 part was supposed to indiciate that the other branch split off from this one in 1024?16:30
abentleypsusi: All a dotted revno means to me is that it's not a mainline revision.16:31
abentley1024.1 is not a meaningful revno, AIUI.16:32
psusiso how does it choose the first number?  I thought the docs said it picked it based on the common ancestor16:32
abentleypsusi: beats me.16:32
psusiI see....16:32
abentley1024.1.3 is a meaningful revno, because it refers to a revision.16:32
psusiright, but in what branch? ;)16:33
abentleypsusi: Locations aren't meaningful.  they may have changed.  The domains may have gone away.  We have the changes that were made in that branch.  We don't need a physical location.16:33
abentleyActually, a more literal response would be that 1024.1.3 refers to a revision in https://code.launchpad.net/~scott/upstart/0.516:34
psusihrm.... ok, so 1024 DOES appear to be a common ancestor16:36
psusibzr log -r 1024 in both branches shows the same entry16:36
psusihrm.... so when the first branch shows it merged in 1024.1.1 to 1024.1.3, it is saying there were 3 changes made on the other branch since it split off in 1024 that were pulled back in, right?16:37
abentleypsusi: Yes, the log entries will show which revisions were merged.16:38
psusibut when you look at the history of the other branch, its history shows all the way back to 1... but it shows 1025, 1026, and 1027, which the first branch calls 1024.1, 1024.2, 1024.316:38
abentleypsusi: That's right.  Revnos are relative to the branch.16:38
psusihrm... but the log does not record when a branch was made does it?16:39
abentleyAnother way to see the differences between branches is with "bzr missing"16:39
abentleypsusi: No, branch creation is not versioned data.  It will record the first commit to the branch, the same as it records all other commits.16:40
psusihrm.... so when looking through the log and I see the branch nick changed... it was upstart-tooling, and now it is upstart-0.5... so he was working on all this in the upstart-tooling branch first, then branched it to upstart-0.5 right?16:41
psusihrm... the pieces are starting to come together I think....16:42
abentleypsusi: That's how it looks.16:43
psusiseems pretty similar to git... just tries to hide the details and apply human friendly identifiers16:43
psusiI think my brain just is having a hard time wrapping around that since the human friendly identifiers are a poorly fit synthetic16:44
abentleypsusi: There are certainly similarities and differences.16:44
abentleypsusi: If you like opaque identifiers, you can always use --show-ids.16:45
psusihrm....16:45
=== mthaddon_ is now known as mthaddon
=== abentley is now known as abentley-lunch
=== Ng_ is now known as Ng
james_wjam: hi, do you think it would be a good idea to backport http://article.gmane.org/gmane.comp.version-control.bazaar-ng.general/46310 for the Ubuntu packages?18:14
james_wperhaps even release 1.6.218:14
james_w(it's GraphIndex and _buffer_all)18:15
jamjames_w: I'm not a big fan of backporting. And while those help, they also hurt sometimes as well (hopefully not as often as they help). Is there something that is specifically being hit ?18:32
jamI guess 1/2 of that is strictly good18:32
jam(as in, always better than what we have now)18:32
james_wno, just trying to make sure we have a solid release in Intrepid18:32
jamjames_w: backport 1.7.1 then :)18:32
jamIntrepid isn't a LTS, right?18:32
james_wheh, not that solid :-)18:33
james_wno, it's not18:33
=== abentley-lunch is now known as abentley
=== bac is now known as bac_afk
=== bac_afk is now known as bac
=== fta_ is now known as fta
jpeis it possible to update or merge a subdirectory or file in a branch?19:37
mtayloris the owner of bzr-builddeb aroud? jelmer is that you?19:46
* mtaylor is wondering if there's a feature he's missing before filing a feature request... bzr bd -S works great for making source packages, but there isn't an _easy_ way to also do the equiv of bzr bd --builder='debuild -S -sd'19:47
mtaylorso that if I'm making the same package for 4 different release series, I don't upload the tarball to launchpad 4 times... :)19:48
jammtaylor: I believe you can configure the default builder either by project or overall19:48
abentleyjpe: You can specify a path to a file/directory with merge.19:48
jamin ~/.bazaar/builddeb.conf for global19:48
jamor in .bzr-builddeb/default.conf19:48
mtaylorjam: yeah... I can do the default builder - but what I _really_ want is two different builders :)19:48
jamfor a specific project19:48
jamone style for the first19:48
jpeabentley, is this the -d flag?19:49
jamand a different for the rest?19:49
james_wmtaylor: it's me19:49
james_wmtaylor: and yeah, it sucks, you're not missing anything19:49
abentleyjpe: No, it's the first parameter to merge.19:49
mtaylorjames_w: ok. well, thanks19:49
mtaylorjames_w: and double thanks for writing it in the first place - can't tell you how much better it makes my life in general :)19:49
james_wmtaylor: I haven't thought up a good way to do this yet, but I'm going to try and crack it fairly soon.19:49
jpeabentley, isn't that the branch to merge from?19:49
mtaylorjames_w: awesome.19:49
mtaylorjames_w: I have no good suggestions19:50
james_wmtaylor: if you do please send them my way :-)19:50
mtaylorjames_w: will do!19:50
abentleyjpe: It is the branch and path to merge from.19:50
jpeabentley, an example would be to merge changes in the doc subdirectory of the bzr source and nothing outside that directory19:51
mtaylorjames_w: I'm still trying to figure out a sensible way to automatically manage a set of packaging and a branch for each of (dapper,edgy,feisty,gutsy,hardy,intrepid) so that I don't have to manually build 6 source packages19:51
mtaylorjames_w: for which I also have no good ideas as of yet19:52
abentleyjpe: e.g. bzr merge http://bazaar-vcs.org/bzr/bzr.dev/doc19:52
jamjames_w: wasn't there a program written on top of builddeb which at least did basic templating  in order to build multiple versions from the same branch?19:54
jamI don't remember the name19:54
jamI do remember that it wasn't working for jelmer at one point19:54
mtaylorthat would make me happy19:55
jpeabentley, so the rough equivalent of svn update doc is bzr merge <upstream-branch>/doc ?19:55
mtaylorof course, I've also been tempted to write a custom merge algorithm for debian/changelog files... but that sure hasn't happened19:55
mtaylorFormat <RepositoryFormatKnit3> for file:///home/mtaylor/package/pkg-mysql/.bzr/ is deprecated - please use 'bzr upgrade' to get better performance19:55
mtaylorI tried --rich-root-pack, and got a message about no subtree support19:55
abentleyjpe: sounds plausible.  I've never really used svn.19:56
jpeabentley, I think it is; thanks19:57
=== gotgenes is now known as gotgenes_away
james_wmtaylor, jam: you may be after autoppa20:17
james_wmtaylor: it's another problem I'm going to look at in the next couple of months20:17
mtaylorjames_w: mmm. autoppa sounds good20:21
mtayloranybody: ? Format <RepositoryFormatKnit3> for file:///home/mtaylor/package/pkg-mysql/.bzr/ is deprecated - please use 'bzr upgrade' to get better performance20:40
beunomtaylor, sounds like you need to upgrade that branch to packs20:40
mtaylorbeuno: I tried upgrading to --rich-root-pack - it whined about subtrees20:40
beunoah, that's out of my league then20:41
mtaylorI don't think I'm actually _using_ subtrees... is there a way to tell and/or remove them if I'm using them accidentally?20:44
mtayloraha! --pack-0.92-subtree seems to have helped20:45
beunough20:47
beunowouldn't it be nice if we could recommend what upgrade should do?20:47
=== bac is now known as bac_afk
=== bac_afk is now known as bac
fullermdmtaylor: If you're not actually using subtrees, you can 'pull' it into a rich-root-pack format branch (and theoretically "should").21:07
fullermdIt's kinda going around behind the tool's back, to do something it "should" do directly.  Two wrongs make a right  ;)21:08
mtayloryay!21:08
thrope_hi - I have a truck bzr-svn checkout and hten I've been working in branches21:24
thrope_I made some changes is one branch - pulled them back into trunk and successfully updated other unmodified branches21:24
thrope_but one branch I've been working on gives and error:21:24
thrope_bzr: ERROR: Branches have no common ancestor, and no merge base revision was specified.21:24
thrope_but I'm confused because they do have a common ancestor up to revision 11 or so21:25
thrope_I had this error before actually as well so it must be something wrong with my workflow21:25
thrope_ah found it - it had rememberred an old merge location21:26
mtaylorjames_w: what about a flag to turn on a feature where it looks in build-area for a source package already built with a tarball included, and if it finds one, it turns on -sd by default?21:45
bpierrehi21:47
bpierreI've made some modification to bzrtools, how do I submit it? Do I register a new branch in launchpad?21:49
lifelessbpierre: you can, or you can just send a patch by doing 'bzr send'22:04
bpierrelifeless: ok22:05
psusihow do you see what branches are contained in a shared repository?22:05
Jc2klifeless: bzr-playground has all gone a bit wrong. looks like loggerhead is down, new bzr-p users cant create a /bzr/$username folder because of permission problems and someone said the mirror was out of date too22:06
Jc2klifeless: but regardless, one of the tomboy maintainers was hugely impressed already22:06
Jc2k(with merging and speed of branching and such)22:06
lifelessJc2k: the mirror has just been restarted22:07
lifelessdidn't know about loggerhead22:07
lifelessfollowing up with sysadmins22:07
Jc2kty22:07
Jc2ksome soundbites:22:08
Jc2k21:06 < sandy> god this is so fucking awesome22:08
bpierrelifeless: and if I register a branch on launchpad, I can then request a merge when I feel it's ready to be included in the mainline?22:08
Jc2k21:37 <@sandy> Jc2k: btw, that merge worked beautifully, as you predicted22:08
Jc2k21:38 < Jc2k> :)22:08
Jc2k21:38 <@sandy> so fucking awesome is bzr22:08
lifelessbpierre: yes22:08
lifelesspsusi: bzr branches <repo root>22:09
bpierredoes launchpad use things like bundlebuggy?22:09
lifelesspsusi: or 'ls'22:09
lifelessbpierre: the BB main author is working on the review system for launchpad22:09
bpierreok22:09
psusilifeless: ls doesn't work though if you don't have the working trees checked out... branches will though right?22:09
lifelessbpierre: so its growing up to become like BB :)22:09
lifelesspsusi: ls will still work, because a branch has a dir - even without a tree22:10
bpierrebut the review system right know support mail?22:10
psusithat's what I was looking for... was wondering why bzr info -v just says it's a shared repo but not what's IN the shared repo ;)22:10
lifelessbpierre: yes22:10
bpierreand it's the same when requesting a merge?22:10
bpierresame system?22:10
lifelessbpierre: I don't understand the question22:10
psusilifeless: it does?  can't I remove the entire directory, or have several branches in one tree that is a shared repo and bzr switch between branches instead of cd?22:11
lifelesspsusi: if you remove the entire dir then your branch is gone, though the head will remain in the repository22:11
psusi( the entire directory meaning the subdir of the branch, while leaving the repository in the main direcotory intact )22:11
lifelesspsusi: you can have several branches and switch using 'bzr switch'22:11
lifelesspsusi: switch switches a tree between branches22:12
bpierreyou can either send a bundle by mail to a specific address, or request a merge for a registered branch, and then have something that works kinda like bundlebuggy: people can comment, and one (or more) appointed integrators can accept the merge?22:12
psusiright... well wouldn't the point of switch be to avoid having each branch in its own direcotory? instead switching one directory between them as needed?22:12
lifelesspsusi: directories are really quite cheap; its what you put in them :P.22:12
psusiwell, yea... I just don't like clutter ;)22:13
lifelesspsusi: the point of switch is to avoid having many copies of your source code expanded on disk22:13
psusiright... so if you have a dozen branches and only really want to check out and work on the trunk... you don't want all of the branches expanded on disk22:13
psusibut you are saying you at least have to have subdirecories cluttering things up for each branch, even if they don't have an expanded tree in them?22:13
lifelesspsusi: err22:14
lifelessif you have a branch at /repo/A and another at /repo/B22:14
lifelessyou don't need any of the subdirectories of your code under those22:14
psusican't you safely rm -fr /repo/B and later bzr checkout it if you need it?22:15
lifelesscheck it out from what?22:15
psusifrom /repo22:15
lifelesshave you used git?22:15
psusiyes22:15
lifelessok22:15
lifelessgit has 'refs' right?22:15
psusiyea22:15
lifelesseach branch is a ref22:16
=== gotgenes_away is now known as gotgenes
psusiare the refs not stored in the shared repo?22:16
lifeless(more or less)22:16
psusiohh... so if you delete the branch, you loose the ref?22:16
lifelessthe refs that make up your branches are stored in /repo/A/.bzr/branch/last-revision22:16
psusiand thus, can't find the head for that branch any more?22:16
lifelessright22:16
lifelessyou can recover a head from 'bzr heads --dead'22:16
psusiI see...22:16
lifelessand pull that into a fresh branch22:16
jamlifeless: provided it wasn't merged22:16
lifelessjam: well, then its in your history anyhow and pull . -r XX will do it22:17
jamThe *named* ref is gone if you delete the branch22:17
jamlifeless: right, but you don't know the *name* anymore22:17
lifelessjam: of course22:17
lifelessjam: did I sound confused ? :P22:17
jamI was mostly trying a different tack on explaining the situation22:17
fullermdI smelled confusion.  And a little egg salad.22:18
jamand "bzr heads --dead" doesn't work if the branch has been merged22:18
lifelessah yes I see22:18
lifelesspsusi: so there are a few reasons for why we do it this way22:18
psusibzr branches does not appear to be a valid command...22:18
lifelesspsusi: the primary user visible concept people work with are 'branches'22:18
psusiso there is no way to have the refs stored in the shared repo too, like git?22:18
lifelessso we wanted to make those as visible as possible22:19
lifelesspsusi: not in any of the repository formats shipped in bzr core22:19
jampsusi: well you could create your own text file with "name revision-id"22:19
lifelesspsusi: bzr-svn and bzr-git obviously support that :P22:19
jamand then refer to them by revision-id later22:19
psusiok... seems nice as a default... I'd just like the option to be able to tidy up old obsolete branches from the directory tree, yet still have them in the repo22:20
jampsusi: you could always "mv branch old/branch"22:20
jameither a file or a directory is going to get cluttered22:20
jams/either/either way/22:20
lifelesspsusi: If I want to keep the old branch (e.g. a failed experiment that might be useful), I would:22:22
lifelessmkdir obsolete22:22
lifelessmv failed-branch obsolete/22:22
psusiso if you don't want to keep it.. just rm -fr, then run some sort of packing/cleaning operation on the repo?22:22
lifelessyah22:23
lifelessbzr branches is in the bzrtools plugin22:23
psusihrm... now to figure out if it is possible to get buildd to build a personal branch from launchpad...22:24
lifelessjames_w: does bzr-builddeb know about the buildd service yet ?22:24
lifelessjames_w: ppa's I mean22:24
psusihrm... why would you want to bzr split?22:29
psusiand would that remove that subdirecotory from the original branch when you commit it, or are they just shadowed by the new branch?22:29
lifelesspsusi: it turns a versioned subdirectory into a tree object22:30
lifelesspsusi: its a bit raw, I'd ignore split for now.22:30
psusik... so why would you want to switch if you have the other branch in its own directory anyhow?  like with svn you switch so yuo only have to checkout project/A branch into the project direcory... then you switch the project directory so it is now project/B22:32
psusibut it sounds like with bzr, you have to have project/A and project/B22:32
psusiall the time... so if you want to switch, you just cd22:32
bpierrea branch can only contains bzr metadata22:32
bpierreand not it's associated tree22:32
psusi??!@22:32
bpierreonly project/A/.bzr and project/B/.bzr22:33
psusiI got two branches with their trees in a shared repo right now22:33
bpierreyou can remove the tree with remove-tree22:33
psusiohh, you mean it MAY only contain the metadata, i.e. not hve the tree22:33
bpierreand only keep the metadata22:33
bpierreyes22:33
psusiI read it as it can ONLY have the metadata, and can NOT have the tree ;)22:34
bpierreand then you can use a lightweight checkout witch switch22:34
bpierre*with switch22:34
lifelesspsusi: sorry did you mean 'split' or 'switch' they are very different things22:35
psusiswitch22:39
psusiso if you are in /proj/A and you bzr switch ../B, then /proj/A becomes /proj/B?  then how do you get back to A?22:40
lifelessJc2k: loggerhead should be restored to sanity22:41
bpierrepsusi: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#reusing-a-checkout22:41
psusiohh... I think I see... it wouldn't make sense to do that... only makes sense when you're using a central repo model22:41
lifelesspsusi: it makes sense without a central repo22:42
bpierrebut you can work like that locally!22:42
lifelesspsusi: consider this:22:42
psusiit does?22:42
lifeless/repo/A and /repo/B, are bare branches22:42
lifelessno working tree, just the ref & configuration data22:42
lifelesscd /repo22:42
lifelessbzr checkout --lightweight A working22:42
lifelesscd working22:42
lifelessbzr switch B22:42
lifelessbzr switch A22:42
lifelessbzr switch B22:42
lifelessetc22:42
psusiohh, well yea... I suppose you could make another working directory to switch back and forth in22:43
psusibut why bother when you can just cd between the two? ;)22:43
bpierreless space?22:43
lifelessbecause A and B don't have any source code to edit ?22:43
bpierreplus you can have uncommited changes22:43
jampsusi: wel, I've switched to it because I have 200ish feature branches22:43
jamand I didn't really want a WT in each22:43
psusiwell, it would be equivalent then to remove-tree + cd + checkout22:43
lifelesspsusi: thats a lot more work for the system to do22:43
bpierrenot if you have uncommited changes22:43
psusithough I guess it would probably be a bit less work22:43
psusihrm... I see...22:44
lifelesspsusi: also some people find it useful to only have one copy, so they can be sure that their editor window is looking at the right code22:44
jampsusi: on the other hand, I generally have 3-4 WTs that I have checked out22:44
jamas i work on more than one thing at a time22:44
lifelesspsusi: basically the point is - you *can* choose to use a single working tree and switch22:44
jamso I have a checkout for "Trunk", Work1, Work222:44
jamand work1 and work2 switch often22:44
lifelesspsusi: *or* you can just have a bunch of branches with colocated trees that you can edit on22:45
psusiyea... I guess that's why I was looking for a model of refs without having each branch directory...22:45
lifelessor some combination, bzr doesn't care, and supports you doing this22:45
jamlifeless: side question. Any thought on how to make Repository._generate_text_index not be glacially slow for something like the mysql repository? (65k revisions, 256k text revisions)22:45
jamI tried just bumping up the cache size and batch size, in case it was cache thrashing22:45
jambut at inventory cache of 100, it is using 600MB and still taking a long time22:45
lifelesspsusi: if you have bare branches and a single wt you edit in you'll have no problems with your editor getting confused :P22:45
lifelessjam: less inventory snapshots22:46
psusilifeless: yea... I just have to get used to having a working tree in one directory and the other directories just being branch heads with no tree... just seems odd at first22:46
jamlifeless: do you think that is really it? AFAICT the time is spent during "revision_tree(id).inventory"22:46
psusicompared to git22:46
jamfind_text_key_references() finishes in about 20s22:47
jampsusi: well, git branch heads have no tree22:47
lifelesspsusi: I appreciate its different; all the modern vcs's have similar differences, and in different areas to add to the disconnect when you first play with one22:47
jamthey are just listed in a text file22:47
psusijam: right, but unless you look in the direcotrory, youc an't tell that... they all look like directories, be they branches with no tree, or a working tree22:48
jampsusi: if it is an issue, put them all in a directory called "branches" and have the rest in "working_trees"22:49
jambut sure, I understand it is *different*22:49
lifelessjam: tbh, I'm not really interested in further tweaks on sngle document inventories22:51
jamlifeless: well, I'm trying to justify "reconcile" as it takes.... I don't really know, but it has been 2hrs so far22:52
lifelessjam: we're so close to pinning down the performance envelope of split ones that I'd rather see your time and mine going into that than optimising something we know can't ever possibly scale22:52
bpierrejam: https://bugs.launchpad.net/bzr/+bug/269456 has been marked as 'Fix commited', is the fix available somewhere?22:53
ubottuLaunchpad bug 269456 in bzr "checkout operation consume too much resources" [High,Fix committed]22:53
jambpierre: http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C48E64F01.1000106%40arbash-meinel.com%3E22:54
bpierrejam: thanks22:56
psusibzr missing... it shows revisions that are in the other branch, and not this one?  and the revision numbers are relative to the other branch?  so if you want to see what is in this branch, that is not in the other one, you have to cd to the other branch and missing this one from there?23:03
radixpsusi: no, bzr missing shows both23:04
radixpsusi: i.e., it shows revisions that the current branch has and the other branch doesn't, and vice versa23:04
Spaz923:06
Spazoops23:06
psusiradix: how do you differentiate?23:12
radixpsusi: it prints a header23:13
psusiohh... I see... missing/extra... and then the revision numbers are relative to this branch for extra, and that branch for missing23:14
fullermdAlternately phrased, the revision numbers are for the branch where they are (after all, by virtue of being 'missing', they can't have a number in the other  ;)23:16
spivjam: oh, I remember why unlock can't reraise; it's impossible to tell at that point if there is a live exception or a previously handled one that just happens to still be in sys.exc_info()23:24
spive.g. "try: foo(); except: pass" will tend to leave a real-looking exception in sys.exc_info().  The only way to distinguish an active exception from stale is by controlling the try/except around the function call and observing if an exception was actually raised.23:27
spivSo the best you can do is have a helper function that does the call-function, observe-exception, unconditionally-unlock, reraise-if-appropriate sequence for you.23:29
spivWith python 2.5 we could at least spell that helper as "with write_locked(foo): ..."23:29
spivBut 2.4 doesn't have that syntax.23:29
spivSo you need something more like "foo.write_lock(); call_and_unlock_safely(foo, foo.method)"23:31
spiv(Hmm, maybe you couldn't do better in 2.5.  It doesn't matter anyway, as we support 2.4...)23:43

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