/srv/irclogs.ubuntu.com/2008/09/05/#bzr.txt

jammorning poolie00:00
pooliehi spiv, feeling better?00:00
spivYeah, I am.00:01
spivSleeping lots seems to have helped.00:01
lifelesshi igc00:05
igchi lifeless00:06
lifelessigc: when you're up to it, we should talk about tree rules stuff00:07
lifelesswhere talk is irc|email|voice00:07
rudylattaespiv feeling better now?00:28
spivrudylattae: yeah, hopefully it lasts.00:30
rudylattaespiv: good going00:31
igclifeless: that would be great. Monday morning/lunch on IRC and/or phone suits me best00:44
lifelessok, cool00:45
lifelessjelmer: http://goran.krampe.se/blog/Squeak/BzrOnDebian.rdoc00:49
lifelessjelmer: there is a issue with normalisation in there, from bzr-svn00:50
lifelessjelmer: do you think its a bzr bug or bzr-svn bug?00:50
jelmerlifeless, this is a blog post from december last year00:51
lifelessyes00:51
jelmerlifeless, My memory of what bugs I've fixed doesn't go back that far :-)00:52
lifelessI don't think its necessarily fixed00:52
* jelmer tries00:54
jelmerlifeless, we did fix some normalization-related issues a while ago00:58
=== abadger19991 is now known as abadger1999
poolielifeless: were you still planning to come over this arvo?01:30
lifelesspoolie: yah01:42
lifelesspoolie: I forgot about that, one minute01:42
lifelessdid spiv confirm dinner ?01:42
poolienot yet01:43
pooliedepends how he's feeling today i guess01:43
alsurenis there some way to make bzr automatically recognise when I've moved files around and done nothing else to them?01:43
lifelesshttp://michael.ellerman.id.au/bzr/plugins/auto-rename01:44
lifelesspoolie: so its a bit of a miserable day outside01:44
lifelessspiv: ping01:45
poolieyes i'd just been noticing that :)01:45
jelmerlifeless, just confirmed, that repo checks out fine here01:48
jelmerwell, *seems* to be01:48
lifelessjelmer: cool01:48
* alsuren wonders whether there is a plugin installer plugin, or whether that would be a bit too meta :P01:48
pooliealsuren: there should be :)01:49
pooliethere is a bit of a start towards it with the missing-plugin stuff01:49
poolielifeless, we can take a rain check (cheque?)01:49
lifelesspoolie: sure thing01:49
pooliei would like to talk to you on the phone if not in person sometime01:49
lifelessperhaps a rain CHK01:50
pooliebut preferably not til later to preserve my concentration01:50
pooliesuch as it is01:50
alsurenbzr branch http://michael.ellerman.id.au/bzr/plugins/auto-rename/ hangs for me01:53
alsuren*goes to bed, and thinks about it tomorrow*01:53
pooliealsuren, it may just be a slow-over-http format01:54
=== mw is now known as mw|out
lifelessalsuren: its an old format branch01:56
lifelesspoolie: sorry if I'm bad for concentration :P01:56
lifelesspoolie: later is fine01:56
abentleyjam: back now.02:25
lifelesslol? http://linux.softpedia.com/get/Programming/Version-Control/bzr-search-40745.shtml02:58
mwhudsonlifeless: boggle02:59
bob2hopefully they can certify it as virus free soon03:08
markhlifeless: bug 264679 is suggesting that info about 'bzr help configuration' be listed in the output of 'bzr help'03:16
ubottuLaunchpad bug 264679 in bzr "expose configuration help in cli" [Undecided,New] https://launchpad.net/bugs/26467903:16
lifelessgod no03:17
markhif it didn't have info about branch config etc it would make more sense.  'bzr help user-config' or similar...03:19
lifelessmarkh: why?03:23
markhto give a new user that they might want to run 'whoami', for example03:24
markhwell - a clue to follow to find that out ;)03:24
lifelessuhm03:26
lifelessI don't think this makes sense; users may not run help at all03:27
lifelessthey may assume they know how to use it03:27
markhheh03:27
markhso who is it for? ;)03:27
lifelessor they might be on a new machine03:27
lifeless'bzr help' is not 'I am a new bzr user'03:28
markhso you are against putting potentially useful information in "bzr help" because users may not run help?03:28
lifelessno03:29
markhsomeone who is not a new user to bzr doesn't need much of the info on the 'bzr help' screen at all03:29
markhthey already know 'bzr help commands'03:29
lifelessI'm against making 'bzr help' which is already too long, longer, without actually solving the asserted root problem03:29
lifelessa windows user won't run 'bzr help03:29
markhof course they will!03:29
lifelesssomeone following a guide someone else wrote probably won't run 'bzr help'03:30
markhI do, and ofcourse its one of the first bzr commands I ever typed!03:30
lifelessno they won't, they'll right click somewhere and start with the first popup screen03:30
markhthat is a gross generalization ;)03:30
markh"linux users will never use the mouse" ;)03:30
lifelesslikewise an eclipse user03:31
poolieare you saying the core change is that 'bzr help' top level output should point to 'help configuration' or is it something else?03:31
markhbut - I'm not avdocating for that - just trying to understand your reasoning03:31
pooliemarkh, the mouse is used to choose the xterm to type in ;-)03:31
markhthat was the assertion a user made, and lifeless said he didn't understand the proposal.  I was just trying to help clarify it for lifeless.03:31
lifelessmarkh: if the problem is that 'you have to run bzr whoami to be able to use bzr sensibly', then we should put effort into fixing that03:31
markhI see it potentially has merit03:32
markhand I assert a new user of bzr *will* type 'bzr help' very early on03:32
markhbut I really don't care ;)03:32
lifelesswell, I'm not against a pointer to the config in the top level help03:32
lifelessI am against embedding al the content there03:32
markhwhy?  Surely that's for the new user too?03:32
lifelessmarkh: why not delete the top level help and point to the tutorial?03:33
markhbecause IMO 'bzr help' is useful to the new user, and should be targetted at the new user.03:33
markhISTM you are the one saying otherwise?03:33
markhI think bzr help is very good atm for exactly those reasons03:34
lifelessfrom experience, people get scared off a first help screen that is more than ~ 1 page03:34
lifelessthe config documentation is many many pages03:34
markhI think a single line 'bzr help config -  show info about how to customize bzr for your preferences" *might* be beneficial for new users03:35
lifelesssure, I have no objection to that03:35
lifelesswe should remove 'bzr check' too03:35
markhthat is the proposal!!03:35
lifelessmarkh: I though it was to copy the contents of bzr help configuration -> bzr help03:36
markhgod no ;)03:36
lifelessmarkh: which is what I said03:36
markhso, I hope I've help clarify the proposal in that bug you commented on ;)03:37
lifelessabentley: we must be talking past each other or something, on the bug discussing rev specs03:40
markhthe 'whoami' question is interesting in its own right.  The default value will rarely be exactly what the user would choose to type for that value.  So the argument could be made that you *do* need to run whoami to have it work sensibly.  the first few bzr checkins I made had 'inappropriate' values for the user (certainly 'skip@eden03:41
markh') isn't that useful03:41
markhpoolie: how was the trip?  Your bum recovered?03:44
poolieit was great thanks03:44
* markh hopes people don't take that the wrong way ;)03:44
poolieheh03:44
markhbike went well?03:44
poolieactually it was more my neck that got sore from crosswinds03:44
lifelessmarkh: better that poolie doesn't take it the wrong way either :P03:45
markh:)03:45
pooliemarkh, the front shock and forks started leaking after a day of fairly rough roads03:45
poolienot catastrophically, and they'll be replaced soon under warranty03:45
markhbugger - they lasted ok though?03:45
poolieyes03:45
poolieit was a bit disturbing to see oil all over the front of the bike03:46
pooliebut fine03:46
pooliethe mechanic said "if i'd been punished like that all day i'd be weeping too" :-)03:46
markhyeah, I bet!  Did you notice the suspension suffer?03:46
markhheh :)03:46
markhI'd guess you'd lose dampening?03:46
poolieno, i just put a bit more preload on to (possibly) make it easier on it03:46
pooliei guess i would eventually but it probably has not lost enough oil to make a difference03:47
pooliei actually got much more relaxed on that ride about rough surfaces, dirt, big trucks, wind, etc03:47
markhyeah, I shit myself on dirt still :)03:47
pooliehttp://flickr.com/photos/mbp_/2824615378/03:48
lifelessmarkh: so, bzr design principles - we try to make mistakes easy to recover from; having to read more to be insulated from mistakes strongly suggests to me that we have a too-hard-to-recover-from situation03:48
markhit would help if I had a bike designed to go off the tarmac though :)03:48
lifelessmarkh: and I'm *much* more interested in fixing that that03:48
pooliei saw two roos go across the road in front of me03:49
poolienot close enough to be a problem but it does make you think03:49
markhlifeless: I think we are agreeing in general.  However, I do see value in assuming a new user is likely to run 'bzr help' early on, and best I can tell, the existing help on that page is targetted at a new user.   further, pointing such a new user at config options early on may have value too.03:50
markhpoolie: how close?03:50
pooliethe first one, i braked at about 70% effort and had plenty of room03:51
pooliethe second i just backed off and watched him go03:51
markhack - I bet the first one worried you briefly!  You have abs though?03:52
lifelessmarkh: well, like I said, I'm not against tweaking 'bzr help'. It doesn't enthuse me though - the shed is blue, mmk? (compared to reducing the curve by making mistakes more recoverable).03:53
pooliei do03:54
pooliei've never had it activate except when practicing braking03:54
pooliewhich is probably good03:54
poolienice to know it's there03:54
poolieso some people on the trip washed their bikes every night, then put covers over them03:55
poolieeach to their own but i found that kinda creepy :-)03:55
markhheh - the ducati trips are very much like that ;)03:55
pooliei bet03:55
markhquite amazing03:55
markhI admit I wiped the bugs from the front most nights though ;)03:55
markhbut left a streaky mess in its place :)03:56
pooliei did wash the screen, lights, etc03:56
pooliethe rest of it looks better with some dirt03:56
lifelessback soon03:57
markhyour enjoyment suffers when you are too anal about things like that03:57
poolieso, about half our trip overall was just up and down the bruce hwy03:58
pooliethere is a lot of sugar cane03:58
pooliethere were some pretty amazing roads in between03:58
markhI bet04:01
markhpoolie: back to those tests - how should we proceed on silencing the lock contention test failures?04:50
poolieyou're talking about the outright failures rather than xfail i presume04:50
markhyeah04:52
markhit seems xfail already catches some of those errors04:52
markhwe just try and arrange for xfail for all of them?04:52
poolieso that would be the laziest way to do it04:53
poolieat least then we'd detect if anything new breaks04:53
pooliei think it would be worth trying to work out why they are failing04:54
pooliefor instance04:54
poolie- is it just a bug in the test that eg it has two objects pointing at the same file04:54
pooliein which case ideally we'd fix the test04:54
poolie- or is it something that is kind of broken by design on windows04:54
poolie- or is it something that we could fix but that'll be nontrivial04:55
pooliethat kind of thing04:55
pooliei suspect there are some in the first category and it would be nearly as easy to fix them as to block out the tests04:55
markhThere are a couple of cases where we try and take a readlock and a writelock on the same directory04:55
markhI'll try and find the thread - give me a few...04:55
markhIt was in IRC.  "[09:05] <markh> I'm tracking down LockContention on Windows and I don't understand how it is supposed to work.  I've instrumented 'do_merge' and can prove that in some cases, self.this_tree._dirstate._filename == self.base_tree._dirstate._filename"04:57
markhso - many of the test failures stem from that.  It should be quite easy to instrument any platform to check for that condition04:58
poolieok, i recall that from before i left04:58
markhon Linux, you *can* lock like that, on Windows you can not04:58
poolieso i'd want to know - are the dirstate objects the same? if so, are the tree objects the same?04:58
markhapparently yes04:58
markhlifeless says there are a number of valid use cases for that04:59
pooliehm04:59
lifelessbzr merge . for instance04:59
lifelesswhich is why I proposed a relatively trivial tweak to dirstate that avoids this04:59
lifelessbut it seems to be stalled04:59
lifelessand it won't fix WT4 regardless05:00
poolieso i want to avoid having "xfail os locks are not process-wide" when that is only the proximate cause05:00
markhhow about a "Feature"?05:02
markhI'm not sure how these solutions would impact the output of the test run though05:02
fullermdHm.  There are some minor long-standing test failures on my system...05:03
markhIIUC that would make them a "skip" or something though...05:03
lifelessmarkh: skip isn't appropriate for something that can't be fixed05:03
fullermdBut I got a stack of others while trying to reproduce them.  Figures.05:03
markhFeatures seems like the easiest implementation though ;)05:03
poolieso05:04
poolieif the object is already locked, why are we trying to lock the same file through a different file handle?05:04
markhI think the answer is "because we can" :)05:05
poolieit wasn't about feature vs xfail, rather that if we're going to say "it's not really a failure" i'd like to be clear about what is causing it05:05
markhan option I proposed was simply to detect we already have a write lock and don't bother with the read lock.  lifeless suggested that wasn't really an appropriate fix and he had ideas for the correct fix05:05
lifelessmarkh: I mailed my proposal to the list05:06
lifelessmarkh: its not a good fix because its very incomplete05:06
markhlifeless: understood, but there is a dependency issue05:06
poolielifeless, you're talking about the proposal to rename the file?05:07
pooliei guess i just don't see why this would need any on-disk changes05:07
pooliewhy can 'bzr merge .' not work with our current format?05:07
markhdo we want to wait for that fix before we try and make tests give reasonable output?  There is only one of you ;) , so doing something in the meantime makes some sense05:07
lifelessmarkh: theres no need for me to do the deeper fix; and I haven't suggested waiting on addressing the tests issue05:08
markhlifeless: understood - was just explaining myself :)05:08
lifelesspoolie: bzr merge . is something the test suite does; bzr diff while a bzr commit window is open is a more common occurence of the same defect05:08
pooliethey're different because in the first case there is only one process in play05:09
pooliethe second is a known bug, sure05:09
pooliethe first one seems to me to be accidentally failing05:10
markhpoolie: when you say "accidentally failing", you mean "bzr is accidentally taking more lock than it needs" or "test suite is in error"?05:11
poolieit could be either05:12
markha one line hack to do_merge will reproduce the problems for you05:12
pooliei mean 'accidentally' because the design limit that affects the second case should not be causing this to fail afaics05:12
markhjust fail whenever the 2 paths are the same and run the test suite05:12
lifelessbug 11452805:24
ubottuLaunchpad bug 114528 in bzr "dirstate locks don't work on Apple AFP network mounts" [Medium,Confirmed] https://launchpad.net/bugs/11452805:24
lifelessanother example o f the same thing05:24
poolielifeless: to me it looks like that's just saying that file locks don't work at all in some environments05:28
lifelesspoolie: yes, and the ongoing problems with dirstate are due to that05:39
markhpoolie: the test related patch in the queue I referred to is at http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C019a01c8fe73%2427a26f30%2476e74d90%24%40com.au%3E - John has already voted 'approve'05:56
* markh didn't think the patch was *that* scary...05:58
poolie_i'll look05:58
mwhudsonwho would be the person to ask about bzr's sftp transport?06:02
poolie_anyone really06:02
mwhudsonin particular, is there any likelyhood it sends the "realpath" sftp command?06:02
lifelessspiv, poolie, I, jam, vila, have all had sustantial interactions with it06:02
lifelessunlikely I think06:03
mwhudsonthat's what i thought too06:03
lifelesswhich is why your server is bust :P06:03
mwhudsonyeah06:03
mwhudsonwell06:03
mwhudsonit's why our server can be bust and still host bazaar branches without exploding06:04
mwhudson(realpath returns url-encoded paths atm)06:04
poolie_markh, it looks fine to me, i'll merge it06:05
markhpoolie_: thanks!06:12
lifelesspoolie_: call time ?06:32
poolie_ woo, passing06:33
poolie_what a great time for a call :)06:34
vilagoood morning bazaar06:57
gourmorning vila06:59
vilamwhudson: I highly doubt we use the realpath command in our sftp client, paramiko may though07:02
=== thekorn_ is now known as thekorn
spivpoolie_, lifeless: I don't think I'll be doing dinner with you guys tonight, I'm still not quite 100%.08:49
poolie_spiv, sure, we're not either08:50
spivpoolie_: great ;)08:53
poolie_spiv, can you look quickly at my partial patch on bug 26131509:03
ubottuLaunchpad bug 261315 in bzr "getting a stacked branch over the smart protocol fails with "Could not install revisions"" [Critical,In progress] https://launchpad.net/bugs/26131509:03
* spiv looks09:05
spivIt looks like I have a fix for the ObjectNotLocked bug that affects 'bzr cat bzr://...' etc, just waiting for tests to pass.09:06
spivIt *might* let me delete some cruft, too.09:06
spivpoolie_: that looks ok to me09:11
poolie_thanks09:11
poolie_it'd be nice to eliminate these things of having two objects representing the same thing09:11
spivpoolie_: the obvious way to avoid that forcing _ensure_real on every branch open would be by having a new Branch.open RPC that returns the stacked_on URL, I guess.09:12
poolie_Branch does seem like a good place to start in removing real objects09:12
spivYeah, keeping two different objects representing the same entity in sync is the source of lots of hpss bugs.09:13
spivIncluding the ObjectNotLocked one.09:13
poolie_i might try that soon09:18
poolie_maybe not tonight09:18
poolie_i should finish off LockableFiles too...09:18
poolie_i was also looking at the locking gc warning thing09:19
poolie_it seems to me that every case we currently warn is in a test for lock-breaking or similar09:19
poolie_where we really are meaning to have the lock object leak09:19
poolie_so i guess we could explicitly mark them as abandoned or something, and then suppress the lock leak09:21
poolie_but it seems like diminishing returns09:21
=== mvo__ is now known as mvo
spivOoh, it looks like I *can* finally delete some cruft from RemoteBranch.lock_write10:59
spivI think I just figured out part of the confusion that had stopped me doing that earlier: it was possible for the code to overwrite the _real_repository object sometimes.  Debugging hilarity ensues.11:00
* spiv goes on a XXX-deletion spree11:02
spivAmong other things, RemoteBranch.lock_write doesn't force _ensure_real any more :)11:03
spivjam: RemoteBranch.lock_read fix sent to list11:49
spivjam: it includes some bonus extra sanity on top of just fixing the immediate bug :)11:50
* spiv wanders afk11:51
cjwatsonI'm trying to use bzr import-dsc on the history of a non-native Debian package, and running into some trouble: namely, it works if I just run it in an ordinary branch, but not if I create a repository first. What would you need in order to debug this?12:11
cjwatsonoh, I forgot James was on holiday, ok12:18
Odd_Blokecjwatson: I'd suggest pasting the appropriate part of your .bzr.log somewhere.12:20
cjwatsonhttp://paste.ubuntu.com/43603/12:24
Odd_Blokecjwatson: Hmm, yeah, that's something I can't really help with.12:27
Odd_BlokeDoing it in a branch and then branching into your repository should work around it though.12:27
cjwatsonright, that's what I did12:28
cjwatsonit's perfectly reproducible, so I'll grab James about it when he gets back12:28
Odd_Blokecjwatson: File a bug?12:28
cjwatsonyeah12:28
=== jelmer is now known as Guest51940
LeoNerdSo.....12:53
LeoNerd'find -name .bzr \( -prune -printf "%h\n" \)'   runs in about 0.5seconds and uses hardly any memory while doing so. Whereas, 'bzr branches' eats looooads of memory and spends a great deal longer time finding out the same information...12:54
LeoNerdOh and it chews a great amount of CPU too12:56
Peng_'branches' is that bad? Hmmm.12:58
LeoNerdreal    0m0.022s <= 'find | sed'. real    0m13.015s <= 'bzr branches'12:59
Peng_Jeepers, you're right. It hit 112 MB of RAM by the time it was done.12:59
LeoNerdMhm :)12:59
Peng_I'm running it on a VPS, so I think I just dumped the entire disk cache, but at least I didn't swap.13:00
LeoNerdPerhaps I should post to the mailinglist?13:00
Peng_Sure.13:00
Peng_Oh, I just realized that my little script doesn't use "bzr branches" anyway.13:01
Peng_It uses subprocess.Popen(['find']). Cough.13:01
LeoNerdHehe13:01
LeoNerdYa.. I use:13:01
LeoNerdfind -name '.bzr' \( -prune -printf "%P\n" \) | sed -e 's,/\.bzr$,,'13:01
Peng_Heh. I just use 'find' to get a list of all directories and then loop through it.13:02
=== vk5foss is now known as kgoetz
jakobbto anyone: there used to be a bug regarding errors that occur when redirection takes place, does anyone remember the # by accident?13:21
awilkinsLeoNerd: Heh, I have a powershell script for the same reason13:22
=== AnMaster_ is now known as AnMaster
LeoNerdmmmm13:23
LeoNerdSounds like 'bzr branches' needs some work then13:23
awilkinsls | where { $_.PSIsContainer } | ls -force -inc .bzr | where { ($_.Name -eq ".bzr") } | foreach { $_.Parent }13:23
awilkinsIt doesn't recurse, but some of my trees are .. large, and I don't want to recurse them13:24
LeoNerdThat's what the -prune is for13:25
awilkinsI'm not very skilled with "find" as yet13:25
Peng_Hmm, replacing my 'find' hack with os.walk was quite easy. Yay. :)13:37
Peng_(I've never used os.walk before.)13:37
abentleyPeng_: There's a bug in the svn bindings that can cause ludicrous memory consumption, if you have bzr-svn.  But branches uses bzr transports, and they're not very efficient for this.13:50
Guest51940abentley: What exactly is triggering that?13:51
Jc2khi jelmer/guest51940 :p13:52
abentleyGuest51940: I don't know.13:52
Guest51940abentley, Just a regular pull/push with bzr-svn doesn't use more memory than usual these days13:53
abentleyGuest51940: That's with the new bindings?  I'm talking about the old ones.13:54
Guest51940abentley, ah, ok13:54
abentleyAnd I'm talking specifically about the 'branches' command.13:54
abentleyWhich uses BzrDir.find_branches.13:54
Peng_abentley: I do have bzr-svn installed, but none of the branches in question use it in any way (though some are copies of svn imports).13:55
abentleyPeng_: Doesn't matter whether they use it.13:56
LeoNerdI'm not using svn at all13:56
RAOF_Ah.  You're talking about the 'bzr multi-pull consumes 1GB resident' funness?13:57
abentleyLeoNerd: Are you seeing ludicrous memory consumption?13:57
LeoNerdYup13:58
LeoNerdIn fact, if I run 'bzr branches' from my $HOME, it throws everything else out to swap, then OOM killer bites13:59
lamontFormat <RepositoryFormatKnit1> for file:///home/lamont/stuff/.bzr/ is deprecated - please use 'bzr upgrade' to get better performance13:59
lamontwhat check (short of a bzr command) can I use to see that this warning is going to come out, I wonder?13:59
abentleyLeoNerd: Please file a bug, then.  So far, every case of this has been solved by uninstalling bzr-svn.14:01
LeoNerdAhright :)14:02
abentleylamont: I don't think there's anything you can do without running a bzr command.  The list of deprecated formats will be different depending on your bzr version.14:03
lamontright.  specifically, 1.6 vs knit, or "is there a way to tell that I have a knit1 format by just checking a file or its contents?"14:04
abentleylamont: you can "cat $PATH_TO_REPO/.bzr/repository/format"14:05
lamontcool14:05
Peng_Wait...my os.walk() code is completely broken.14:05
=== robtaylor is now known as robtaylor-test
Peng_Anyway, off-topic.14:06
=== robtaylor-test is now known as robtaylor
=== fta_ is now known as fta
Peng_Weird...I seem to have poked one of my bzr branches over http.14:35
=== mw|out is now known as mw
awilkinsls14:53
awilkinsoops14:53
Pieter. .. docs movies warez xxx14:56
* awilkins wonders if Pieter executes any other commands15:00
awilkinsrm -rf /dev/brain15:00
Pieterrm: command not found15:01
=== Guest51940 is now known as jelmer
mitchchapmanUsing bzr 1.6 on Windows XP, I am suddenly getting this error on every operation: "bzr: ERROR: invalid header line: ''"  My dirstate file appears to be empty.16:06
mitchchapmanDoes anyone know how to recover from this situation?16:06
abentleymitchchapman: do you have any changed files?16:06
mitchchapmanYes.16:07
abentleyMove all your files except .bzr into a temp directory16:07
abentleydelete .bzr/checkout and its contents.16:08
abentleyrun "bzr checkout ."16:09
abentleyThat should give you a tree in the state you last committed.16:09
abentleyThen copy your working tree files back in place.16:09
abentleyIf you had added or moved any files, you'll have to do that again.16:09
mitchchapmanabentley: That did the trick, thank you very much!16:28
abentleymitchchapman: You're welcome.16:28
chadmillerHi all.  In bzrlib, what's the best way to find if a revisionid exists in a branch?  All the ways I see in bzrlib.branch work only if the revision also has an integer revno.16:28
abentleychadmiller: bzr log -r revid:$REVISION_ID16:32
abentleyIf that shows the entry, it's in the branch.  If it raises an exception, it's not.16:32
chadmillerabentley: Okay.  I'll reverse-engineer what "log" does.  Surely there's a smarter way.  Note my "In bzrlib," preposition.16:36
abentleychadmiller: Oh, then "best" is highly variable.16:37
chadmillercheapest?  "if revid in some_hash:"...16:37
* chadmiller greps around for NoSuchRevision16:38
abentleyCheapest would be branch.repository.get_graph.iter_ancestry([branch.last_revision])16:38
abentleyOr I guess branch.repository.get_graph().is_ancestor(candidate, branch.last_revision())16:40
abentleyHowever, *any* operation that can answer your question will scale badly if the answer is "no".16:41
abentleySo I would reconsider trying to do that.16:41
chadmillerabentley: Well, I'm trying to use Graph.find_unique_ancestors(), which lists every rid if the exceptions list contains only an invalid rid.16:44
chadmillerArguably, it should raise an exception.  I can't wait, though.16:45
abentleychadmiller: I think that anything that can answer your question will take at least as long as find_unique_ancestors if there is an invalid revision-id.16:47
abentleyThe only way to know if a revision_id is present in a branch is to walk the ancestry of the last revision in the branch.16:48
abentleyuntil either you find it, or you reach the graph origin.16:48
chadmillerRight.  I'm not worried about time for missing revid.  I must raise a warning though, in the case where someone gives me an invalid revisionid.16:49
abentleyInvalid revision ids are those that end with a single ':'16:50
chadmillerI wouldn't mind taking the graph origin as an error.  I'll look at that.  I can test if the set Graph.find_unique_ancestors() contains the origin, I suppose.  Hrm.  Now, to get the origin....16:52
chadmillerabentley: When I say it, I mean "invalid" to be "not present in the history at all"16:52
abentleychadmiller: No, you mean "not present in the ancestry at all".  If it's present in the ancestry but not the history, it doesn't have an integer revno.  But you said you wanted to allow things without integer revnos.16:56
chadmillerabentley: Thank you.  bzr internals argot is still new to me.16:56
jam abentley: well technically you can walk both ancestries, and if you find them converge17:32
jamthen you only need to search some of the ancestry17:32
jam(things that are descendents of the common point)17:32
jamI use that sort of logic in the lazy revno code I've been putting together17:33
jamand it is also somewhat how "Graph.find_distance_to_null()" works.17:34
jamchadmiller: the 'origin' is "NULL_REVISION"17:34
jambut that is going to be common to all revisions17:34
jamso won't show up in "find_unique_ancestors()"17:34
jamActually, I would be surprised if "find_unique" returns the complete set17:34
jamunless the ancestries are completely separate17:34
jamchadmiller: http://rafb.net/p/M1l6OR91.html17:36
jamthere is also "Graph.find_difference()"17:36
jamwhich can give you the difference on each side17:36
jamif one side is empty17:36
jamthen that revision is in the ancestry of the other.17:36
chadmillerjam: Hrm.  "...the difference on each side"?  I have only a revisionid and one branch.  I don't see how find_difference() can help.17:40
jamchadmiller: Branch.last_revision()17:40
jamleft_unique, right_unique = graph.find_difference(Branch.last_revision(), old_last_revision())17:41
jamif len(right_unique) == 0:17:41
jamthen old_last_revision is in the ancestry of the current tip17:41
jambecause it has no unique ancestors17:41
jamOtherwise left_unique == graph.find_unique_ancestors(Branch.last_revision(), [old_last_revision])17:42
jamchadmiller: does that help?17:42
jamfind_difference() computes the symmetric difference17:42
jam(what is in A that isn't in B, and what is in B that isn't in A)17:42
jamfind_unique only computes 1 side17:42
jam(because in the general case it is cheaper to compute 1 side if you don't care about the other side)17:42
jamvila: ping17:47
vilajam: pong17:47
jamvila: I notice you updated the status of a lot of bugs without updating their importance. Is there a reason?17:47
vilanot really, I don't think I update major ones though, just trying to clear the New queue17:48
vilaI generally affect an importance when I get enough understanding of the consequences to do so17:50
jamSo, IMO, if you are triaging it to confirm it, then it should have an importance rating.17:50
jamObviously Wontfix/invalid don't need them17:50
jamAnd sometimes "incomplete" doesn't17:50
jamthat depends on if there is enough information to give a severity indication.17:50
jamBut certainly "Confirmed" sounds like we should know how important the bug is.17:51
vilaand when do you use triaged vs confirmed ?17:51
jamvila: Triaged / Confirmed is ... unclear. I believe I understand how LP wants us to use them.17:51
jamSpecifically, Confirmed is for non-bzr devs17:51
jamto say that "I saw this too"17:51
jam(confirmed)17:51
jamTriaged is for project devs17:51
jamto say that there is enough info to give an importance rating.17:52
jamand if someone wanted to work on it, they could17:52
jamMartin always uses Confirmed17:52
jamI've started using Triaged17:52
jamand I don't think we've come up with official project policy.17:52
jamBut I will note17:52
jamnon project devs can set "incomplete" "invalid" and "confirmed"17:52
abentleyjam: Kiko is in favour of *never* using confirmed.17:52
jamyou have to be in the ~bzr group to set "Triaged"17:52
jamabentley: hm... I haven't seen that. But I don't hang out on #launchpad. :)17:53
jamDo I misunderstand the idea of the Malone definitions?17:53
abentleyjam: It was in the launchpad mailing list.17:53
chadmillerWow, jam, I step away to get food and you fill my screen!  :)17:54
* chadmiller reads.17:54
jamwell, a lot of it is not related to you :)17:54
abentleyjam: "Triaged" means "confirmed by Someone Important" to kiko17:54
jamabentley: sure, which is why I would use Triaged for ~bzr users, and leave Confirmed to non ~bzr users.17:54
vilaabentley: that's how I was using confirmed (humbly though :)17:54
jamvila: sorry, you're Someone Important17:55
jamyou gotta step up to that :)17:55
* vila tried...17:55
vila:D17:55
jelmerawilkins, ping17:59
jamvila: do you have any experience with python's xmlrpclib?18:00
jamI was just poking at bug 18692018:00
ubottuLaunchpad bug 186920 in launchpad-bazaar "bzr launchpad does not handle proxy when used for name resolution " [Undecided,New] https://launchpad.net/bugs/18692018:00
jamAnd I linked: http://bugs.python.org/issue64865818:00
jamchadmiller: ping me if you understand/don't understand what I mentioned18:01
chadmillerjam, thanks.  I will.18:01
vilajam: no18:03
vilayeah, the main problem is that david has strange setup, I'm following this bug for ages but never find the time to work o nit :-/18:04
vilas/has/has a/18:04
vilajam: dinner time here, I may come back later... or not :)18:04
jamdavid?18:04
jamvila: eat well18:04
vilajam: david cournapeau, the guy who reported the bug, that's not the first one, its DNS is proxied or something weird like that18:06
jamvila: well, xmlrpclib doesn't do proxying either18:06
jamwhich I thought was the same bug18:07
jamregardless, I was asking about the xmlrpclib side of things :)18:07
jambut still, don't let me interrupt food18:07
awilkinsjelmer: bzr-svn is getting my standard baptism of fire ; branching a 13880 revision trunk with over a GB of content18:37
awilkinsjelmer: We shall have to see how it manages.18:37
jamvila, is bug 265070 just another 'redirection handling' bug?18:37
ubottuLaunchpad bug 265070 in bzr "PathNotChild: Path "http://url" is not a child of path "http://jakob@url": user name mismatch" [Undecided,Fix committed] https://launchpad.net/bugs/26507018:37
jelmerawilkins, ah, cool18:38
awilkinsjelmer: One little thing ; the lib "dav" is "neon" in 1.518:38
jelmerawilkins, did you see bug 263570 ?18:38
ubottuLaunchpad bug 263570 in bzr-svn "bzr-svn cannot be compiled for Subversion 1.5.* without hand-editing setup.py" [Undecided,New] https://launchpad.net/bugs/26357018:38
awilkinsThat's the "dav is now neon" thing18:39
awilkinsI hand-edited it and replaced "libsvn_ra_dav-1" with "libsvn_ra_neon-1"18:40
awilkinsawilkins: Then I went back and built it for 1.4.6 after you patched it18:40
jelmerawilkins, any chance you can confirm this patch doesn't break anything for you?18:41
jelmerI'd like to apply it for the next release, preferably without breaking anything :-)18:41
awilkinsjelmer: I'll run the test suite and post you the log now18:41
jelmerI also fixed compatibility with svn 1.4 on windows, btw18:41
awilkinsjelmer: I'm not sure how necessary that is, but it's welcome18:42
awilkinsjelmer: The WC library is never used to touch a "real" SVN WC AFAIK, so the nasty "upgrade" doesn't happen18:42
awilkinsjelmer: Heh, the "hell branch" has just finished caching metadata18:43
awilkinsFetching the highly nsaty first revision18:44
awilkinsThis is a really good test corpus because the repo layout has really been screwed around with (or a bad one, depending on your viewpoint :-)  )18:44
jelmerawilkins, if it's not performing well enough, you may want to try trunk18:44
awilkinsjelmer: It's not leaking loads of memory, so that's good (so far)18:45
awilkins6/9699 and rising18:45
awilkinsWhat does trunk do that 0.4 doesn't ?18:46
jelmerit's more performance tuned18:47
awilkinsjelmer: 30 revisions and still not many positive memory delta above r 1 ; I'm optimistic18:48
jelmerah, great18:52
awilkinsjelmer: Impressive, it's rock steady - the odd blip for a big revision (eats 140MB plus and then dumnps it all)18:52
awilkinsThen right back down to 308,732KB18:52
jelmerback in ~30 min18:53
awilkinsI'll switch to trunk and run the test suite again18:54
=== mw is now known as mw|food
vilajam: there is no redirection bug I'm aware of :-) The code has just bitrotten  from the days it was used  the first access which was always for the branch format. But now the hpss probing changed the context a bit and things are a bit blurry :)19:35
vilaI'm missed bug #245964 at the time, but I what is this Michael's change you're referring to ?19:36
ubottuLaunchpad bug 245964 in bzr "nosmart+http interacts badly with http redirects" [High,In progress] https://launchpad.net/bugs/24596419:36
vilas/I'm/I've/ s/I what/what/19:36
jamvila: your sed expression is harder to parse than the original :)19:37
vilaexactly my thought :)19:37
vilasee ? redirection is hard for brain :)19:37
=== mark1 is now known as markh
jamand yes, that is the patch I'm talking about19:58
jamThe specific bug(s) are than nosmart+... fails to remember "nosmart+" and it seems that "http://user@host" fails to remember the "user@" during the redirect.19:59
jam"are that"19:59
jelmerawilkins, thanks for the update20:04
jelmerI've fixed TypeError: rcvr() takes exactly 4 arguments (3 given)20:04
jelmerin the 0.4 branch20:04
awilkinsjelmer: Now at 4912/9699 and detecting some memeory ;leakage20:09
awilkinsback in a mo20:09
=== mw|food is now known as mw
abentleyjelmer: Do you know what the the current status of gnome-to-bzr imports is?  Where it's happening, and who's doing it?20:41
jelmerabentley, jc2k and thumper are the main people responsible afaik20:41
jelmerabentley: it's on http://bzr-mirror.gnome.org/20:42
abentleyjelmer: Cool20:43
abentleyThanks.20:43
* Jc2k looks in20:44
Jc2kabentley: there are 2 independant mirrors, mine is on bzr-mirror.gnome.org (and also does a git and mercurial mirror). bzr-playground.g.o is looked after by canonical20:45
Jc2kabentley: so maidenhead and.. i think london?? for where20:45
abentleyJc2k: "where" meant URL :-)20:46
abentleyI'm confused.  I thought that Canonical was taking over from you.20:46
Jc2ksome how we ended up with 2 mirrors :)20:47
abentleyJc2k: We should straighten this out.  I'll poke thumper next time I talk to him.20:48
Jc2kabentley: im meant to be involved in playground somehow (thumper says im meant to have some kind of admin rights on the box)20:48
abentleyJc2k: I ask because someone just wanted to get Launchpad to import http://svn.gnome.org/viewvc/seahorse/seahorse-plugins/trunk20:48
abentleyAnd I figure that would be counterproductive.20:49
abentleyCould you set such a mirror up?20:49
Jc2kit will happen automatically on bzr-mirror20:49
Jc2kif it hasnt already20:49
Snauryhey jelmer, so what about my 1.4/1.5 patch? does it have any problems?20:49
Jc2khmm hasnt already20:49
jelmerSnaury, Nope, it all looks fine to me now20:50
jelmerSnaury, I was hoping awilkins can test it as well, after that I'll merge it20:50
Snauryah, ok.20:50
SnauryI didn't realize Internet Explorer could screw patch filename like that. :-/20:51
Jc2koh20:51
eeanhow do you checkout a tag?20:51
jelmerSnaury, thanks for these patches, btw!20:52
Jc2kabentley: so, i think its a bzr-svn 'bug'...20:52
SnauryYou're welcome. :)20:52
jelmereean, try "bzr branch -rtag:<name-of-tag> <url>"20:52
abentleyJc2k: May I have your email address so that I can direct Andreas Moog to you?20:52
jelmerJc2k, ?20:52
Jc2kabentley: there is no mirror of it because bzr-svn only handles trunk/branches/tags...20:52
Jc2kjelmer: seahorse has trunk, branches, tags, seahorses-plugins20:53
jelmerJc2k, it will handle that by default - are you specifying a branching scheme explicitly perhaps?20:53
Jc2kno...20:53
eeanjelmer: can I switch the current checkout?20:53
Jc2kabentley: john.carr@unrouted.co.uk, and #gnome-bzr on irc.gnome.org :)20:53
jelmereean: "bzr pull . -rtag:<tag-name>"20:54
jelmerJc2k, strange20:54
eean"No revisions to pull."20:54
jelmerJc2k, ah, it uses two branching schemes20:54
Jc2kjelmer: yes20:54
jelmerJc2k: so you'll need two separate svn-import commands20:55
Jc2kjelmer: i'd prefer to do surgery and make seahorse-plugins a seperate repository..20:55
Jc2kjelmer: because i hate special casing the mirror20:55
jelmer"bzr svn-import --scheme=trunk" and "bzr svn-import --trunk1 svn://svn.gnome.org/svn/seahorse/seahorse-plugins/"20:55
jelmers/--trunk1/--scheme=trunk1/20:56
Jc2k:)20:56
jelmerJc2k, yeah, splitting it out may be a better idea20:57
Snauryjelmer: btw, what bzr rebase does when I have merges in my diverged branch?20:57
jelmerSnaury, in the branch you're rebasing you mean?20:57
Snauryjelmer: yes. I might be wrong, but I think I might have lost some merges in the past by just doing bzr rebase. Poof and merge is gone, only direct commits were left. I'm not sure if I'm not mistaking though, I'll try reproducing it now.20:58
jelmerit will skip merge revisions if the changes they merged were already merged upstream (unless --always-rebase-merges is specified)20:58
jelmerif the revision was not merged in upstream, it will rebase the changes as it does with regular revisions and keep the information about the revisions that were merged20:59
jelmerSnaury, does that help?20:59
eeansheesh checking out a new tag takes like an 10 minutes21:01
eeanfrom locally21:01
jelmereean, that doesn't sound right, it should just be changing the tree21:01
jelmereean, did you specify the . ?21:02
beunoeean, you need shared repos21:02
eeanI had to do bzr branch -rtag:mysql-5.1.26 mysql-server/ mysql-server-5.121:02
eeanthe bzr pull didn't work21:02
jelmereean, perhaps specify --force to bzr pull21:02
Snauryjelmer: yes, so maybe I was just mistaken. :) I have pretty weird trees, maybe I applied the same change in both trees, or something else. Weird...21:02
eeanlogically a pull command wouldn't work21:02
eeanits not what a pull is for :P21:02
* jelmer wished "bzr switch" would accept a -r argument21:02
eeanbzr checkout should accept a tag21:03
eeanthat would make sense to me21:03
jelmereean, I agree21:03
eeanyour not really switching branches if you checkout a tag21:03
jelmereean, that would mean switching the master branch to that tag as well though21:03
eeanor bzr branching shouldn't be so slow, then it wouldn't matter.21:04
vilajam: I don't think the user should be remembered during a redirect... it could even return an ftp:// url21:06
vilathe root problem problem underlined by the FIXME is that we are not able to reliably put back the bzr decorators (http+pycurl and now nosmart)21:07
vilaanother root problem is that we don't try to reuse the transport at the point (get_transport() with no possible_transports21:08
vilaand finally the real root, IMHO, is that nosmart+ was meant to disable the hpss probing under specific circumstances and that people now use it a bit more freely21:09
jamvila: well, smart + bzr-svn interacted poorly, IIRC21:10
jamso people tried no-smart21:10
vilabut yes, indeed, there are redirections bugS now21:10
jamas for remembering user@ or not... if it is on the same host, under the same scheme, it seems reasonable to keep it21:10
jelmerjam, nosmart will not work with bzr-svn21:11
vilajam: get_transport() will reuse it indeed.. if possible_transports gives the hint21:12
vilahmm, it may need a bit of help regarding user :-)21:13
=== jam changed the topic of #bzr to: Bazaar version control system | http://bazaar-vcs.org | bzr-1.6.1 now available ! | http://irclogs.ubuntu.com/ | http://planet.bazaar-vcs.org/
Snauryjelmer, I was just able to reproduce this. bzr rebase really drops some merges.21:35
Snauryjelmer, try this: http://pastebin.ubuntu.com/43735/21:35
Snauryby the end of the script myrepo/remote-branch-df will have no trace of any changes to 1.txt (which was in the merge).21:36
SnauryThat's what happened to me once.21:36
SnauryI'm using http://people.samba.org/bzr/jelmer/bzr-rebase/trunk/ revno 10521:37
jelmerSnaury, Thanks, I'll see if it's expected behaviour21:43
jelmerSnaury, Sorry, I was wrong about the merge behaviour21:51
jelmerit will just skip all merges21:51
Snaury:(21:51
jelmersince it's hard to be smart about them21:51
jelmerSnaury, you can use --always-rebase-merges though21:51
Snauryjelmer: just tried that. in my example --always-rebase-merges doesn't change anything.21:53
Snauryjelmer: but it's different now. the merge was rebased, but the revision is completely empty(!)21:53
jelmerSnaury, hmm, I can reproduce that21:54
jelmerSnaury, please file a bug21:54
Peng_jam: Congrats on the release. :)22:00
jamthanks Peng_22:00
vilajam: You released 1.7 ?22:00
jamvila: 1.6.122:00
vilajam: kidding :-)22:00
jam /topic22:00
jam1.7rc1 will be monday22:01
jamso I had to get 1.6.1 out the door :)22:01
AmanicAthanks jam for your persistence with 1.6!22:01
vilaI *know* :-) I was just finishing reading your mails about your feelings about the 1.6 release ans I was trying to make you smile22:01
AmanicAI also just finised reading that thread :)22:02
Snauryjelmer: see bug #266897 -- I even reduced the test case, it doesn't matter if there's another commit after the merge or not.22:04
ubottuLaunchpad bug 266897 in bzr-rebase "bzr-rebase loses merges" [Undecided,New] https://launchpad.net/bugs/26689722:04
Snaury*test case -> test script22:04
jelmerSnaury, thanks22:06
jamAmanicA, vila: Thanks for your support. Now where were you during 1.6rc3-5? :)22:15
vilajam: hmmm, partly in vacations and partly working like crazy to finish my old job :-D22:16
AmanicAjam: I was away on holiday in europe22:16
vilaAnd even if I have been relatively silent these past days, I *did* work on "broken" (by platform) tests and I did my best to triage bugs (we are close to ~200 new bugs *only <cough>*) (learning a lot in the process. Far more than I can show right now), so I supported you more than you know :)22:21
jamvila: you've been on the 'good' side of the process :)22:24
vilajam: as for the reviews... Well, I plead gulty with mitigating circumstances (sp? blame google :), I didn't feel pertinent enough on the subjects :-/22:24
vilaLOL22:24
jamThough I will say you know a lot more than you think you do22:25
jamand you probably *should* be at least looking at the patches22:25
jamso as to familiarize yourself with it22:25
jamanyway, I'm done for the weekend22:25
jamI'll catch you all on Monday22:25
vilaOh, I looked at many....22:25
vilasure, enjoy your week-end !22:25
AmanicAcheers22:25
Odd_Blokevila: Where are you working now?22:38
=== Snaury is now known as Snaury[away]
datohi guys, I thought I'd just come by to say farewell. I'm trying to cut down the number of irc channels I'm in, and I think it's time to say good-bye to this one. I'm sorry that I've finally abandoned bzr, but I wish you the best of luck.23:25
datolifeless: sorry I never got to comment on the thread you asked me to, things have been hectic (in a good way), and I'm afraid I must cross it off my TODO list with "ENOTIME".23:26
mwhudsonyay for fixing #23706723:33
AmanicAbug #23706723:34
ubottuLaunchpad bug 237067 in bzr "RemoteBranch.lock_read() doesn't lock the underlying repository" [High,Fix committed] https://launchpad.net/bugs/23706723:34
AmanicA(just wanted to see what it is :)23:34
jelmerdato: Sorry to see you leave here :-(23:35
jelmerdato: Keep up the good work, I guess I'll see you around in some other channels :-)23:35
AfCOh, that's just charming: upgrade the format of a share repository, and then in one its branches `bzr info` reports Repository tree (format: unnamed)23:38
mwhudsoni think you get that when the branch format and the repository format together don't have a name23:40
AfCWell is it "bad"?23:41
mwhudson(1.6 == branch7 and packs5, i think)23:41
mwhudsonit's unfortunate23:41
AfCuh huh23:41
* AfC is getting a little tired of all these formats and variants. Surely a) Bazaar could upgrade itself, and b) it could enable subtrees or rich-root or whatever if it needs it.23:42
AfCWhy should a user ever have to run `bzr upgrade`?23:42
nDuffAfC, users can reasonably want to control when upgrades happen to allow older clients to be supported until their IT departments are ready to upgrade everyone.23:54
nDuffAfC, silently doing upgrades when features require them can create unexpected compatibility issues with other users running older clients.23:54
AfC"IT department"? These are _developers_ we're talking about. This isn't a corporation wide rollout of some office suite.23:55
* nDuff was involved in a startup using bzr with a very non-IT-proficient web design staff.23:55
nDuffAfC, not everyone who uses a revision control system is a developer23:55
nDuffAfC, and (sad as it is) not all developers know how to maintain their own systems (or are granted the rights to do so).23:56
AfCnDuff: so compatibility issues, fine, but it would be nicer for the rest of us if that sort of thing was turned on explicitly, rather than the bulk of the user universe having to deal with the insane mess that is bzr help init-repo23:56
nDuffAfC, anyhow, even if you *were* a developer-only shop, you wouldn't want one person running all the latest RCs to force everyone else to upgrade to an unstable version early, yar?23:56
AfCnDuff: right. So some branch.conf flag says "don't auto upgrade me". Easy23:57
AfCnDuff: (and yes, I would assume transparently taking care of shit like that would only upgrade at releases, etc)23:57
AfC[Reading the 1.6.1 release note blew my mind]23:57
AfC[certainly the fact that it cited "and if you've only been using releases you're ok" is a point in my argument]23:58
AfC[but exposing an argument that is called "--1.6.1-rich-root"? Come _on_]23:58
fullermdWell, it could be worse; it could be called 'star-merge' or something...23:59
nDuffheheheh.23:59

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