/srv/irclogs.ubuntu.com/2009/05/15/#bzr.txt

AfClifeless: where did you upload your GPG key? It's still not on any of the public keyservers.00:26
lifelesssubkeys00:27
igcmorning00:35
lifelesshi00:36
mwhudsonhi igc, lifeless, AfC00:36
igchi guys00:39
distaticaLet's say I made two revisions a moment ago, the last one I want to keep, the first one I made changes that I don't want anymore. What options do I have now? I don't want to revert back two revisions and lose the changes I made, but I'm not sure how to handle that.00:43
distaticaI'm a bzr / programming newbie, for what it's worth.00:43
lifelessdistatica: the easiest thing is just to undo the changes you don't want00:45
lifelessand commit00:45
distaticayou mean manually? Just go in and remove those and then make a new commit?00:45
distaticaOr do you mean there's a way to undo a revision?00:45
lifelessyou can undo a revision00:46
lifelessbut as you're new to bzr I suggest not doing that until you've got some more experience00:46
distaticaok00:46
lifelessjust edit your files and make them the way you want, and do a commit00:46
=== KX is now known as KX|360
distaticacould I make the last commit a patch, revert back and apply that patch? Or am I just getting too complicated?00:47
distaticaFor the record, I can undo these changes in about 20 minutes of work, so it's not a major critical issue, I was just going to learn how to do it while I'm here, unless I don't have the knowledge yet to perform it.00:47
lifelessso00:48
lifelessif you've shared the branch with someone you can't really ever delete the fact that you /did X/00:49
lifelessthink of bzr as a journal00:49
distaticaok00:49
lifelessonce shared with people they have the journal00:49
lifelessyou can't erase from their copy00:49
lifelessif you haven't shared it with people you can rip the most recent page  in your journal out00:49
lifelessand then write on a new page00:49
lifelessthe way you'd pop two commits off is:00:50
lifelessbzr uncommit00:50
lifelessbzr shelve --all00:50
lifelessbzr uncommit00:50
lifelessbzr shelve --all00:50
lifelessnow, bzr unshelve00:50
distaticaso, if I make 3 commits, revert back 1, and then share the repo, the log will only show 2 commits?00:50
distaticaok00:50
lifelesswill put the most recent shelved changes up ready for editing00:50
lifelessyes, though 'revert' doesn't affect the journal at all; 'bzr uncommit' does00:51
distaticaoh I see00:51
lifeless(the shelve --all, unshelve pair is a no-op, you could just do uncommit, shelve --all, uncommit to get to the same state)00:51
distaticathis is an issue I've been having, being a non-programmer some of my commits are... well pointless. :) It's just me screwing around with one thing, doesn't work, go back, try another.00:51
lifelessanyhow, at this point in my example, you'd change things so they are you want, the commit00:51
lifelessbzr unshelve00:52
lifelessand bzr commit again00:52
distaticaok00:52
lifelessand you're back nearly-where-you-started but with the commit 2 back changed00:52
lifelessso back to the journal analogy00:52
lifelessif someone has been reading your journal00:52
lifelessits not pointless ;)00:52
lifelessif they haven't, if its private notes, then its fine to just change your mind00:52
distaticaok, that's great news actually -- I had asked this question from someone a while back and got the impression (most likely due to my own ignorance) that once it was there it was set in stone and that was that.00:53
lifelessthe key thing is sharing00:54
distaticayeah, once it's gone then it's stone.00:54
lifelessonce you've done that its more tricky :)00:54
distaticagreat, thank you.00:59
igclifeless: does that mean that stacked branches are implicitly standalone?01:11
lifelessigc: not sure what you mean by that01:14
igclifeless: when you said "we explicitly don't stack in shared repos"01:14
igcwhat did you mean exactly?01:14
lifelessso01:14
lifelessin principle a branch can be stacked, while in a shared repo01:15
lifelessbut our ui code says 'oh, you have a shared repo, we won't stack'01:15
lifelessso it should be unusual, but its not impossible, to encounter a stacked branch in a shared repo01:15
lifelessI think we'll probably make it very common when we overhaul how we manage branches01:15
igcok01:15
lifelessbut thats a different discussion01:16
igcright01:16
igclifeless: on another topic, that commit file patch has been reworked as we discussed01:21
igcI know you're really busy ...01:21
lifelessthanks01:21
igcbut if you're happy with it, I'll land it fro 1.15 today01:21
lifelessI appreciate the ping01:22
lifelessmy day is:01:22
lifeless1) slides, deadline is today01:22
lifeless2) final prep for trip01:22
lifeless3) all other stuff01:23
AfClifeless: ah, there it is now.01:25
AfCmwhudson: morning :)01:25
jmlpoolie: you know how you say you use the register-branch API -- how exactly do you authenticate with that?01:29
jmlbzr alias snt="snt"01:39
* jml corrects the typo and tweetoblags.01:40
pooliejml: i think it uses https auth01:48
pooliehello all01:49
pooliei'm basically getting ready to go and doing slides today01:49
poolielifeless: i approved your patch as you probably saw01:49
jmlpoolie: yes.01:49
jmlpoolie: and it prompts you for your Launchpad password?01:49
pooliei think so01:50
poolieit's so 2006 :)01:50
pooliealso, saying "it's so x" is so 2006 :)01:50
lifelesspoolie: I landed it as you may have seen :)01:50
jmlpoolie: I'm actually waiting for a revival of "c'mon, it's the nineties!"01:51
jmlpoolie: I may be waiting a while.01:51
spmjml: so long as we skip the 80's revival. there are some places that should be left in the past.02:05
lifelessspm: when doves fly02:22
spmlifeless: ha! 'twas more the vison of the 80's "BIG" hair and warrick kapper style shorts that terrifies02:23
jmllifeless: also when they cry.02:23
lifelessit a myth02:25
bob2shudder02:34
fullermdjelmer: ping03:06
jelmerfullermd: pong03:12
fullermdIs there some reason you chose malloc.h rather than just using stdlib.h in the pyrex rio stuff?03:13
lifelessigc: ping03:17
lifelessigc: I didn't see a new merge request for that branch; did you simply push up changes?03:17
igclifeless: I did push the changes and ...03:27
igcI tried to tell lp that it needs a new review03:27
igcbut the latter didn't seem to do much :-(03:27
lifelessI've filed a bug03:27
lifelessone thing I've seen already03:28
lifelessthe def check inner function03:28
lifelessthats very opaque style03:28
lifelessit would be clearer to either just do self.assertEqual(x,  ...) 3 times03:28
igcI just copied what was there from memory03:29
lifelessI realise this is kindof trivial, but we had 100 line tests that looked like that once03:29
lifelessand it was fugly03:29
fullermdjelmer: FreeBSD malloc.h has been #error'ing since 2001 (and #warning'ing since 1994) and pointing grumpily at stdlib.  Builds fine for me with that change.03:34
jelmerfullermd: I've sent a merge req03:37
fullermdRox.  jelmer++03:40
* jelmer longs back to the days when statements had to be terminated with semicolons and malloc lived in malloc.h03:41
fullermdWhen men were real men, women were real women, and small furry creatures from Alpha Centauri were real small furry creatures from Alpha Centauri?03:47
lifelessigc: ok reviewed03:54
igclifeless: thanks03:54
lifelessigc: I'mvery glad you factored it out, because now I'm sure there was something really wrong earlier ;)03:55
lifelessigc: and yes, I've just checked your older code03:56
lifelessso the problem is, you don't actually force include missing parents03:57
lifelessthey aren't being generated from iter_changes03:57
lifelessso you'll have to iter_changes the *entire tree* if the user uses specific files03:57
lifelessigc: If you want to chat about this, I'm happy to do so04:00
igclifeless: thanks. I'll take a look soon04:00
lifelessigc: I'm going to nose down on presentations04:06
lifelessigc: you may need to ring me :P04:06
igcok04:06
* igc lunch04:58
lifelessso the good news is we saturate my link very happily branching bbc over the smart server05:34
lifelessigc: did my review make sense?05:39
igclifeless: just got back from lunch - I'll take a look now05:40
igclifeless: so, I might be stupid but I still don't see the problem ...05:46
lifelessok05:46
igciter_changes only needs to return changed parents, not all of them05:46
lifelessright, but unless its looking at parents it won't return them, because iter_changes has a bug05:46
igci.e. if a parent isn't in iter_changes, then it isn't needed in apply_delta IIUIC05:46
igclifeless: but it *is* looking at parent right now05:47
lifelesshow?05:47
igcit looks at the whole tree, then post-filters05:47
lifelessow05:48
lifelessI'm really torn05:48
igcnad osutils.parent_directories doesn't need to return the root05:48
igcat the os level, '' doesn't make sense05:48
lifelesswell, other code would be cleaner if it does - as you are making sure you have [''] always05:48
igcalso, my change to when record_titer_changes was deliberate ...05:49
igcand the comment still hold exactly as is btw05:49
igcI benchmarked to decide when it was the right thing fwiw05:49
lifelesswhy the (len(self.parents) < 2 and not self.specific_files and not self.exclude)05:51
lifelessclause?05:51
igcbecause for non-chk formats, ...05:51
igcit's slower than the current code otherwise05:52
igcat least on Emacs05:52
igcI'm happy to extend the comment along those lines05:53
lifelessSo this means tha the self.specific_files and self.exclude processing with record_iter_changes is _slower_ than the old full-tree code path05:53
lifelessand that its only faster with record_iter_changes on chk repositoreis because the chk code is able to compensate05:54
lifelessI appreciate that you've got it going faster05:54
igcyes, according to my measurements05:54
lifelessI'm really worried that the other changes, such as the reinstance of files_across_trees are going to make it harder for someone to come bacj and fix bug 347649 properly05:54
ubottuLaunchpad bug 347649 in bzr "iter_changes missing support needed for commit" [High,Confirmed] https://launchpad.net/bugs/34764905:54
igcit was consistently slower - 08. vs 04 or something like that05:54
lifelessas they will have to basically undo this patch to fix it05:54
lifelesson the other hand I don't want to block performance improvements05:55
igclifeless: I did look at trying to remove the file_across_trees bit but ...05:55
igcit broke the test suite cos ...05:55
lifelessdo you have any suggestion about how we can do both things?05:55
igcwe trap for bogus include paths05:55
igcand iter_changes doesn't see those05:56
lifelessfile_across_trees is a problem because it upcassts the dirstate to an inventory - its spectcularly slow05:56
lifelessemacs is what 20K files?05:56
igcjust checking, we're talking about the _set_specific_file_ids() method yes?05:57
lifelessyes05:57
igcemacs is 8K from memory05:57
igc100K revisions but ...05:57
igcthat doesn't matter myuch here05:57
lifelessok, so 16K inventory entries05:57
lifelessI don't feel good about this code05:58
lifelessso I'm going to recuse my self as a review at this point; I don't want to block you, and I haven't managed to open your eyes to why the layering is a problem or matters so much05:58
lifelessI'll be effectively offline for 2 weeks, and I don't like the idea of you being blocked for that long.05:59
igcI see and agree with the desire for one iter_changes call covering ...05:59
igclegal filename checking, strict checking and collecting results05:59
igcbut I don't see it being necessary to get there in a single step06:00
lifelessI bet you cold cache specific file commits will be way slower with your patch06:01
lifelessparticularly on the large trees I've been working up to - 50K and 100K files06:01
igcslower than now or slower than possible?06:02
lifelessslower than now06:02
lifelessI could be wrong06:02
lifelessbut what you trade off is some unoptimised code (CHKRepository.add_inventory) for some optimised code that does a lot of IO (WT.iter_changes of everything)06:03
igcI'll throw together the OOo tree and benchmark on it06:04
lifelesscold cache will be key to see the disk IO impact06:05
lifelessI can suggest a completely different approach if you just want to make it faster in the interim06:05
igclifeless: design wise, I have a question ...06:05
igcif we delegate specific_file prcoessing to iter_changes ...06:05
lifeless(an approach I wouldn't feel unhappy about)06:05
igchow we we accurately insert the parents after the fact?06:06
igcs/we/can/06:06
igcwe don't have all the info?06:06
lifelessigc: iter_changes is allowed to jump around06:06
lifelessigc: it already does this for renames06:06
lifelessiter_changes has built into it the logic of find_ids_across_trees06:07
lifelessanyway06:07
lifelessif you want something easy06:07
lifelessadd a parameter to finish_inventory called 'basis_inventory'06:07
lifelessand if use_record_iter_changes is False in commit06:07
lifelesspass self.basis_inventory to finish_inventory06:07
lifelessand in finish_inventory do:06:08
lifelessif self.repository._format._commit_inv_deltas06:08
lifelessdelta = self.new_inventory._make_delta(basis_inventory)06:08
lifelessself.repository.add_inventory_by_delta(basis_inventory, basis_inventory.revision_id)06:09
lifeless^06:09
lifelessthis will work around finish_inventory being overly slow in CHK repositories when not using record_iter_changes06:09
lifelessand as you'll already have a basis_inventory it should be nigh free06:10
igclifeless: ok, I'll play with that next week and try it on some larger data sets06:11
lifelessigc: I would expect that to be ~= to what you have today, and deal with cold cache and other situations much better06:12
lifelessno where near as fast as fixing iter_changes06:12
lifelessI would expect a fixed iter_changes to smoke everything06:12
lifelessas for what to do in iter_changes to handle parent dirs06:14
lifelessI would keep a minimal set of directory items output06:14
lifelessand a 'we need a parent of X' queue06:14
mtaylormorning lifeless06:14
lifelessat the end of the normal loop, if there 'we need a parent of X' is non-empty06:14
lifelesswe do the normal loop on just the missing parents06:15
lifelesswithout recursion06:15
lifelesshi mtaylor06:15
lifeless25 minutes to branch samba with bzr06:15
lifeless16 with git :(06:15
lifelessI think the difference is entirely size06:15
lifelessas both saturated my link06:16
mtaylorlifeless: I had to use hg ove the past few days for something - hated every second06:16
lifelessmtaylor: :)06:16
igclifeless: right, and it's the lack of recursion support that makes it hard to tack these on now06:16
igclifeless: btw, there is a genuine use case for filter_iter_changes_by_paths() beyond commit: post processing the output from Inventory.iter_changes()06:17
igcand anything else that looks the same but doesn't take the specific_files parameter06:18
lifelessigc: Sure, I wouldn't have suggested a generic function if I didn't think it could be useful generically ;)06:18
lifelessigc: that said, I think Inventory.iter_changes should take specific_files :)06:18
igcwith chk_maps, I'm pretty sure we get the lot and post-filter much like this06:19
igclifeless: anyhow, thanks for the feedback & have fun at uds/allhands06:20
lifelessI'd like to have a toolkit of iter_changes iterator filters06:20
lifelessquite separately from making commit awesome06:20
igclifeless: I was thinking along those lines too06:21
lifelessbut the only way to avoid excess IO is for iter_changes to know that it should skip over things06:21
lifelesswhich the sepecific + exclude params are needed or06:21
lifeless*for*06:21
igcwhen dirstate.iter_changes() supports exclude as a parameter, I'll be far more interested :-)06:23
lifelessI'd like it if someone other than John and I did that06:24
lifelesswe've got a bunch of talented people06:24
igcwe do06:24
igcand it's a talent knowing which bits of code to leave to the experts :-) :-)06:25
* lifeless snorts06:25
* lifeless looks around for that beaker of expert-juice06:25
igcI've read the dirstate code multiple times and it still makes my head spin :-(06:25
lifelessthe C version is a lot clearer06:25
lifelesswe got to use functions06:26
lifelessthey help ;)06:26
igcyes :-)06:26
lifelessIf you want to poke at iterchanges a bit and send mail asking for clarification please do06:26
lifelessit will be an asset to have you understand it06:26
lifelessthough, does our medical cover self inflicted insanity?06:28
lifelessigc: I have another hidden motivation06:34
lifelessI want to make the commit code radically simpler06:34
igclifeless: I'm all for that06:34
lifelessby having it be _just_ policy on top of iter_changes + CommitBuilder06:34
lifelesspolicy+ui06:35
igcthough it's pretty good but one particular bit now06:35
igcand that bit is around the pointless-commit checking06:35
lifelessyes06:35
igcI think some of check_pointless() ought to be pushed down into builder.any_changes()06:35
lifelessyes, or removed06:36
lifelessuhm06:36
lifelessany_changes is kindof pure06:36
lifeless I don't think it should be saying 'no' if there are changes06:36
lifelessalso06:37
lifelesscheck_pointless should also catch pointless merge commits06:38
lifelessif you know what I mean06:38
igcthat "initial commit is just a root directory" stuff seems to look way too much into the builder for my liking (was my point)06:39
igcanyhow, back to other stuff06:40
lifelesssure06:40
lifelessI agree06:40
vilahi all07:31
lifelesshi07:32
jmllifeless: how go the talks?07:40
lifelessgood07:53
lifelessgc one nailed I think07:53
lifelessbvg one nearly full-draft07:53
knielsenis there an algorithm that given a bzr revision number will provide the revision number of the parent (leftmost parent in case of merge changeset) ?08:29
Peng_beuno or mwhudson: ping08:29
knielsenie. N -> (N-1), but what about composite revision numbers?08:29
lifelessknielsen: X.Y.Z->X.Y.(Z-1) forall Z > 008:30
lifelessknielsen: X-1 for all X.Y.Z, Z=008:30
lifelessIf I remember correctly ;)08:30
fullermdSounds like an XY problem question, though.08:30
* lifeless looks around for the muzzle08:31
fullermdI told you, wait 'till she leaves town.08:32
lifeless:P08:32
knielsenlifeless: hm, thanks, but doesn't that sound too simplistic?08:32
* knielsen thinking08:32
lifelessknielsen: if you want it to be complex, I can come up with some extra stuff08:32
vilaX.Y.Z->X.Y.(Z-1) forall Z > 1 X-1 otherwise (we don't have Z=0 AFAIK)08:33
YoussefHi all!08:33
Youssefis there an admin?08:33
vilaknielsen: but relying on revnos is fragile, why don't you just access the revision map and take the first parent /08:34
vilas!/!?!08:34
Peng_I hate time zones.08:34
* vila talking perl again :(08:34
knielsenvila: yeah, just wondering08:34
Peng_Whoever invented time zones had no respect for programmers. :(08:34
vilaPeng: go to North Pole and turn around if you don't like the current TZ08:35
knielsenvila: I prefer revid:'s myself, but most of the world seems to be using revision numbers without considering that they can change at each merge08:35
Youssefplease guys respond me!08:35
Peng_Youssef: I admin things, but probably not what you're interested in.08:35
Yousseflol08:36
Youssefokauy08:36
Youssefyesterday i asked what is the difference between08:36
Youssefcreate a checkout and make a local copy of the branch08:36
vilaknielsen: there are not supposed to change in a given branch, not even a trunk one where other branches are merged into if you use append_revisions_only08:36
fullermdTime zones are an artifact of diurnal slavery.  Liberate thyself!08:37
knielsenvila: well, if two people branch from revision N, and each commit revision N+1, then at least one of the commits will change the revision number when you merge ;-)08:38
lifelessvila: you're wrong ;)08:38
lifelessvila: the parent of the first commit on a branch is a mainline rev08:38
YoussefPeng_:08:38
Youssef???08:38
Peng_fullermd: I did, but the rest of the planet hasn't followed along, so I still have to deal with it.08:38
Peng_Youssef: Probably the difference between "bzr checkout' and "bzr branch". See ToirtoiseBZR's docs and "bzr help".08:38
fullermdPeng_: Their fault then.  Apply beatings until behavior is modified.  Making bail is left as an exercise for the reader.08:39
YoussefMmhhhh... okay thanks08:40
Peng_fullermd: I can't beat up everyone.08:40
vilaknielsen: not inside a given branch, on trunk the first to push will even keep the same revno as his local branch08:40
Peng_Wait, I only have to beat up all Bazaar users. That's significantly easier, but still impractical.08:40
vilalifeless: wrong about Z=1 or about revno stability ?08:41
lifelessvila: Z=108:42
knielsenvila: didn't know about append_revisions_only, want to check that ... but what I mean is if I eg. branch from an old revision of lauchpad directory, commit locally, merge tip of the launchpad branch, and finally push the result to the launchpad branch, all intervening revision numbers will change08:42
knielsenright?08:42
lifelessknielsen: yes08:42
vilaknielsen: yes08:43
lifelessknielsen: this is used to control presentation of history08:43
vilaknielsen: either your manage history presentation from trunk or you force your local history upon others08:44
vilathe later doesn't scale very well08:44
knielsenwell, actually I prefer to always use revid: when sending revision references to others (or tags of course) ...08:45
knielsenbut I don't understand what you mean with "manage history presentation from trunk" ?08:45
knielsensounds like there is some documentation somewhere that I would like to read to learn about this ;-)08:45
vilaknielsen: you mean you're voluntering to write it ? Great ! :-)08:46
knielsenlifeless: right, just did a simple example of multiple branching/merging, and I got 1.1.2 as the parent of 1.2.1, so the issue _is_ a bit more complex (as it must necessarily be)08:47
knielsenvila: I might actually, but I will have to learn it first ;-)08:47
vilaknielsen: the left-hand side history for a given branch is shown by 'bzr log -n1'08:47
knielsenprobably I will check into the source code08:47
vilai.e. you get the commit messages for the commits done on that branch only, not the commit messages for the merged revisions08:48
vilamanaging history presentation from trunk then means that you chose proper commit messages when merging and generally do only commits for merges in trunk08:49
vila*but* if you push on trunk, you end up with series of commits for each feature or bugfixes, not a synthetic view, but a detailed one08:50
knielsenvila: yes. Exactly08:51
vilait's a highly subjective matter08:51
knielsenvila: well, the underlying problem is an automatic tool that monitors a public branch for changes, and eg. builds and tests each new revision, or does some other action08:52
knielsenvila: and often I see the tools or people providing notifications in the form of the revision number of the new revision08:53
vilaknielsen: we call that a gatekeeper08:53
lifelessknielsen: huh?08:53
lifeless1.2.1 descending from 1.1.2 ?08:53
lifelessoh, its the newer form, the original had the drop-2 items property08:54
knielsenvila: but the revision number is actually not suitable for this in the general case. Just knowing the revision number does not allow you to do anything really reliably, as when you look at the branch that revision number may rever so something else entirely08:54
knielsenvila: so the solution is to use revision id's, of course...08:54
lifelessknielsen: long lived branches often set the append only flag08:55
lifelesswhich means the revnos are stable08:55
knielsenlifeless: yes, I want to check up on that flag, wasn't aware of it. sounds useful08:55
lifelessbzr help configuration, I believe08:55
knielsenI guess I will look into the source to learn more at some point08:55
fullermdTo be precise, it's not so much that the flag keeps the revnos stable, as that it prevents you from doing the things that make them change.08:56
vilafullermd: right08:57
knielsenlifeless, vila: anyway, thanks a lot for you comments, quite useful08:58
* igc dinner09:19
=== fta_ is now known as fta
bialixjelmer: I have a couple questions about bzr-git11:15
bialix1) does it can work with github? at least for branch/pull11:15
bialix2) why you has marked it as incompatible with Windows?11:15
jelmerbialix: it works with github11:27
jelmerbialix: it's not been tested on Windows yet, and I'm aware of some places where we should be converting / to \11:28
bialixjelmer: re Dulwich: does C-extensions (_object.c and _pack.c) is used now?11:33
jelmerbialix: they're optional11:33
jelmerbialix: patches to fix the windows issues are very much welcome btw11:34
bialixI've fixed setup.py to compile them, but _pack.c cannot be compiled with MSVC right now (MSVC lacks stdint.h)11:34
bialixjelmer: I have interest in bzr-git11:34
jelmerbialix: you can steal the stdint.h replacement from bzr-svn11:34
bialixperhaps I need to work with some github projects, so11:34
bialixok, I'll look to bzr-svn then11:35
bialixjelmer: how you prefer to get patches: by mail or via LP merge requests?11:36
jelmerbialix: by email11:36
bialixok11:36
awilkinslifeless: Did you speak to me earlier? I have an alert but my scrollback doesn't contain it11:49
awilkinslifeless: I either had an obscure bug or suffered from an MD5 collision in my packs... I think the bug is far more likely11:51
lifelessawilkins: bug, windows specific11:55
lifelessfail during inserting a pack11:55
lifelessthen do the same pull again11:55
lifelessfail the second time because we can't rename over the file11:55
awilkinslifeless: Aha, yes, I got that11:55
lifelesscan you file a bug:)11:56
awilkinsDefinitely, I was watching with a FS traceer11:56
awilkinsI think the fail may either have been a permissions thing or a result of that jailbreak bug11:56
awilkinsAlthough it recurred after I fixed the jailbreak, move the repo, made a new one, and pushed all the branches into it11:56
awilkins'twas always a particular pack, I recognised the MD5 each time11:57
lifelessyes11:57
lifelessodd to have it happen again ><11:57
lifelessreproducible?11:58
lifeless[and have you filed a bug for the rename handling of it on windows? :)]11:58
awilkinsGimme a chance...11:58
lifeless:P11:59
awilkinsI saw it write the pack and then write it again in the same session12:00
lifelessoh? depends on what you mean by that12:00
lifelessolder clients write to packs by doing append many times12:00
awilkinsI still have the nagging thought that it could have been an MD5 collision but that would be rather silly12:00
awilkinsThis was a 14.1 client writing to a 14.1 server over HTTP HPSS12:01
lifelessso that does a single post12:01
lifelessif it was an md5 collision a different error12:01
lifelesswould have been reported12:01
lifelessone that says 'lucky you' in essence12:01
awilkinsDoes it even check?12:02
lifelessyes12:02
lifelesswelllll12:02
lifelessthere are checks about this12:02
awilkinsThe trace (which I didn't save, sorry) had the offending pack created and written in "packs" then in upload, then it tries to rename it from upload to packs and fails12:02
awilkinsMaybe I'll do it again when I'm back in the office12:03
awilkinsRight now I have an annoying deadline I'm going to miss12:03
lifelessoh12:03
lifelessmight be a suspend/resume bug12:04
awilkinsOf the session?12:04
lifelessyeah, stateless server - saves in progress pack as <hash>.pack in uplaods12:04
lifelessthen does the final rename to ../packs in a separate hpss call12:05
awilkinsThat rename is the bit that fails - shouldn't it be doing all the pack writing like that and not creating files in "packs"12:05
awilkinsHmmph, I can't branch 1.14 from lp12:06
awilkinsError received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'")12:07
awilkinsI've been getting that for 3 days now12:07
lifelesstry with sftp12:07
lifelessif that works we need to repair the branch12:07
lifelesssmart server wants more data in stacked branches12:08
lifelessrepair is a bit wrong; just push a tad more data into it12:08
awilkinsLooks like a missing bit of API12:08
lifelessbzr branch nosmart+bzr+ssh://b.l.n/~bzr/bzr/bzr.dev12:08
awilkinsGot a 'str' object has no attribute 'get' trying sftp12:11
awilkinsI think that might be bzr-svn though12:11
jelmerawilkins: yeah, that's a known issue fixed in 0.612:12
awilkinsOk, the problem occurs in the finish() method of NewPack12:19
jelmervila: are you aware of the python-webdav module?12:30
vilajelmer: never heard about it12:34
jelmervila: python-based webdav server implementation12:36
jelmervila: I'm looking at it for bzr-svn server side testing12:37
bialixjelmer: ping16:30
jelmerbialix: pong16:30
bialixjelmer: if you don't like my test command I'll keep it for myself in my own branch16:31
bialixso other patches I'll prepare in another branch16:31
bialixwhat I should do?16:32
jelmerbialix: Please keep it separate16:32
bialixok16:32
bialixjelmer: are you ok to put test files into temp subdir?16:33
mxpxpodjelmer: around?16:35
jelmermxpxpod: hi16:35
mxpxpodI'm getting an error trying to push to a branch using bzr-svn16:35
mxpxpodSubversionException: ("'/svn/support/!svn/bc/5/branches/1.0' path not found", 160013)16:35
jelmerbialix: ideally check for TEMPDIR environment variable and if that doesn't exist, tempdir subdir16:35
jelmermxpxpod: can you give a bit more context?16:36
mxpxpodjelmer: do you want my .bzr.log?16:36
jelmermxpxpod: yeah, can you mail that perhaps?16:36
bialixjelmer: on Windows there are $TEMP and $TMP. Also I can use tempdir python std lib16:36
mxpxpodjelmer: yup, where would you like it emailed to?16:36
jelmermxpxpod: jelmer@samba.org16:36
=== mario_ is now known as pygi
jelmerbialix: ah, yeah, python std lib tempdir sounds like a good idea16:37
bialixok16:37
mxpxpodjelmer: sent16:37
bialixjelmer: do you did rebase of my forst patch?16:50
mxpxpodjelmer: let me know what you figure out...16:50
bialixs/forst/first/16:50
jelmerbialix: yeah, I dpushed it16:51
jelmerbialix: dulwich is maintainer in parallel in both git and bzr16:51
bialix:-(16:51
jelmermxpxpod: no email yet16:51
jelmers/maintainer/maintained/16:51
mxpxpodjelmer: check your spam... it's from bryan@reigndropsfall.net16:52
bialixjelmer: even file-ids are not preserved :-(16:53
bialixshould I send to you plain diffs then?16:53
jelmerbialix: no, please by all means do send bundles16:54
jelmerbialix: dpush will preserve whatever it can in git16:54
jelmerbialix:16:54
jelmerbialix: it will retain author/committer, commit message and multiple commits and the merge graph16:54
bialixI have a lot of coinflicts16:54
jelmersorry about that16:54
jelmerit would've been the same with a plain diff though16:54
bialix:-/16:55
jelmerat some point bzr-git will start supporting push16:55
* bialix need to figure out how to best handle this in the future16:56
jelmermxpxpod: still nothing, can you try jelmer@ubuntu.com ?16:56
mxpxpodjelmer: yeah16:56
* jelmer dinner16:57
mxpxpodjelmer: sent16:58
* bialix waves16:59
jelmermxpxpod: that worked17:01
jelmermxpxpod: please file a bug17:01
jelmermxpxpod: there is one somewhere there17:01
jelmermxpxpod: 0.6 ?17:01
mxpxpodjelmer: 0.5.417:01
awilkinsjelmer: Do you still have to use svn-push or can you just use push for new branches that don't exist in the target repo?17:30
awilkins(for 0.5.4)17:30
SamBawilkins: I don't think svn-push still exists ?17:31
* awilkins reads the help and answers his own question17:34
awilkinsSamB: It's there, but the help says it just tells you to use push17:34
awilkinsIt's going to be a long push anyway, many MB of data over a rather slow upstream17:34
awilkinsI do find myself wishing it was a bit more chatty17:34
awilkinsIt's just sitting there eating bandwidth and some feedback would be nice :-)17:34
awilkinsIf only so I can tell when I've hit my ISP cap and it's throttled me :-)17:34
SamBdoesn't it show you the progress ?17:35
SamBand transfer rate ?17:35
awilkinsSamB: The other transports do, but this one isn't17:35
jammneptok: I heard you were looking for me17:51
awilkinsYegods I hate having a slow upstream18:01
mneptokjam: i am!18:06
mneptokjam: got time to look into a bug that's blocking some MariaDB work?18:06
mneptokjam: https://bugs.launchpad.net/bzr/+bug/37589818:07
ubottuUbuntu bug 375898 in bzr "bzr merge fails: bzr: ERROR: No final name for trans_id 'new-1'" [Undecided,New]18:07
mneptok!botsnack18:07
ubottuYum! Err, I mean, APT!18:07
jammneptok: I have not specifically looked at that yet, if you give me a bit I'll have a peek18:09
mneptokjam: at your leisure, sir.18:11
mneptokjam: thanks for the mental bandwidth :)18:11
=== Kissaki^0ff is now known as Kissaki
jammneptok: so is re-doing the merge of pbxt an option?18:30
knielsenjam: that's certainly an option. The merge described in the bug was just a test, and since there were problems it has been put on hold18:31
jambecause I'm guessing that doing something like "bzr merge-into/bzr join" is going to be a lot easier18:31
knielsenjam: we were not aware of the bzr join functionality, but it looks interesting (and what is bzr merge-into?)18:33
jamknielsen: 'lp:bzr-merge-into' is a plugin that merges a project into a subdirectory of another project18:33
jam'bzr join' is a built-in command to do the same thing, but as written has specific requirements as to repo formats, etc18:34
knielsenjam: sounds like this would be better, using a supported way to merge a subproject rather than the hackish/abusish approach from the bug...18:35
jamknielsen: so from what I could see, you are merging everything in, but you get some filename conflicts, so you move them out of the way, do the global merge, then merge them back in18:35
jamsorry,18:35
jamrename them to where you really want them18:35
knielsenyes, sounds right18:36
jamlet me give it a poke, since I should have what you need here18:37
knielsenhm, bzr docs says `bzr join` requires that the tree to be joined be first split out with `bzr split`... but won't that prevent commits from the original subproject tree to be pullable into the new joined tree?18:38
knielsenwell, I should try it and see18:38
jamknielsen: well, I've used 'merge-into' before to maintain a nested structure18:39
knielsenjam: ok, I'll look into that as well18:39
jamthe only known issue is that newly added files in the root of the subproject18:39
jamwill show up in the root of the outer project18:39
jamrather than in the subdir18:39
jamotherwise, things should flow fine18:39
jamknielsen: what rev of maria should I try to use?18:39
jam(just before the pbxt merge)18:39
jamah, I think I found it18:40
knielsenjam: you can use the revid:paul.mccullagh@primebase.org-20090407105746-tolv5dita1d3eavm of lp:maria18:41
jamk, i used -r'revid:paul.mccullagh@primebase.org-20090407105746-tolv5dita1d3eavm' since that was in the bug report18:41
jamlooks about the same :)18:41
knielsenjam: just out of curiosity, do you think the "ERROR: No final name for trans_id 'new-1'" is a bzr bug, or caused by user abuse?18:42
jam(At first glance Pidgin decided to turn : Paul into a smiley face, so it wasn't obvious)18:42
knielsenheh18:42
jamknielsen: it *is* a bug, but whether it was introduced at the 'combine' step, or at the new merge time...18:43
knielsenjam: right...18:43
knielsenjam: there is a _lot_ of add/rename/modify going on on top of each other on the same files, so lots of potential for borner case bugs.18:44
knielsens/borner/corner/18:45
Takis there a way to explicitly close a branch? (bzrlib)18:46
jamTak: del branch18:47
jamknielsen: I'll post my approximate steps18:47
Takaha, thanks18:47
knielsenjam: cool, thanks18:47
Takhmm, how does that work when I have a tree and/or a revisiontree that I've obtained from that branch?18:49
Takdo I need to del them all?18:49
jamTak: well, you need to get rid of all references to the branch18:53
jamI'm not sure how you got a "tree" from the branch, though certainly a revtree via repository18:53
jamI doubt the revtree references the branch, but it would reference the repository18:53
jamknielsen: update posted to 37589818:54
Takok, so I need to nuke everything that might reference the branch18:54
* knielsen looking18:54
TakI suppose Branch.close() wouldn't be considered in the future? ;-)18:54
jamknielsen: I can say that after doing the recipe I mentioned18:55
jamI can do: "bzr merge lp:pbxt"18:55
jamand the files changed are in storage/pbxt/... and mysql-test/suite/pbxt/...18:56
knielsenjam: right, that's cool18:56
knielsenjam: I'll definitely try it out and see how it works18:56
knielsenjam: With the original merge I did, the but shows up when merging a single changeset from lp:pbxt, but merging all of lp:pbxt worked like you tested on the new merge. So will be interesting to compare18:57
jamknielsen: can you give the cherrypick you want me to try?18:58
jam(note that I won't have applied your individual patches yet)18:58
jambut we still shouldn't get 'no name for new-1' sort of stuff18:58
jamwe could give conflicts, etc, but that error is an internal bug18:59
knielsenjam: I did `bzr branch -rrevid:paul.mccullagh@primebase.org-20090403100843-wrwq5hjzvnigsx69 lp:pbxt to-be-merged and then merged from the to-be-merged branch.18:59
jamknielsen: that would be a complete merge, not a cherrypick, at least as far as I can see19:00
jamyou aren't specifying an explicit base19:00
jamwhat you just mentioned should be equivalent to:19:00
jambzr merge -r revid::paul.mccullagh@primebase.org-20090403100843-wrwq5hjzvnigsx69 lp:pbxt19:00
knielsenjam: that might be the same as cherry-picking revid:revid:paul.mccullagh@primebase.org-20090402202852-wa2fbcmrdy7gda2f..revid:paul.mccullagh@primebase.org-20090403100843-wrwq5hjzvnigsx69 - I'm not sufficiently knowledable with bzr to know (it's a single commit)19:01
jamand at least here, I get:19:01
jam$ bzr merge -r revid:paul.mccullagh@primebase.org-20090403100843-wrwq5hjzvnigsx69 ../pbxt19:01
jam M  mysql-test/suite/pbxt/r/type_varchar.result19:01
jam M  mysql-test/suite/pbxt/t/type_varchar.test19:01
jam M  storage/pbxt/src/ha_pbxt.cc19:01
jamAll changes applied successfully.19:01
knielsenjam: basically, I'm merging the next single commit on lp:pbxt ...19:01
knielsenjam: right, so it works!19:01
jamknielsen: with the range you gave, I get the same result "All changes applied successfully"19:03
jamand it doesn't count as a cherrypick19:03
knielsenjam: right, so in the merge in the bug report, the two first files are actually deleted in the merged mariadb tree ...19:03
jambecause evid:paul.mccullagh@primebase.org-20090402202852-wa2fbcmrdy7gda2f is in your ancestry already19:03
knielsenjam: and bzr says something strange: +N mysql-test/suite/pbxt/r/type_varchar.result.OTHER19:03
knielsen    +N mysql-test/suite/pbxt/t/type_varchar.test.OTHER19:03
jamknielsen: well "Contents conflict in ...." is "You deleted X, but OTHER modified it, Conflict"19:03
jamso we version the latest version of the OTHER (as .OTHER)19:04
jamsince you can "bzr revert .....OTHER" if you want to preserve your delete19:04
jamor you can "mv x.OTHER x" if you want to restore the file19:04
knielsenjam: right. In any case the conflicts are correct19:04
jam[I'm not particularly fond of versioning foo.OTHER, but I understand why it was chosen.]19:04
jamthat said, the "No final name for trans_id 'new-1'" is still a bug19:05
knielsenof course19:05
jamI don't know how it thinks it wants to version a file, with no real file-id19:05
jamand obviously no filesystem path19:05
jamknielsen: anyway, I can probe directly into the bug, or I can say "use merge-into" to do this sort of thing, and we can punt for now19:06
jamI'd like to get back to working on my presentation for next week, if that is ok19:06
knielsenjam: yes, agree. Using merge-into is in any case much better, thanks a lot for that hint.19:07
knielsenjam: so I will look into merge-into to solve our problem. And then later when you or someone else get back to look at the bug, I hope you will have the necessary information to debug it19:08
knielsenjam: I gave the 3-step sequence to reproduce from public launchpad trees, with revid:s to make sure they stay stable, so hopefully that will be sufficient19:09
knielsenjam: in any case, thanks a lot for your time and help!19:09
vxnickhi all - I'm trying to bzr push a branch to a remote server via sftp, but I get the message "This transport does not update the working tree of: <repo location>"19:14
Takthat's just a warning19:15
vxnickTak: it doesn't push anything though - it says "no new revisions to push" even when I bzr add them19:17
vxnickdo I need to commit before I push or something?19:17
knielsenvxnick: yes, you need to commit before you push. push transfers only committed changes.19:24
vxnickknielsen: ah ok - I was under the impression that checkout/commit were distinct from pull/push19:25
kfogelI'm running bleeding-edge bzr.  I'm initting a new repository (new project); I'm tempted to use format 1.14 or 1.14-rich-root -- I would use brisbane-core, but apparently it's not in trunk yet?  So, anyone advise for/against 1.14?19:35
xnoxbzr: ERROR: Must end write group before releasing write lock on CHKInventoryRepository20:20
xnoxPlease help. This is on bzr pull from svn20:20
xnoxit seems to me there is a race condition between pull and repacking of revisions on rich-root svn repo's with regards to write lock. That's on bzr 1520:54
jfroyhello21:41

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