/srv/irclogs.ubuntu.com/2010/01/13/#bzr.txt

lifelessvila: still up?00:00
PureRumblegreetings, newb here failing to properly setup bazaar server on localhost.00:25
PureRumbleThis is what I do to setup bazaar server: "sudo bzr serve --directory=files/servers/bazaar/ --bzr"00:26
lifelessyou probably don't want the server running as root00:26
PureRumbleSee... I'm that bad. :-)00:26
PureRumbleI mean bad as in notknowing.00:26
spivPureRumble: I agree with lifeless, but that command should still work00:27
PureRumbleOk, so I will not run as sudo. bad idea. bad idea! :-]00:27
PureRumbleOk but there are still problems. So now I no longer run server as root.00:29
spivPureRumble: what problems?  What error are you getting?00:30
PureRumbleBut still when I do "bzr push bzr://localhost/test" I get "bzr: ERROR: Transport operation not possible: readonly transport"00:30
spivPureRumble: right00:30
spivPureRumble: you need to explicitly pass --allow-writes to bzr serve if you want to allow that00:30
PureRumblesee, it's that easy! :-)00:31
spivPureRumble: (in which case it's a really good idea not to run it as root!)00:31
spivPureRumble: you may want to create a user on your system just for bzr serve00:32
PureRumbleOk, I have now created my first branch! But right now anyone can connect to my server from the web (if it wasn't for ufw), right?00:32
spivPureRumble: connect, and write to!00:32
spivPureRumble: Why do you want to run a server?00:33
PureRumbleok, so something tells me that is not good and needs to be taken care of :)00:33
spivYou don't need one to create branches.00:33
PureRumbleBecause, I thought it would be better than storing stuff in .bzr folders, but perhaps I'm wrong?00:33
spivYou don't need a bzr server for that.00:33
spivIf it's just you, locally, don't bother with bzr serve.00:34
spivJust run bzr directly.00:34
PureRumbleBut then stuff would be stored in .bzr-folders, is that a good idea? *non-rethorical question*00:34
spive.g. instead of "bzr push bzr://localhost/test", you can do "bzr push files/servers/bazaar/test"00:34
spivI'm not sure what you mean by .bzr folders.00:35
rockstarHow can I find out what revision a file in my tree was last changed?00:35
rockstarI thought blame would do it, but that seems to be an alias for annotate00:35
bob2bzr log -l1 filename ?00:35
rockstarbob2, yeah, after typing that, I had to wonder if log would take a file as an argument, so I went to look.00:36
rockstarbob2, cheers though.00:36
bob2ahh00:36
spivPureRumble: I think maybe you're talking about the difference between a treeless branch and branch with a colocated working tree.00:37
idnaris it possible to uncommit a revision that isn't the tip?00:38
idnaractually, nevermind, I don't think I want to do that00:38
spivPureRumble: bzr doesn't really care either way; the full history is still stored.  If you want to make treeless branches directly then you can use e.g. "bzr branch --no-tree" or even better make a shared repository for your branches with "bzr init-repo --no-trees"00:39
spividnar: good, because you can't (without also uncommitting the revisions between it and tip)00:39
PureRumbleI'll be honest and say my revision-controlling knowledge is not the best. I thought I would setup a bazaar server on my computer so I can manage code from anywhere.00:40
spividnar: you can reverse the changes made by a particular revision, though.00:40
spiv(and commit that)00:40
spivPureRumble: you can access bzr branches via SFTP and SSH00:40
spivPureRumble: you don't need a special bzr server to do that, just allow SSH access.00:40
idnarspiv: that causes problems if you want to put the changes back later00:42
PureRumbleOk, so having done bzr init, add and commit for some branch, how can I modify it from another host without setting up server?00:42
spividnar: no more than the reversing00:42
lifelessPureRumble: the most secure way is via bzr+ssh00:44
idnarhttps://bugs.edge.launchpad.net/bzr/+bug/15200800:44
ubottuLaunchpad bug 152008 in bzr "Ability to unmerge or revert a merge sensibly" [Wishlist,Triaged]00:44
spividnar: I'm talking about a cherrypick merge; e.g. "bzr merge . -r 99..98 && bzr ci -m 'Undo r99'"00:44
lifelessPureRumble: install opensshd00:44
idnarI believe that bug covers what I'm talking about00:44
spividnar: right, including the merge . -r <backwards-revision-range> recipe.00:46
PureRumble... Ahaaaa, so you mean I should connect through opensshd and just navigate to the same dir and continue working?00:47
mmj8237Hello, I did a bzr push before to a new location and noticed that it created a working tree at the new location when I didn't expect it to - is there an option for bzr push that prevents creating a working tree in the new location?00:47
bob2that's the default00:48
chxwhat happens if someone runs a bzr up on a checkout and someone else does a bzr uncommit...? the uncommitted changes disappear on next up?00:49
mmj8237The documentation may be out of date, or maybe I have read it wrong, but I thought that bzr push wasn't supposed to update/create the remote working tree00:49
spivPureRumble: you can do that, but you can also use commands like "bzr branch bzr+ssh://yourhost/path/to/your/branch"00:49
lifelessmmj8237: you pushed to a file:/// url00:50
spivmmj8237: "remote" in that context just means "connected via a network URL than a local file path"00:51
lifelessmmj8237: they aren't 'remote'00:51
mmj8237lifeless: yes it was a file:// url, though it was a mapped network drive with a kind of low disk space quota and I didn't expect a working tree...00:51
spivmmj8237: If it's a one-off, you can just remove the branch afterwards with the "bzr remove-tree" command.  If you're going to push several of these, maybe you want a shared repository made with "bzr init-repo --no-trees"00:52
PureRumbleok so I'll install openssh-server... but will I need the client too?00:52
spivPureRumble: only if you need to connect to the server ;)00:53
mmj8237spiv: thanks for your help.  Yep bzr remove-tree works, just wondering if there was another command, but it seems like there isn't.  Chosen not to use a shared repo for various reasons.00:53
PureRumbleI'm not very good at this, no not at all :-/00:53
spivmmj8237: yeah, we should probably add --no-tree to 'bzr push', 'bzr branch' had that added relatively recently.00:54
mmj8237cool00:54
spivmmj8237: I'm a bit surprised that a shared repo isn't suitable given that you're concerned about disk space, but ok.00:54
spivmmj8237: file a bug? :)00:54
mmj8237spiv: I am using stacked branches rather than a shared repo, I figure that if I delete a branch off that server it allows me to recover the disk space more easily than with a shared repo.00:55
mmj8237Though if you had other suggestions I'd be all ears :)00:56
spivmmj8237: ah ok, interesting.  I would expect with most workflows that a shared repo would still be smaller than a collection of stacked branches.00:57
lifelesspoolie: http://rproxy.samba.org/ has a stale link to http://samba.org/~mbp/superlifter/00:58
spivmmj8237: because stacked branches inherently have a little bit of duplication with the repo they are stacked on, plus merges between them will require copying revisions around rather than just having one copy.00:58
PureRumbleSo if the branch's absolute path is /home/foo/bar, do I do "bzr diff bzr+ssh://localhost/home/foo/bar" ?00:58
spivmmj8237: but I guess it depends on how much being able to completely delete unwanted revisions can save you space.00:59
lifelessPureRumble: typically no00:59
lifelessPureRumble: you generally only diff locally - 'bzr diff'00:59
PureRumbleok but that was just an example.00:59
lifelessPureRumble: but that url is correct00:59
PureRumbleOk, it actually works! But a bit annoying to print the password each time I wanna do something.... :-/01:02
lifelessPureRumble: you can use an agent to remember the password or passphrase (if you use ssh keys)01:03
mmj8237After a quick bug search I filed a request for --no-tree on bzr push at https://bugs.launchpad.net/bzr/+bug/506730 - hope this is ok thx01:06
ubottuLaunchpad bug 506730 in bzr "Add --no-tree to bzr push" [Undecided,New]01:06
spivmmj8237: thank you!01:07
PureRumbleOk thanks, so now things seam to be working smoothly.01:08
PureRumbleBut how can I restrict what users can connect to my bzr server if I want to have such a server?01:09
lifelessthe plain bzr:// protocol doesn't have authentication or access control01:09
lifelessif you need that, use bzr+ssh or bzr+http01:09
PureRumbleok, but how does say launchpad work? They restrict who connects and gets to see the code, right? And they use bazaar servers, right?01:11
spivPureRumble: in your situation I'd just provide access via SSH, and then only users that can connect are the ones I've created accounts on my system for.01:11
lifelessthey use bzr+ssh01:11
spivPureRumble: and if you want to limit which of those users can read/write particular things, I'd use regular filesystem permissions to control that.01:12
PureRumblespiv: but that would be a problem if the files happen to be on ntfs, right?01:13
spivPureRumble: I wouldn't think so, ntfs has file permissions too.01:15
spivACLs even! :)01:15
spiv(But I don't have much experience with managing ntfs from linux)01:17
PureRumbleyeah i knew that, i'm not that bad :-(. Just didn't think linux can modify them.01:17
PureRumbleGeneral question: what do you suggest for managing php project (with revision control) remotely?01:19
PureRumbleI can set up apache on my host to connect remotely and test my code... but how can I work remotely on my code with revision control?01:22
spivPureRumble: maybe the bzr-upload plugin or the bzr-push-and-update plugin would help.01:22
PureRumbleOk so bzr+ssh to retrieve files and modify and the upload back... but how to do build commands, such as ant, remotely?01:27
PureRumblePardon newbie questions.01:27
RAOFWell, you could do that with ssh.01:35
RAOFI'd also expect it to be relatively easy to write a server-side bzr plugin that ran your buildsystem for every commit.01:35
lifelessor use e.g. hudson01:36
PureRumbleso much knowledge outside my brain, so little inside it! googling hudson01:37
lifelesshudson-ci.org01:37
lifelessPureRumble: thats for doing build testing01:38
lifelessPureRumble: if you want deployment tools, you probably want to ssh into the server and then do a bzr pull; ant build  (or other sequence of commands)01:39
PureRumbleOk some other general questions if I may: if I have hostA and another hostB, can I somehow map /foo/magic on hostA to /bar/magic on hostB safely through ssh? That would make things easy!01:49
PureRumblehostA and hostB different computers connected to web.01:49
jacseenI've run into a merge issue with bzr 1.16, a new branch on launchpad is listed on lp: as format 7, but bzr lists it as unknown. How do I upgrade my old branches so that htey can be merged into a local copy of version 7? My other branches are 'pack-0.92' and lp: calles them version 6.01:51
PureRumbleSo like if I write some file to /foo/magic, ssh makes sure it is written remotely to /bar/magic on hostB.01:51
RAOFjacseen: “bzr upgrade” your branches.  You can do this on your local branches, and also remotely (“bzr upgrade lp:my-project” will work, but slowly).01:52
RAOFPureRumble: You can do that (at least in linux), but why do you want to?01:53
PureRumbleSo I can easily manage stuff remotely of course :-)01:53
chxRAOF: Fuse (hence sshfs) exists for BSD too :p01:54
PureRumbleLook, I have my computer here at home and sometimes do coding on it. But sometimes I want to continue code on the same project but on my laptop.01:54
RAOFchx: And I think MacFUSE exists, too :P01:54
chxRAOF: not to mention the opensolaris port.01:54
jacseenRAOF, just a noob question, how does bzr know what format to upgrade my 'pack-0.92' branches too? It doesn't even recognize the format of the version 7's as reported by launchpad?01:55
RAOFjacseen: Bah.  Sorry, I should have read your question more thoroghly.01:55
AfCjacseen: also, if you can upgrade to bzr >= 2.0 you'll find things work faster.01:55
chxand Dokan on Windows.01:55
PureRumbleSo that's pretty much my problem. I have a php project on my main computer, but sometimes I wanna work from my laptop... all in all without duplicate code of course!01:56
mac9416AfC, how does one upgrade to bzr 2.0 in, say, Ubuntu 9.10?01:56
RAOFPureRumble: ssh will do that, but I'm not sure why you're hung up on the “without duplicate code”.  I'd just have a branch on the main computer, and a branch on the laptop.01:56
AfCmac9416: use the bzr PPA01:57
lifelessjacseen: I think you need a newer version of bzr01:57
AfCdeb http://ppa.launchpad.net/bzr/ppa/ubuntu karmic main01:57
mac9416AfC, gracias.01:57
AfCthat has the latest stable release.01:57
PureRumbleRAOF: Help a guy that has been haunted by this for a while now and wanna sleep. :-( Say I've done bzr init, add & commit on some folder on main computer. That starts the branch there, right? I've also enabled ssh on it. Good.01:59
jacseenAFAIK bzr 2.0+ uses a different default branch format (no complaint), how do I ensure all the branches in one project - most likely of an older format - stay in that format as I create new branches and do merges and stuff?01:59
PureRumbleNow what do you propose I do on laptop to continue working?02:00
RAOFPureRumble: So, the next thing I'd do is push that branch up to launchpad, so it's easily available everywhere :).  If that's not what you want to do, then you can “bzr branch sftp://the-main-computer/path/to/that/branch” on the laptop.02:01
cody-somervillejacseen, create a repository to place all your branches in02:01
PureRumblebut if I'm not misstaken then when you create a new branch it will go its own way... unless you merge them, right?02:02
RAOFPureRumble: Right.02:02
jacseencody-somerville, I never actually created a repo for my branches, the tutes didn't explain them. Do these repos force all branches inside them to remain the same format, or just affects the format of newly created branches(the main requirement)?02:03
RAOFSo, once you're done working on your laptop, you can either (a) “bzr push sftp://the-same-thing” to push your changes to the main computer or (b) Merge on the main computer from the laptop02:03
PureRumbleBut there would still be inconvenience if I'm working with php code, right? Because webserver is on main computer. I would have to pull/push on laptop and then connect to computer through http to verify each little change I wanna see, right?02:05
RAOFUnless you run a webserver on your laptop, right.02:09
PureRumbleYes but then it becomes a matter of keeping webserver configuration up-to-date too :). RAOF, lifeless, spiv thx for your help. I think I have enough to walk on from here.02:15
jacseenIs there anyway to 'downgrade' a branch from a newer version to like 'pack-0.92' to maintain compatibilty across a whole project? Or must a person copy over the data files between the branches?02:21
spivjacseen: you can use 'bzr upgrade' to downgrade too02:22
spivjacseen: but not all downgrades are possibly, e.g. you can't go from 2a to pack-0.92 because 2a stores some data that pack-0.92 cannot represent02:23
jacseenspiv by passing the format in cmdline. OK thanks02:23
jacseenspiv that's what I was trying to confirm. Makes sense.02:24
jacseenwhat is launchpad 'branch format 7' really in bzr terms?02:25
spivjacseen: the branch format used by the "1.6" format option and newer, but branch formats aren't much of a compatibility issue.02:28
spivjacseen: it's the repository format that is usually the problem02:28
spivjacseen: it might be a bit confusing because the command-line options actually refer to combinations of working-tree/branch/repository formats, but I think Launchpad just shows the individual branch and repository formats.02:29
jacseenspiv and here I thought I had it almost figured out :P02:30
* igc heads off for a few days of holidays02:48
jacseenthank you all for the added information, eventually I'll know everything again. :p02:50
mac9416jacseen, then will come another big upgrade. :-)02:51
mwhudsonhere's a quiz03:38
NfNitLoop4203:38
mwhudsonwhat's going on here: http://pastebin.ubuntu.com/355857/03:40
thumperpoolie: ping03:44
pooliepong03:45
thumperpoolie: I have a bug03:45
thumperpoolie: see mwhudson's paste03:45
thumperpoolie: I'm trying to work out a summary03:45
thumperpoolie: the actual branches in the pastebin have moved03:45
thumperpoolie: but I have kept the branch for bug triage03:45
thumperpoolie: it is now lp:~launchpad-pqm/bzr-hg/broken03:45
poolieif in doubt, file a bug with the exception and the innermost function name03:46
pooliefrom -Derror03:46
thumperok03:46
pooliewith that stuff in the subject line, i mean03:46
poolieand the tracebac in the description03:46
thumperpoolie: https://bugs.edge.launchpad.net/bzr/+bug/50677703:48
ubottuLaunchpad bug 506777 in bzr "InvalidRevisionSpec: Requested revision: u'281' does not exist in branch" [Undecided,New]03:48
poolieok03:54
pooliethumper: is this urgent?03:58
thumperpoolie: no, I've worked around by making an unstacked branch03:58
pooliehigh?medium?03:58
thumperon the whole, it seems a little broken, so high04:04
thumperbut I also have that feeling about committing to a stacked branch04:04
lifelesswhat, that you can't ? :)04:06
pooliethumper: just in case jelmer did something weird in the history it might be useful to check that branch before pushing04:10
thumperpoolie: it works for an unstacked branch04:10
pooliei'll have a bit of a poke at it04:10
thumperlifeless: EPARSE04:10
lifelessthumper: commit to a stacked branch.04:12
thumperlifeless: as far as we are aware, if you have a stacked branch, you can't commit to it (except using a heavy weight checkout)04:13
lifelessthats right04:13
thumperwe want to commit directly to the branch04:14
thumperwe now have at least two different use cases in LP for this04:14
lifelesscool04:16
lifelesswould love to see that fixed ;)04:16
thumperpoolie: how do I go about increasing the priority of that?04:26
pooliewhich one? commit to a branch or log?04:27
spivcommit to a stacked branch (bug 375013) is already marked High, FWIW.04:28
ubottuLaunchpad bug 375013 in rosetta "Cannot commit directly to a stacked branch" [High,Triaged] https://launchpad.net/bugs/37501304:28
=== Sam__ is now known as SamB_XP
jacseenwhat does it mean when bzr claims a branch is 'format: unnamed'?  lp:~keryx-admins/keryx/devel/04:48
jacseenfrom 'bzr info'.04:49
jacseenwhat format should I use for a repo/branch in order to make it the same format to ease the merges?04:50
spivjacseen: try 'bzr info -v'04:54
spivjacseen: it just means that the combination of tree/branch/repo format doesn't match one you can name via the usual options (like --pack-0.92)04:54
spivjacseen: in this case,04:55
spivjacseen: --2a (i.e. the default format that bzr 2.0 creates) is fine04:55
jacseenstill 'format: unnamed'04:55
jacseenalright04:56
spivjacseen: oh, in fact that is regular combination, and just affected by a bug to do with 'bzr info' over the smart server protocol04:56
spivjacseen: -v shows extra lines like "repository: Remote: Repository format 2a ..." for me, but maybe that's not in 2.0 (I'm using lp:bzr)04:56
jacseenOookaaay, I won't try to understand taht one yet04:56
spivjacseen: as a workaround, you can use 'bzr info nosmart+lp:~keryx-admins/keryx/devel/' :/04:57
spivjacseen: sorry about that bug04:57
jacseenFormat:04:57
jacseen       control: bzr remote bzrdir04:57
jacseen        branch: Remote BZR Branch04:57
jacseen    repository: bzr remote repository04:57
spivYeah, the 2.1 betas do a little better there.04:58
jacseenmy main concern is, will my branches in 2a format cause extra headaches when merging back into the branches upstream?04:58
spivjacseen: no, 2a is exactly the right format04:58
spivjacseen: that branch is in fact in 2a format04:58
spivjacseen: there's just a bug with bzr info that stops that from being obvious :(04:59
SamB_XPjacseen: upstream of what ?04:59
spivjacseen: just to be clear, "upstream" here == lp:~keryx-admins/keryx/devel/, yes?04:59
jacseenis that why my bzr 1.16 complained bitterly about rich-root when I tryed merging pack-0.92 into that one?04:59
jacseenspiv yes on the upstream currently05:00
spivjacseen: yes, you can upgrade (and pull, merge, etc) from pack-0.92 into 2a, but not vice versa, because of rich roots.05:01
jacseenhmm interesting, I thought I was going that direction05:01
spivjacseen: 2a is a much better format than pack-0.92 (not just because of rich roots), and it's the default in 2.0, so I definitely recommend using it unless you have a good reason not to.05:01
jacseenon Keryx Project, lp:keryx, we were mainly using pack-0.92, but now with the admins changing/renaming the primary branches into stable/unstable, those are no longer in pack-0.92 it seems and is cuding slight conflicts when I try to branch them to have a local copy05:04
jacseenbut I upgraded to bzr 2.0.3, so now my branches are all 2a, so that should help my side05:05
spivYes, sounds like it should :)05:05
spivThings should be faster now, too :)05:05
jacseenspiv: great so now I have to finish rebranching all keryx branches and translate my code changes over. No problem. Solution found05:07
jacseenspiv: thanks05:07
spivjacseen: you're welcome, glad I could help.05:07
pooliehi spiv, all05:26
=== EdWyse_Mobile1 is now known as EdWyse_Mobile
vilahi all07:04
spivHmm, I think I'm close to having a working NEWS file merge plugin.07:06
bialixheya bzr07:23
spivWoo, it works.07:24
spivSo, that's a useful proof-of-concept for the per-file merge hook.07:25
spivAlso shows where things are a bit more cumbersome than necessary.07:25
* spiv submits07:25
spivOk, merge proposal submitted.  I'm done for the day.07:41
pooliecheerio spiv07:44
pooliehope we see you tomorrow :)07:44
pooliehi vila07:44
spivpoolie: who knows! :)07:44
vilahey poolie ! Thanks for your feedbackS on conflicts, replying now07:50
pooliethanks07:50
pooliei hope that didn't sound too critical07:50
vilanope, never :)07:51
vilaThe problem domain is complex anyway, so it's hard to find the small steps :)07:56
pooliewell, goodnight07:59
quicksilvervila: good morning08:16
vilagood morning quicksilver08:16
vilaI think I read you had a solution but not what that solution was :)08:17
quicksilvervila: I believe I have an approach which solves my problem.08:17
vilaquicksilver: and the approach is ?08:28
quicksilvervila: after the manually fixed poison revision, proceed up the history tree of the old (poisoned) branch08:32
quicksilvervila: for each revision which is merely a plain commit, use bzr replay to replay it.08:32
quicksilverfor each merge do the following:08:32
quicksilver1. bzr merge -r"revid:exact-revid-of-merge-source"08:32
quicksilver2. bzr revert . # discard those changes but keep them registered08:32
quicksilver3. bzr diff -rA.B.C..D.E.F > my.diff # get a copy of the diff which this merge should result in08:33
quicksilver3. patch -p0 < my.diff # apply most of it08:33
quicksilver5. for i in `egrep '^=== added' my.diff | awk -F"'" '{print $2}'`; do bzr add $i; done; # record the added files as added08:35
vilaThat should work except for the renames08:36
quicksilver6. manually process any binary files added or changed using bzr cat (binary files don't get included in the diff)08:36
vilaand the binary files, yes, 'bzr shelve' should help if called at the right time08:37
bialixspiv: cool! (re per-file merge)08:38
quicksilver7. egrep '^=== renamed' to identify any renames and process them by hand08:38
bialixhi spiv, vila08:38
vilahi bialix08:38
quicksilvervila: I thought about bzr shelve but couldn't work out how to use it for this.08:41
quicksilvervila: of course br bundle format would be ideal, but there is no way to say "act on the add/rename/modify directives in this bundle whilst ignoring the revids"08:42
vilathe poisoned revisions appears in the history of the branches you are merging from right >08:45
vilas/>/?/08:45
quicksilvervila: no, they don't08:47
vilaI don't understand why you do 2. bzr revert then08:47
quicksilvervila: because the merge causes large, complex conflicts.08:53
quicksilvervila: and the original developer resolved them08:53
vilaha, yes, of course08:55
quicksilverand I want to use his resolution, which lies in that diff.08:55
quicksilvergah. Now I have a conflict in a plain replay. This means I made a mistake, I think08:55
quicksilveroh well, it's getting more and more automated. I think I'll start again it will be faster now.09:00
vilaquicksilver: you should mail the list or file a bug against bzr-rewrite, we definitely needs that feature09:01
quicksilvervila: maxb thought it might be possible with his branch of rewrite but I couldn't make it work.09:02
quicksilvervila: this could easily be my fault :)09:02
vilaquicksilver: *how* you end up make it work is the interesting part :)09:03
vilaI'm sure maxb will be interested too :)09:03
* bialix hates such lame posts: http://community.livejournal.com/shlomif_tech/41922.html grr09:06
quicksilvervila: I will mail the list once I've got it all sorted. This is something of a crisis right now though.09:12
vilaquicksilver: Sure, I understand that09:13
=== timchen1` is now known as nasloc__
asabilquicksilver, I think bzr-rewrite doesn't support what you need yet09:40
asabilI started working on a bzr filter-branch command for bzr-rewrite a while ago, it only supported rewriting the commit messages and it never got merged09:40
asabilyou can also use bzr fast-export/fast-import09:41
asabilthey have the ability to filter out files09:41
quicksilvervila: hmm. No. I think my method is unsound after all.10:18
vila:-/10:19
quicksilvervila: when I do "bzr revert ." after the merge that reverts the added files10:19
quicksilverthen when I readd them manually10:19
quicksilverthey are flagged as coming in in *that* revision10:19
quicksilverrather than coming in in the revision they came in10:19
quicksilverwhich means they conflict on the next merge.10:19
quicksilverbecause bzr thinks they're different files.10:19
quicksilverI think really I want to only revert the conflicted files.10:20
quicksilveror, just bzr cat the conflicted files from the right revision.10:20
vilahmm, yes, you should preserve the file-ids10:20
quicksilveris there a way to instruct a merge always to give priority to OTHER?10:21
vilaif you have only text conflicts then bzr cat -rnnn FILE ; bzr resolve FILE, should to it10:21
quicksilverbzr cat -rnnn FILE > FILE, you mean10:22
quicksilverbut yes10:22
vilaquicksilver: There is a merge proposal about that for tree shape conflicts: https://code.edge.launchpad.net/~vila/bzr/conflict-manager/+merge/1678510:22
vilabut that doesn't address text conflicts where more cases are needed10:25
* quicksilver nods10:28
lifelessquicksilver: you shouldn't generally do 'revert .' - because that *keeps* the record of the merge10:29
quicksilverlifeless: but that's exactly why I'm doing it10:31
quicksilverlifeless: I need to keep the record of the merge10:31
quicksilverbut I don't want to do the hard work to resolve the conflicts again10:31
quicksilverso I want ot manuallly re-apply the previous conflict resolution.10:31
* rml waves at quicksilver10:31
quicksilvervila: for i in `bzr conflicts | egrep '^Text conflict in' | awk '{print $4}'`; do echo $i; bzr cat -r"revid:$MERGEID" $i > $i; bzr resolved $i; done;10:35
vilabzr pull --overwrite -r$MERGED ; bzr uncommit ; bzr shelve --all -m $MERGED10:38
vilaI think you can prepare the changes with that and then apply them after bzr revert .10:39
vilabzr resolve --auto should then get rid of the text conflicts10:40
quicksilvervila: I have a different approach, which is maybe equivalent.10:40
quicksilvervila: suppose X.Y.Z is the revision which merges $MERGEID (and possibly fixes some conflicts or adds some more code)10:41
quicksilvervila: first bzr merge -R"revid:$MERGEID"10:41
quicksilvervila: then resolve all conflicts in favour of $MERGEID10:41
quicksilvervila: now, bzr merge -rX.Y.Z10:41
quicksilvervila: and that applies the new changes but it "notices" the $MERGEID is already merged and so that's OK.10:41
quicksilvervila: seemed to work just now.10:41
vilacool, you'll get X.Y.Z as an additional parent though10:42
vilabut that may be better to show where you add to tweak your history10:42
quicksilveryeah, I don't really care about the extra parent10:43
vilaquicksilver: on the other hand if your merged branches are not poisoned why not just merged them as a whole ?10:43
quicksilverthe general soundness is more important )10:43
quicksilvervila: because of the conflicts?10:44
vilaha, hmmm, yeah, hard to tell from here if resolving them once is enough or if each branch brings its own set, so yeah 'bzr resolve --take-theirs' ftw10:45
vilathis is a case where you *knwo* you want the conflicts resolved in your wt as they were resolved in the merged branch, without thinking about it10:46
vilas/knwo/know/10:46
quicksilverah bother, it didn't work with file add/rename conflicts10:47
* quicksilver backtracks and thinks again10:47
vilaquicksilver: https://code.edge.launchpad.net/~vila/bzr/conflict-manager/+merge/16785 *implement* --take-theirs for add/rename conflicts !10:55
quicksilveryes, I saw it.10:58
quicksilver"bzr merge -rX.Y.Z" is a bad idea.10:58
quicksilverit brings the poison back in.10:59
vilaha, so the poison is in the other branches too then10:59
quicksilverno, X.Y.Z isn't the "other" branch11:02
quicksilverX.Y.Z was the bad branch anyway11:02
vilahow about 'merge -cX.Y.Z' then ?11:03
quicksilveroh, I didn't know about that one11:06
quicksilverwhat does  -c do? the help page isn't very detailed :)11:07
vilaI'm unsure about it in your particular case :) It's supposed to bring only the changes in the specified revision11:08
quicksilvervila: bzr merge -cX.Y.Z gives bzr: ERROR: exceptions.AssertionError: Unknown kind 'relocated'11:12
* vila bangs head on desktop11:12
vila2.0.1 right ?11:14
quicksilver2.0.3 actually11:14
quicksilverupgraded yesterday whilst tearing hair out11:14
vilaha, gee, I thought I went in the twilight zone for a second, I was sure we had the reverse conversation yesterday :-D 2.0.3 ? 2.0.1 actually11:15
vilaI'm 60% sure some bugs has been fixed in at least bzr.dev and may be bzr-2.1betaxx11:16
vilabut anyway, did you try the pull/uncommit/shelve trick ?11:17
vilaIt's supposed to record the actual changes for each revision so you'll get a poor-man replay, you can still insert some merge/revert . to set the parents11:18
quicksilvervila: No. I think I'll try that next.11:21
vilaquicksilver: remember that shelve is tight to the wt so be ready for some pull --overwrite to set the right wt or to copy/move the .bzr/checkout/shelf directory in the right place11:24
quicksilvervila: "wt" ?11:24
vilaworking tree11:24
* quicksilver nods11:25
quicksilverbut pull --overwrite complete nukes my branch history?11:26
vilanukes is a bit strong :) It makes your branch history the same as the one you're pulling from11:29
vilaand also updates the wt11:29
quicksilvervila: but I don't want to lose the branch history, do I?11:33
quicksilveror are you suggesting a use an auxiliary working tree and merge between11:34
vilayup, when in doubt, always use a scratch monkey11:34
quicksilvervila: in particular, a bzr pull --overwrite will pull the poison back in.11:34
vilayes, but it shouldn't pollute the shelved changes11:34
vilawhen all your changes are ready, you can then, bzr pull --overwrite -r<clean_revno> ../<dirty branch> and start from there11:35
vilapull --overwrite -rrevno, gives you a branch and a  working tree exactly as they were after the commit that created revno11:37
quicksilversomething in the help page for shelve implies that it only applies to text changes though11:37
quicksilverso it won't fix my rename / binary problems?11:37
vilaif you uncommit/shelve, you should get unpoisoned changes from that11:38
vilafile a bug about that, shelve in bzr -core was rewritten from scratch to address shel from bzrtools relying on patch11:39
vilaif you get the wrong impression there, the doc should be fixed11:39
quicksilverRight.11:40
quicksilverSo, I need one shelf per merge?11:40
quicksilveruncommit each merge point to a shelf11:40
quicksilverthen pull a clean revision11:41
quicksilverand unshelve one merge at a time11:41
quicksilverwell, (bzr merge ...; bzr revert.) to set the parent11:41
quicksilverand then unshelve the shelved version of the merge changeset on top11:41
vilathat's the idea11:42
quicksilverdo shelves show up as a single change11:42
quicksilveror do they look like a merge?11:42
vilathink of shelves as you think about patches11:43
vilayou add or subtract them from a working tree, no merges or commits are involved11:44
quicksilverso I still want to replay the non-contentious revisions11:44
quicksilverif I want to keep as much of the history as possible11:44
vilabe careful to not bring back poisoned revisions though, even if the poisoned file is not in your mainline revisions setting a poisoned revision as a parent will still reference it in the repository11:45
vilaso while you can get back the changes from the poisoned branches, you can't get their full history11:46
quicksilveryup11:48
quicksilverwell replay makes new revisions, it doesn't reference poisoned ones11:48
quicksilverI guess replay is a bit like the uncommit/shelve/commit trick for a single revision.11:49
vilayup, simpler, otherwise you have to come up with some mapping for the merged revisions11:50
quicksilvervila: right. So basically your point is that shelves > diffs, because shelves can include renames and binary files etc.11:53
quicksilvervila: that makes sense but I kind of coped with renames and binary files anyway although it was a little painful.11:53
quicksilvervila: however it *doesn't* solve the file-id problem for added files.11:53
quicksilver(bzr merge -r$MERGEID; bzr revert .) is broken because it loses the file-ids for files added in that merge.11:53
quicksilversimilarly, if you shelve an uncomitted merge, you lose the file-ids, surely?11:55
vilano, shelve should preserve the file-ids12:00
quicksilverah, OK12:00
quicksilverin that case perhaps I can see how to make this work12:01
quicksilverusing two branches12:01
quicksilverI mean, two working trees12:01
quicksilverone working tree stays clean and I replay along it for the simple revisions.12:01
quicksilverwhen I get to a merge, I use a dirty working tree to pull to the merge, uncommit it, shelve it12:01
quicksilverthen pull --overwrite to get the *clean* tree in12:02
quicksilverand unshelve that merge12:02
quicksilvervila: is that what you suggest?12:02
vilaerr, no, I suggest preparing all the shelves  first in wt-dirty, then move them to wt-clean and apply them there when needed12:04
vilabut you get the general idea yes12:04
vilaquicksilver: lunch time here, I'll be back in ~1 hour, anything urgent before ?12:05
maxbUnder what circumstances does bzr-svn need to build a fileidmap-v3.knit ?12:05
quicksilvervila: no, thanks for all your help12:05
vilaquicksilver: youre' welcome, keep giving feedback12:06
quicksilvervila: of course, each time I branch/pull a bad revision it takes ages and uses up all my machine's memory, but that's life I suppose12:23
quicksilvervila: when trying to shelve a complex merge : bzr: ERROR: Tree transform is malformed [('versioning no contents', 'new-150')]12:34
quicksilvervila: even if I commit and uncommit it's no better12:38
quicksilverapparently some kinds of change can't be shelved...12:38
=== mrevell is now known as mrevell-lunch
quicksilverand to whoever it was who was suggesting fast-export12:48
quicksilverI read that fast-export / import roundtrip discards file-ids12:48
quicksilverso that's not the answer12:48
quicksilveralthough I read some bug reports to suggest it *does* have file-ids12:50
quicksilverhmm12:50
quicksilverwell, I'll try it.13:00
vilaquicksilver: you got malformed transform while shelving a wt without conflicts ?13:03
quicksilvervila: yes.13:05
vilaquicksilver: internally shelve is supposed to serialize an intermediate representation that supports everything bzr support (bar conflicts and pending merges I think)13:05
quicksilverah well there was a pending merge.13:05
quicksilverbut that's the point of what I'm doing isn't it13:06
vilahmm, no, you want only the changes themselves, not the parents or at least not the poisoned ones and you're supposed to fake the others anyway13:07
quicksilverwell, this wasn't a poisoned one.13:07
quicksilverbut how do I get the changes from a merge without the pending merge?13:07
quicksilveryou said to go to the next revision, uncommit, and shelve :)13:07
quicksilverif I do that, I have a pending merge13:07
vilapull --overwritw/uncommit/shelve13:07
quicksilveryes, but if the thing I uncommit is a merge13:07
vilaoh, wait13:07
quicksilverthen I have a pending merge after the uncommit13:08
quicksilvernaturally.13:08
quicksilverincidentally, bzr fast-export eventually runs out of memory and dies.13:08
vilapull --overwritw/uncommit/bzr revert --forget-merges/shelve13:08
vilasorry about that, silly me :-/13:08
quicksilverah13:09
quicksilverI also had a problem where pull --overwrite pivoted the tree13:09
quicksilverso that uncommit did the wrong thing13:09
quicksilverso I had to re-merge to get the right "mainline"13:09
vilapull --overwrite always does that, it really puts you into the state when the revision was committed13:10
quicksilverI know13:10
quicksilverI understand why, I was just remarking13:10
quicksilverbecause the tree I'm recovering is a far-right branch13:10
vilaI find qlog really helpful for that13:10
quicksilveroccasionally I need to pivot the line13:10
quicksilverbut that's OK, I'm used to this.13:11
quicksilverI'm still getting bzr: ERROR: Tree transform is malformed13:11
quicksilvereven after a --forget-merges13:11
vilaoh, ok, hard to visualize from here :-//13:11
quicksilverso I have a bunch of uncommitted changes in my 'dirty' wt13:11
quicksilverthey are essentially the changes corresponding to a merge13:12
quicksilverbut they have forgotten about the merge13:12
quicksilverbecause I did --forget-merges.13:12
quicksilverand I still can't shelve them :(13:12
vilathat's weird, shelve and commit are supposed to use the same code... can you commit ?13:12
quicksilverYes, I can13:13
quicksilverI tried commit/uncommit at one point13:13
quicksilverjust to make sure nothing odd was doing on13:13
* quicksilver does it again13:13
* vila bangs head on desktop again13:13
quicksilverYup.13:13
quicksilverI can definitely commit fine.13:13
quicksilverand after I comment "bzr st" says the tree is clean13:14
quicksilver(that is, it says nothing)13:14
quicksilverand I can uncommit again, and shelve crashes again :)13:14
vilauncommit/shelve from there ?13:14
quicksilveryes, I just did. It crashes.13:14
vilaanything suspicious in bzr st ?13:15
quicksilver10 files removed, 40 added, 1 renamed, 80 modified13:15
quicksilvernothing out of the ordinary though13:15
quicksilveralthough it certainly is a big merge13:16
vilahaystack...13:16
maxbI think the best way to do this would be to fast-export | fast-import *JUST* the changes after the poison revision13:17
quicksilvermaxb: fast-export crashes on all poisoned revisions.13:17
quicksilvermaxb: the poison is too much for fast-export to take.13:17
maxbugh13:17
maxbHow many poisoned revisions are there, about?13:17
vilaquicksilver: you've got quite an assassin in your team...13:18
quicksilverPython(43161) malloc: *** mmap(size=691982336) failed (error code=12)13:18
quicksilver*** error: can't allocate region13:18
quicksilver*** set a breakpoint in malloc_error_break to debug13:18
quicksilverbzr: out of memory13:18
quicksilvermaxb: just one.13:18
maxbAnd are there valuable changes in the same revision as the poison?13:18
quicksilveryes13:18
maxb:-/13:18
quicksilverbut I reconstructed that one revision by hand easily enough13:18
quicksilverbzr uncommit; bzr rm big-file; bzr commit -m"<copy-paste-long-commit-message>"13:18
quicksilverthat was the easy bit.13:18
quicksilverthe hard bit is replaying the future.13:19
maxbRight, well what I would do is to branch just before the poison. Manually reconstruct and recommit that one rev. And fast-export / fast-import the subsequent revisions13:19
quicksilveryou can fast-export just a revision range?13:19
quicksilverI didn't know that.13:19
vilaargh, I thought that was the failing run !13:19
maxbIn order to make fast-import append to an existing history, it's likely going to be necessary to use --export-marks and --import-marks with manual editing of the revid in the marks file13:20
maxbAlso you're likely going to have to fix up the marks file because of a bzr-fastimport bug, where fast-import and fast-export use slightly different syntax in their marks!13:20
quicksilvervila: ?13:21
vilaI thought you tried fast-export with a range and it crashed, it's worth a try I think (but no first hand experience with it here)13:22
quicksilvermaxb: well, fast-export with a range is certainly very fast.13:23
vilamaxb: the file-ids will be preserved right ?13:23
maxbI'm hoping they will for existing files13:23
maxbWhich should be good enough13:23
maxbI admit to not really being sure13:23
quicksilverI don't see any file-ids in the .fi file13:24
maxbCorrect13:24
quicksilvermaybe I'm looking in the wrong bit13:24
maxbI'm hoping that it will necessarily have to match onto the existing files by path13:24
quicksilverwell some of the conflict resolution at merges is where files collide13:24
quicksilverso the resolution to the conflict is to rename one13:24
quicksilverso it's pretty import to preserve that part of conflict resolution.13:25
maxbAh. I have no idea how well that will work, then13:25
maxbI don't know enough about the guts of fastimport to understand what it will do here13:26
quicksilverwell no harm trying it13:27
vilaquicksilver: everybody involved in on OSX ? (Trying to rule out some path encoding problems)13:27
quicksilverI have the fast export file.13:27
quicksilvervila: no, mixture of OSX/linux13:27
quicksilvervila: although the author of the problem branch is on OSX and so am I13:27
maxbquicksilver: Did you --export-marks=somefilename?13:27
quicksilvermaxb: yes.13:27
quicksilvermaxb: just making a branch of the "manually fixed-up" revision to try to import into.13:27
maxbquicksilver: I think that two manual edits to the marks file will be needed13:28
maxbFirst, check whether all the data lines (line 3 and onwards I think) start with a colon. If they don't, it's a bug, and you'll need to edit to fix that13:29
quicksilverno, they all start just with a number13:29
quicksilveradd colons to all?13:29
maxbYes13:29
quicksilverdone13:30
maxbSecond, if you look at the first commit in the .fi file, and see what its "from :XXX" line says - and then change the corresponding mark's revid to be the revid of your un-poisoned revision that you want to play history on top of13:30
quicksilver(hurrah for C-x r t)13:30
vilaquicksilver: hehe13:30
maxb(also hurrah for vim visual block mode :-) )13:30
quicksilverthere isn't a from13:30
vilaC-x r : useless until you need it and soooo nice then13:31
quicksilverthe second commit is "mark :2" and "from :1" but the first commit has no from line.13:32
maxbquicksilver: umm?! No from, no merge :XXX either?13:33
quicksilvernope13:33
quicksilvercommit, mark, committer, data, (the commit message) and then the actual changes start13:33
maxbOh, on an unrelated note, you probably want to export with --no-plain13:35
maxbOK, change of idea re the marks13:38
maxb*Add* a line reading "from :1000000" to the initial revision13:38
maxb*Delete* all the data lines from the marks file, and replace them with one saying :1000000 revid-of-revision-that-should-be-new-parent13:39
=== mrevell-lunch is now known as mrevell
quicksilverhmm ok13:40
quicksilver13:40:25 Starting import of 50 commits ...13:40
quicksilverABORT: exception occurred processing commit :113:40
quicksilverbzr: ERROR: exceptions.KeyError: ':1'13:40
* rubbs is confused... is repository surgery being performed?13:41
quicksilverrubbs: sadly not.13:42
quicksilverrubbs: would like to, though.13:42
vilarubbs: kind of, lossy rebuild instead13:42
quicksilvervila: the reason I did a full fast-export the first time around, by the way, is that I read this is actually a documented purpose of fast-export ;) -x to exclude a CD image added in error.13:43
quicksilvervila: not much use if it gives out of memory when processing the file though.13:43
quicksilverand I have a suspicion it will kill all the file-ids making it unmergeable.13:43
vilabug filing time again :-/13:43
* quicksilver doesn't even know which parts of what's going on are bugs.13:44
quicksilverpresumably the uncommit which I can't shelve is a bug.13:45
quicksilverI think I'm going to have to revert to slow replay approach.13:45
rubbsah... gotcha... I'll just sit back and watch. This is fasinating(sp?)13:46
vilathat's one yes, abentley may have an explanation about what kind of change can be committed but not shelved13:46
vilafast-export blowing out memory may be one too (but it may be a dupe of the one you get with bzr itself)13:46
quicksilveryes13:47
maxbquicksilver: What's the first occurrence of :1 in your fi file?13:47
quicksilverand some operations don't crash13:47
quicksilver(which is just as well, because otherwise this branch would be totaly useless)13:47
quicksilversome operations give the memory error but still succeed13:47
quicksilverwhich I find fairly mysterious.13:47
quicksilvermaxb: mark :1 near the top13:48
maxbhuh13:48
quicksilvermaxb: line 5, after 3 "feature" lines, and one "commit" line13:48
vilaquicksilver: As said yesterday, 2.1 fixed several memory issues, that could help13:48
maxbquicksilver: pastebin the stacktrace?13:48
vilaquicksilver: quick check, you still use *only* 0.92 branches right ?13:49
quicksilvermaxb: http://pastebin.com/d6f95e4cf13:49
quicksilvervila: these fastimport tests are in a 2a branch13:50
quicksilvervila: in fact, probably all the fixup work has been in a 2a branch13:50
quicksilverone of the first things I did was upgrade the branch13:50
quicksilverbecause, initially, I thought that might solve the problem.13:50
vilaok13:50
* vila strike yet another cause13:51
* maxb confused, sorry13:52
maxbafk for a bit13:52
quicksilverif 2.1 fixes bzr-fastexport so that it works even on the huge file, then one solution would be to bzr-fastexport *all* my branches, including the non-poisoned one13:52
quicksilverand then reimport them all, thus retaining their relationships13:53
quicksilver(using -x to remove the bad file at export time)13:53
quicksilverbut that's a big if.13:53
vilayeah :-/13:55
quicksilvervila: OK, in the absence of other smart ideas, I'm going to return to "replay, remerge, and carefully re-resolve conflicts"14:02
quicksilverI may even use rsync.14:03
vilawithout looking at your data, it's hard to understand what makes shelve crash :-/ rsync/bzr st/bzr diff should help you validate your changes...14:04
quicksilvervila: I'm inclined to guess that fixing shelve is not the shortest path to my solution ;)14:05
vilafixing it now, working around the problem, may be...14:05
vilas/now/no/14:05
vilaor... bzr pull -overwrite -r<some revno> in wt-dirty ; cd wt-clean; bzr merge ../wt-dirty ; bzr revert --forget-merges ?14:08
vilahmm, will not allow you to set the parents...14:10
quicksilverthat is essentially what I've been doing, yes.14:10
quicksilverexcept I didn't bother to pull --overwrite wt-dirty14:10
quicksilverI just specified the -r in the bzr merge14:10
quicksilversince it's sufficine for <revno> to excist somewhere in wt-dirty's history to be able to merge it.14:10
vilayeah, sorry looping :)14:11
quicksilverI'm running bzr reconcile in both working trees on a hunch14:12
quicksilveralthough I'm pretty sure I did that yesterday14:12
* vila discovers hunch meaning in that context...14:14
maxbPersonally I think the best way to resolve this would involve hacking on bzr-rewrite until replay could actually follow a branched history14:16
vilamaxb: sure14:16
vilabzr-rewrite or fastexport, but we definitely needs a nuke-that-file-yes-I-know-my-history-will-change command14:17
doctormoif remote_branch.bzrdir.spout is used for doing a typical `bzr branch` to get code for modification, what's the equiv code for `bzr checkout` with the lightweight option?14:27
Kinnisonremote_branch.create_checkout(targetlocation, revid, lightweight, acc_tree, hardlink)14:30
Kinnisonappears to be the critical bit of bzrlib/builtins.py:cmd_checkout():run()14:30
quicksilvervila: OK, I was wrong about one thing. My dirty-wt was in knit format.14:31
quicksilvervila: whilst my clean wt was in CHKCHK format14:31
quicksilvervila: do you think that might have been relevant to anything?14:31
vilaquicksilver: well, numerous differences between 0.92 and 2a, so worth retrying the shelve with 2a14:32
* quicksilver nods14:32
* vila crosses fingers14:33
quicksilverI note that reconcile is pretty fast with knit and dog-slow with chkchk14:33
quicksilverthe two chkchk reconciles I started are still running.14:33
vilathe later is doing far more checks14:34
quicksilverand they've both hit the out-of-memory error14:36
quicksilvereven the so-called clean one14:36
quicksilverbut even that clean branch has poison in its *repository*14:36
quicksilverjust not in a reference revision.14:36
quicksilverso if reconcile touches the non-referenced revisions, that's not surprising.14:36
vilait is14:36
* quicksilver wonders how long bzr upgrade will take in the poisoned repo.14:40
doctormothanks Kinnison14:40
vilaquicksilver: you can try to branch in repo that already contains the poisoned revision...14:41
quicksilvervila: do you think it matters if it's an 'unnamed' combination as long as the repo format is rich root/group cmp/chk inventories?14:41
quicksilveroh, it's done anyway.14:41
quicksilvergood14:41
vilahmm, I don't think so14:42
quicksilvervila: bzr: ERROR: Tree transform is malformed14:49
quicksilverso even in 2a, this merge is unshelvable14:49
viladamn14:50
=== CardinalXiminez_ is now known as CardinalFang
quicksilverso, back to plan D. Merge carefully, resolve conflicts carefully. *sigh*14:56
vilaquicksilver: can you keep that unshelvable tree somewhere ?14:56
quicksilvervila: I have around 50 copies of it so far :)14:58
quicksilvervila: it seems unlikely I'll lose them all.14:58
vila:-) :-/14:58
=== deryck_ is now known as deryck
teknicohi esteemed colleagues, everyone :-) got a problem with bazaar, not sure what's going on, any ideas? https://bugs.launchpad.net/ubuntuone-storage-protocol/+bug/50697415:02
ubottuLaunchpad bug 506974 in ubuntuone-storage-protocol "Bazaar traceback when running "make link-sourcedeps"" [High,Confirmed]15:02
vilateknico: did you run 'bzr check' ?15:04
teknicovila, no, I'll do it now in a number of places :-)15:04
vilateknico: also the 'No handlers could be found for logger "bzr"' is... unexpected and may indicate that you can't write to $HOME/,bzr.log which in turn may contain relevant information about the problem15:05
teknicovila, .bzr.log is regularly written to, I looked at it, it doesn't record anything when there's one of those crashes15:06
vilaanything relevant or anything at all ? You should at least find your commands there15:07
teknicovila, yes, I meant in that specific cases, it records output for all other commands15:08
teknicoin *those specific cases15:08
vilasorry, I should be dumb, you mean it doesn't record that command (but it records all the other ones ?)15:09
vilateknico: ^15:10
teknicovila, yes, that's what I was trying to say, sorry :-)15:11
vilathat means bzr is running under a different uid ? SO maybe it *can't* write to the repo leading to the error15:11
teknicovila, different uid? no, why do you say so?15:14
vilateknico: if it can't write to .bzr.log, something weird is going on like running under a different uid, but there may be other causes15:15
teknicovila, bzr does write to .bzr.log, except when it crashes, it doesn't, but it seems only natural :-)15:16
vilateknico: not at all natural, every command is logged far before a crash can occur15:17
teknicommm15:18
vilateknico: what is utilities/link-external-sourcecode ? (first line in the traceback)15:18
vilaoh wait, you're using bzrlib directly ?15:18
vilateknico: does your script calls bzrlib.trace.enable_default_logging() ?15:19
teknicolet me check that script15:20
vilamorning jam ;D15:20
jammorning vila15:20
teknicovila, no, it doesn't15:21
jamteknico: then it won't write to ~/.bzr.log :)15:21
jamgood catch, vila15:22
vilajam: do you have any idea why a 'bzr uncommit' followed by 'bzr shelve' may crash with bzr: ERROR: Tree transform is malformed [('versioning no contents', 'new-150')] ?15:22
jamvila: well, shelve doesn't handle stuff like changing the tree root id15:22
jamI don't know of other specific reasons15:22
jamthe error above looks like it is trying to remove an empty file?15:23
vilasomething related yes, quicksilver does that rings a bell ?15:23
quicksilverI think there might have been an empty directory15:23
quicksilverI don't think there were any empty files.15:23
quicksilverwhat is the best way to get the file-id of a file?15:23
vilayeah, better, an empty file *can* be versioned right ?15:24
quicksilver(am now trying to follow through my conflicts)15:24
vilaquicksilver: ready to dive into pdb ?15:24
vilaoh, for conflicts that's different15:24
vilabzr st --show-ids ?15:24
quicksilverbzr st doesn't seem to say anything about untouched files15:25
quicksilverwhich is annoying15:25
quicksilverit will tell me the ids of modified or renamed files, yes15:25
vilawhy would you want to know the file-id otherwise ?15:25
quicksilverso I can work out how a conflict was resolved15:26
vilabzr st -r<right parent>..<trunk> --show-ids15:26
quicksilverit's just one particular files I want the id of15:26
quicksilver(well, two)15:26
quicksilverso I can see which copies got kept and which got renamed.15:27
quicksilverI'll just md5sum them :P15:27
vilagoing tricky are you ? bzr st -r<right parent>..<trunk> --show-ids FILE15:27
jamquicksilver: bzr inventory file --show-ids I believe15:27
jamor "bzr ls --show-ids" if you can use that15:27
=== AnMaster_ is now known as AnMaster
quicksilverbzr ls only works on directories apparently15:28
jamI think it is supposed to work on more, but is broken for files on Windows at least15:28
vilaquicksilver is on OSX15:28
quicksilverbzr inventory works :)15:28
quicksilverthanks jam.15:28
vilajam: can your fix for #494269 be relevant for a case where shelve crashes while commit works ?15:32
jambug #49426915:32
ubottuLaunchpad bug 494269 in bzr/2.0 "tree transform cannot change root id" [High,Fix released] https://launchpad.net/bugs/49426915:32
jamvila: its a possibility15:32
jamcommit can handle root-id changes15:32
jamhowever, revert pull and update *didn't* either15:32
quicksilverjam: what's a root-id change?15:33
quicksilverhow can I deduce whether it applies to my case?15:33
jamquicksilver: it is when the file id assigned to "" changes (the root of your tree)15:34
jamit is unlikely to be the case15:34
jambut if you did "bzr init" 2 times in different directories, and then tried to merge those branches15:34
quicksilverah, I don't think so, no.15:34
jamit could15:34
quicksilvernope, never did that.15:34
quicksilverthis was just a commit which was a big merge15:34
quicksilver(including additions, deletions, renamings and modifications)15:35
jamquicksilver: you're the one hitting "versioning no contents" ?15:35
quicksilveryes15:35
quicksilverI can commit/uncommit it merrily as many times as I want15:35
quicksilverbut I can't shelve it15:35
quicksilverwhich is a shame, because vila's evil hack for replaying merges on an alternate history depends on copying shelves around.15:35
jamI just suspect a bug in the shelve code, not passing something along to the transform15:36
jamspecifically, that happens15:36
jamif we call "create_path()" but no "create_contents()"15:36
jam(or create_directory, etc)15:36
jamI don't know exactly how to reproduce, but I'll poke around a bit15:36
jamin the meantime, sounds like a bug :)15:36
quicksilverunfortunately I don't know exactly how to reproduce without giving the repo which I'm not at liberty to do :(15:38
jamquicksilver:  it also sounds a little bit like it would involve a file or directory which is deleted in the tree15:38
jamquicksilver: you could at least give the output of "bzr status -r -2..-1" after the commit15:38
jamso we get an idea of what delta the shelver is trying to undo15:39
jampoking around the transform code, the number of places where it would look up the data is pretty convoluted15:40
jamso having a reproducible test case would help tracking down where the bug is15:40
vilajam: it's an uncommit after a merge, 'bzr st' alone should be emough no ?15:40
vilayeah emough :)15:41
jamvila: uncommit + status should be equivalent to commit + status -r -2..-115:41
jamExcept I don't think the latter mentions pending merges...15:41
vilaoh yes, missed the context15:41
jamand adding a pending merge could certainly complicate things15:42
vilajam: quick silver is trying to shelve the changes that represent the merge + the conflicts resolution though which complicate things15:43
jamvila: certainly. I'm pretty sure it is just an edge case that we aren't handling correctly.15:44
jamI'm guessing it is a bug in shelver15:44
jamthough, tbh, uncommit/commit don't invoke TreeTransform either15:44
jama better test is15:44
jambzr commit15:44
jambzr branch -r -2 ../other15:44
jamcd ../other15:44
jambzr pull ../orig15:44
jamsince that requires applying the transform to the working tree15:45
jamthough I would be pretty surprised if that failed15:45
jamthen15:45
jambzr pull ../orig -r -215:45
jamwhich backs out that change15:45
jamoh15:45
jamyou need15:45
jambzr pull ../orig -r -2 --overwrite15:45
jam(so that it actually steps backwards)15:45
vilayeah, sounds like what quicksilver is doing, then, bzr uncomit and from there commit works shelve crashes15:46
teknico_vila, "bzr check" pointed out another problem, not sure it's related though: https://bugs.launchpad.net/bzr/+bug/50704015:52
ubottuLaunchpad bug 507040 in bzr "Crash during "bzr check"" [Undecided,New]15:52
=== deryck is now known as deryck[lunch]
vilateknico_: the missing antoniolenton@gmail.com-20090420134023-q7gh2mem413kr4iz is from 2009/04/20, any conversion since then ? Any stacked branch involved ?16:00
teknico_vila, yes, we converted the repo to 2a format a few months ago, and yes, that repo is a top stacked one16:02
vilateknico_: can you attach the relevant .bzr.log part to the bug ?16:03
teknico_vila, there's only the same traceback that's already in the crash log16:05
vilateknico_: is it the same repo than bug #506974 ? Oh damn, I thought check outputs more details in .bzr.log16:06
ubottuLaunchpad bug 506974 in ubuntuone-storage-protocol "Bazaar traceback when running "make link-sourcedeps"" [High,Confirmed] https://launchpad.net/bugs/50697416:06
vilateknico_: and is it the only repo failing the check ?16:06
=== beuno is now known as beuno-lunch
teknico_vila, no, it's not the same repo, and the check stops at that error, no other errors previously16:07
vilateknico_: can you do 'bzr st -c revid:antoniolenton@gmail.com-20090420134023-q7gh2mem413kr4iz' ?16:09
teknico_vila, output: bzr: ERROR: No WorkingTree exists for "file:///home/nl/canonical/ubuntuone/.bzr/checkout/".16:10
vilameh, can you do it from a working tree ? Or do 'bzr diff -c revid:antoniolenton@gmail.com-20090420134023-q7gh2mem413kr4iz' instead ?16:11
vilaI'm just trying to verify if we can access that revision one way or another16:12
vilas/verify if/verify that/16:12
teknico_now it's: bzr: ERROR: Not a branch: "/home/nl/canonical/ubuntuone/.bzr/branch/".16:12
teknico_it's the top of a stacked repo, there's no working tree of it16:13
=== sdboyer is now known as sanchopanza
=== sanchopanza is now known as sdboyer
NfNitLoopHrmm, is Hrmm, is 'bzr svn-push' now just 'bzr push <svnURL>'?16:14
vilateknico_: there should be some branches below, go in any of them, I can't see which one is involved (that may be in .bzr.log though)16:14
teknico_vila, the error in #507040 is in the top repo16:16
teknico_however, I'm more interested in the error in #50697416:16
vilateknico_: can you explain your layout a bit ? Are all your branches sharing the same repo with branches stacked on different branches ?16:18
NfNitLoopHrmm, is there a way to see a log of the pending merges?16:19
vilateknico_: did you had the bzrlib.trace.enable_default_logging() call to your script ? Did that outputs something in .bzr.log ?16:19
teknico_vila, no, the script does not call that16:19
vilaNfNitLoop: 'bzr st -v ' ?16:20
vilateknico_: can you add it then so we know what it is trying to say when the 'no loggers found' message is emitted ?16:20
teknico_vila, I have a top ubuntuone stacked repo, and below it there's trunk, and other branches branched from trunk16:20
teknico_the error in #506974 is in a completely different repo16:21
=== Adys_ is now known as Adys
NfNitLoopvila: that shows me a one-line summary of the commit messages...16:24
NfNitLoopnot the full commit.  Nor the files changed in that commit.16:25
NfNitLoopI sortof want 'bzr log -v' behavior, but on the commits I merged in.16:25
NfNitLoopbut they hvaen't been committed locally yet, so they don't seem to show up in bzr log.16:25
vilaNfNitLoop: is 'bzr qlog' an option ?16:26
NfNitLoopOh well.   I know where they occurred in the source branch so I just did bzr log on that.  But if history had been odd, that would've been a pain. :p16:26
teknico_vila, thanks for the help, I have to go now16:26
vilateknico_: update the bugs if you collect more info16:27
teknico_vila, I will16:27
NfNitLoopqlog is nice.  Though, will it show pending merges?   *Shrug*  too late, already committed. :p16:27
NfNitLoopSooo glad I got bzr-svn working with our repo. :p16:30
jamvila: what is the status of https://code.edge.launchpad.net/~kamil-szot/bzr/non-ascii-chars-in-ftp-filenames/+merge/1701216:34
jamI'd like to knock it out of the review queue, but are we waiting for feedback from kamil?16:34
jamvila: also, can you give a second review on https://code.edge.launchpad.net/~nmb/bzr/script-test-mv/+merge/17269 ?16:35
vilajam: I think it's fine putting kamil's mp to wip while waiting for feedback16:36
jamwell, I'm thinking it really needs "Rejected" since we fixed it a different way16:36
jam(that way WIP doesn't get full)16:36
jamI hesitate to wield the big hammer, though16:37
rubbsNfNitLoop: if you do a qcommit rather than commit it will show pending merges.16:37
vilayeah, then a comment explaining that it's rejected because the tried approach is not appropriate then to make the hammer softer :D16:37
vilaNfNitLoop: yes it shows pending merges, I use it a lot when merging up to copy/paste part of the commit messages16:38
jamvila: well, I'd like confirmation that upload + ftp is actually fixed16:39
vilajam: the test I *added* to bzr-upload should cover that for bzr-core, all the transport methods used there are now covered16:40
vilajam: I (wrongly) relied on bzr test suite for the first patch16:40
jamvila: what is the missing bzrlib test ?16:41
jamIt sounds more like bzr-upload was supplying an invalid path16:41
vilait was suppyling unicode paths instead of urlutils.escape()'d paths16:41
jamwhich, tbh, was probably part of the original design (4?) years ago16:42
jamI spent a lot of time making Transport work with non-ascii16:42
jamonly to end up with us never using it in bzrlib ...16:42
vilaso there are no missing tests in bzr since we use ascii paths... wait... we *may* add more tests that we support unicode paths for the directories containing the branches...16:42
vilajam: I think some users may use it for their path to .bzr16:43
jamvila: the root path should be a URL16:43
jamand we ~ don't care16:43
jamit should work16:44
jambut Transport shouldn't directly be munging that part of the URL16:44
jam(I think...)16:44
jamanyway, for HTTP transports we wanted to make sure not to touch anything but the part we control16:44
vilait doesn't but it should receive url encoded paths, bzr-upload was violating that assumption16:44
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
vilaoh no, where is my day gone !!!17:25
vilajam: reviewed and pqm'ed17:25
fullermdI ate it.  I'm sorry.17:28
quicksilvervila: I ate it with my demon repo, sorry.17:28
vilaquicksilver: how is it going ?17:29
quicksilvervila: I've had other things to do in the mean time, but a hybrid replay/merge/rsync approach looks like it will work.17:29
vilashame we can't do better :-/17:29
quicksilverseems like "repacking texts" results in the occasional very slow commit.17:36
vilaquicksilver: that's expected, should occur every 10, 100, 1000 commits, look at .bzr/repository/packs sorted by size and you should get the idea17:37
* quicksilver nods17:37
quicksilverfine, just checking17:38
quicksilverwell remarking rather than checking17:38
quicksilvervila: initially disconcerting because I worried that it indicated I had actually merged the poison in since it was so slow17:38
* vila nods :D17:39
quicksilvervila: always takes me longer than I'd like to discover the correct selection of rsync options, too. For some reason I'm unable to remember rsnc commandline syntax17:40
vilaquicksilver: me neither, that's why I put them in scripts and under version control17:41
vilabut I'd bet you want to start with '-av --delete' here and then carefully read the help about what -a is aliased to :)17:43
quicksilverI didn't want a, in fact.17:45
quicksilver-i --checksum --delete17:45
quicksilver--dry-run, of course17:45
quicksilver-r17:45
quicksilveroops. the bad file is in the repo, this repacking is throwing memory errors17:47
quicksilverhopefully it's just garbage17:47
* quicksilver branches to test17:48
vilajam: can any of your memory fixes be relevant here ? A repack, even with a 600M object shouldn't reach the 2GB peak no ?17:49
quicksilvercuriously the repack does succeed even with the error17:49
vilaquicksilver: the poison is a *text* file right ? And the size is ?17:50
quicksilverwell it claims to succeed17:50
quicksilvervila: yes, 600M text.17:50
quicksilvervila: phew. branching it has sane size. the posion is not in a reference revision ;)17:59
vila\o/17:59
rubbswell done18:22
* rubbs applauds.18:22
vilaquicksilver: was it the final reconstructed branch or just an intermediate one ?18:33
=== methods is now known as Guest42852
cody-somervilleeverytime I commit a change, I get an error about inconsistent details in skipped record.19:15
cody-somervillehttp://pastebin.ubuntu.com/356189/19:16
NfNitLoopAre there any major differences between 'bzr checkout' and 'bzr checkout --lightweight' if you're checking out from and into the same shared repository?19:32
NfNitLoopMy assumption is... no. :p19:32
quicksilvervila: almost final.19:32
quicksilvervila: no merges left so remaining replays should be trivial. I just got busy.19:33
doctormoHow would I get the parent_location or transport from a branch?19:53
NfNitLoopYay, think I got another coworker interested in using bzr(-svn) here. :)20:23
* NfNitLoop just wrote a wiki page with recommended workflow for working w/ our repo. 20:23
NfNitLoopI had to make some tiny changes to allow working with our SVN repo.20:25
NfNitLoopI Just stripped the places that check for backslashes in file names.20:26
NfNitLoopsince at one point in history we had a file in the repo with backslashes in its name.20:26
NfNitLoophttps://code.launchpad.net/~cody-casterline20:26
NfNitLoopare my changes.20:26
NfNitLoopSomeone said they might break other things, but I haven't had a chance to look into that very deeply.20:27
NfNitLoopthe test suite didn't seem to find any errors with it.   (There were some test failures, but for seemingly unrelated things that I think we're failing in the upstream branch too.)20:27
=== _mm-mysql is now known as mm-mysql
=== davidstrauss is now known as davidstrauss-afk
jfroy|workjelmer: greetings, any words on https://bugs.launchpad.net/bzr-svn/+bug/505049?20:40
ubottuLaunchpad bug 505049 in bzr-svn "VersionedFileInvalidChecksum exception while branching remove svn branch" [Undecided,New]20:40
jfroy|workI actually did a bit of experimentation by hacking bzr-svn to use a different prop prefix, and that didn't solve the issue, so it's probably not a bad revprop issue20:41
jelmerjfroy|work, I'll have a look when I have a spare moment20:43
jfroy|workjelmer: thanks, let me know if you need more data, and sorry to be annoying about it20:44
jamvila: late answer, but I didn't fix the peak memory issues for "pack"20:47
jamthe pack code creates an index which can take a significant amount of mem20:47
jamit is on my TODO, but is unfortunately pretty low20:47
maxbWhat are the circumstances in which bzr-svn needs to build a fileidmap knit?20:48
maxbFor some of my repositories it has done so, for others not.20:48
maxbI'd like to know how to provoke it, so I can let it run overnight on a huge repository20:48
NfNitLoopHrmm, maybe it only happens on repos that directly interact with svn?20:49
jmlcan bzr be tricked into preserving timestamps20:52
doctormoI would like to detect if changes have been made to a working branch, a cheap boolean would be most effective.21:13
doctormoBut I can't figure anything out other than making an entire change tree.21:13
rubbsdoctormo: would bzr status work? or am I missunderstanding your question?21:17
doctormorubbs: sorry I should have specified, using bzrlib21:17
rubbsah, then I will be no help21:17
beunodoctormo,21:17
beunosomething like21:17
beunochanges = wt.changes_from(wt.basis_tree())21:18
beunoif revision is None and changes.has_changed():21:18
beuno    return True21:18
beunoor something21:18
beunowt being the working tree21:18
doctormowt is the working tree I guess and revision is the branch.last_revision()21:19
beunoright21:20
beunoshould be more robust if you check for at least one commit21:21
doctormoI'm wondering if the best way to get than is branch.basis_tree()21:21
doctormoapparently wt.changes_from(wt) is unimpressive, so I guess there is a way to get a wt of what exists.21:24
doctormo(wt, wt_path) = workingtree.WorkingTree.open_containing(path)21:25
doctormoHmm I can see removals, additions and changes... but not unversioned files21:31
doctormoAh I guess you get those from wt.unknowns()21:33
beunodoctormo, correct21:36
=== davidstrauss-afk is now known as davidstrauss
pooliegood morning!22:15
jelmerpoolie: Hello!22:16
pooliehi22:16
poolieare you in nz? how's it going?22:16
mwhudsonpoolie: jelmer is navigating the bowels of the soyuz data model22:17
mwhudsonhe might be back soon22:17
jelmerpoolie: Yep, hacking on building from branches :-)22:17
poolieheh, with an endoscope?22:17
=== ereslibre_uni is now known as ereslibre
mkanatWhat's the proper way to get the on-disk path of a bzr branch, given a Branch object?22:25
mkanatOr, barring that, is there any string that I could get out of a branch object to uniquely identify it (even if it gets updated)?22:26
pooliebranch.transport.base22:26
mkanatpoolie: Awesome, thank you.22:26
poolienb there is also .has_same_location()22:26
poolieum22:26
poolieadd extra underscores as needed22:27
pooliethis should be made a bit simpler and more consistent22:27
jmlbzr: ERROR: unknown command "cp"22:56
jmlfail22:56
mkanatpoolie: Is there a more correct way to get branch._transport from an external program than to just access it directly?22:58
pooliejml, that's our most affecting bug22:58
jmlheh heh22:59
pooliemkanat: no; we should rename it to be pubilc22:59
mkanatpoolie: Okay. Is it safe to have loggerhead depend on its current private name, though?22:59
poolieyes23:00
mkanatpoolie: Okay, thanks. :-)23:00
spivGood morning.23:07
maxbWhy does locations.conf override direct config in a branch's branch.conf? This seems a bit odd23:09
maxbMainly because it then becomes impossible to have special cases within an appendpath tree23:09
Pengmaxb: Try puttig the branch's config in locations.conf too?23:21
mkanatmwhudson: Okay, I submitted a merge proposal for a possible fix for the codebrowse hangs.23:32
mwhudsonmkanat: woo23:34
mkanatmaxb: I think it makes sense to have locations.conf override the branch configuration, because locations.conf is per-user, no?23:34
Pengmkanat: Ooooh, neat.23:35
maxbhmm... I guess... I don't have any multiuser branches that have any branch.conf setttings23:35
Pengmkanat: Why does line 21 of LP's diff end with a ";"? :D23:35
mkanatPeng: Ahh, silly habits. :-)23:35
mkanatPeng: Probably just did that totally unconsciously.23:35
pooliehello spiv23:36
PengWould using cache_key in revision_graph_locks work?23:36
mkanatPeng: Oh, instead of using the branch thing? Yeah, that would probably make more sense.23:36
Pengmkanat: This doesn't matter, but you don't need to declare revision_graph_locks global.23:37
mkanatPeng: Oh, right, because I'm not instantiating it?23:37
mkanatPeng: This honestly is the first time I've had to explicitly use thread locking, and I almost never use global data structures for any reason, so.... :-)23:38
Pengmkanat: You only have to declare a variable as global if you rebind it (foo = bar).23:38
mkanatPeng: Right.23:39
PengWriting to a dict is just accessing foo.__setitem__.23:39
mkanatPeng: For these sorts of review fixes, is it more traditional to uncommit and re-push, or to simply do another commit to address the review issues and then push? (This is my first merge proposal in any Canonical process.)23:39
mkanatPeng: Yeah, that I know.23:39
Pengmkanat: I'd do a second commit.23:40
mkanatPeng: Okay.23:40
PengThat seems to be standard practice here.23:41
Peng"bzr log lp:bzr | grep -i review" :P23:42
mkanatPeng: Any other comments?23:44
mwhudsonmkanat: don't uncommit unless you really have to23:45
mkanatmwhudson: Okay.23:46
mwhudsonmkanat: +"""Used to store locks that prevent mulitple threads from building a23:46
mwhudson17+revision graph for the same branch at the same time, because that can23:46
mwhudson...23:46
mwhudsonmkanat: should be a comment, not a string?23:46
mkanatmwhudson: I was thinking so probably, too.23:46
PengIt looks like this adds a second call to update_missed_caches()? Was that intentional?23:47
mwhudsonmkanat: did you consider pushing the locking into compute_whole_history_data ?23:47
PengI don't really know this code, so I can't say anything for sure...23:47
mwhudsonPeng: i think that's just the diff being a bit odd23:47
mkanatmwhudson: I did...there was some reason I didn't...oh yes, because we don't have the cache within that method.23:48
mwhudsonmkanat: ok23:48
Pengmwhudson: It's not.23:48
mwhudsonPeng: there are two calls before and two calls after, i think?23:49
PengErr, wait.23:49
PengWait, I, uh. Yeah, you're right.23:49
PengThis locks even if it doesn't end up calling compute_whole_history_data(), doesn't it? Is that a problem?23:51
mkanatPeng: It does. It wasn't a problem in my testing.23:51
mkanatPeng: The logical problem is that we must lock before checking if there's a cached revision graph.23:51
mkanatPeng: I mean, we don't *have* to--I could refactor things to avoid it.23:52
PengIt'd be more complicated to do it that way, and not really worth it, right?23:52
mkanatPeng: Yeah, I think so.23:52
mkanatIt'd be one of those check, lock, check, run things.23:53
PengFun.23:53
mkanatLoggerhead is still considerably slower under massive simultaneous load than it is under a light load, but I couldn't get it to demonstrate the hanging level of slowness that I was seeing before.23:55
PengIs there a race condition when creating the lock? Is it possible that another thread could create a lock between "if ... in ..." and "... = Lock()"?23:56
mkanatPeng: I thought about that. Logically, yes. Practically, because of the GIL, no.23:56
mwhudsonstill23:56
mwhudsonusing defaultdict would be better here no?23:56
mkanatAt least, practically, it's unlikely. I could avoid it with another lock though.23:56
mwhudsonmind you, 2.5 only23:56
PengIck.23:57
mwhudsonor setdefault, but then you'll end up creating a lock for every request23:57
mkanatmwhudson: What version do we require now?23:57
mwhudsonmkanat: 2.423:57
Pengmkanat: 2.423:57
PengOops.23:57
mwhudsonbut launchpad is on 2.5 so i care a lot less now :)23:57
mkanatYeah, but RHEL 5 is 2.4....23:57
mkanatThat's sort of what I generally use as a limiter for stuff that's really hard to reinstall at a base OS level.23:58
Pengbzr still supports 2.4, but that doesn't really stop Loggerhead from dropping it.23:58
mkanatmwhudson: A simpler solution is to put another lock around the check.23:58
PengIf we wanted to, anyway. Loggerhead obviously has fewer users than bzr, but more of its users will be on old server installs... Meh.23:59
mkanatmwhudson: The only problem is that that lock totally synchronizes loggerhead, because it would be one global lock. It's pretty short, though.23:59
mwhudsonmkanat: simpler, but more expensive i guess23:59
mkanatmwhudson: Yeah.23:59
Peng_I_ don't run 2.4, so I don't care much, but...23:59
Pengmwhudson: Launchpad is on 2.5?23:59
* mkanat runs 2.4 on all his servers.23:59
mwhudsonif we hit this race, i guess it's possible to end up in the bad old situation of building multiple caches23:59
mwhudsonPeng: yes! finally23:59

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