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

spivIt will run pre_change_branch_tip and post_change_branch_tip hooks if used by a 1.6 client.00:00
spivpre_change_branch_tip is probably what you'd want to use to replace a pre-commit hook from SVN, I think.00:00
spivI haven't quite landed the change to make it possible for pre_change_branch_tip to reject a change cleanly, but I ought to have that done this morning.00:01
awmcclainjelmer: Ah yes! This is the problem. The requirements for the bzr-svn ubuntu package are broken: bzr-svn: Depends: bzr (< 0.91~) but 1.4rc1-1~bazaar1~feisty1 is to be installed00:02
jelmerawmcclain, bzr-svn isn't maintained in the ppa at the moment00:02
awmcclain:(00:02
igcmorning00:02
jelmerit hopefully will starting 1.6 if I can get autoppa working00:02
awmcclainjelmer: ooo, autoppa00:02
awmcclainjelmer: I like the sound of that00:02
jelmer'morning Ian, Andrew, Martin00:02
awmcclainjelmer: What's the best way of installing?00:03
jelmerawmcclain, You should be able to grab the package from Debian sid00:03
awmcclainfor ubuntu? what's the sources entry?00:03
jelmerawmcclain, You should be able to download it manually from the intrepid repo00:04
awmcclainjelmer: 0.4.10? Will that work?00:04
jelmeryeah, it should. I think the dependencies are all available from either the ppa or hardy00:05
awmcclainOk, so I'll install the dependency packages from the ppa00:05
mathiazHi - is it possible to set the submit_to option on a bzr branch so that people branching don't have to specify the email address when using the bzr send command ?00:11
awmcclainjelmer: Great. Works. Thank you!00:12
jelmermathiaz, yes - it's called child_submit_to00:13
mathiazjelmer: well - I'd like to set in the public branch so that contributors don't have to do it themselves.00:16
jelmermathiaz, yes, that's exactly what child_submit_to is00:16
mathiazjelmer: gotcha - and how do I do that ?00:16
jelmersubmit_to is retrieved from the local branch00:17
jelmerchild_submit_to is retrieved from the submit branch00:17
jelmermathiaz, set child_submit_to in the .bzr/branch/branch.conf of the main branch00:17
mathiazjelmer: great - thanks :)00:18
igcfullermd, Peng_: fastimport does have some limited support for incremental mirroring00:18
mathiazjelmer: but that will be pushed to the public location of the branch ?00:18
mwhudsonigc: oh yes, i want to talk to you about that at some point :)00:18
jelmermathiaz: how do you mean?00:19
jelmermathiaz, you need to set that option in the submit branch (e.g. the one you specify as first argument to "bzr send")00:19
fullermdigc: Yeah, jam set me straight.  Sorry for spouting bs.00:19
mathiazjelmer: I'd like to setup ubuntu-doc@lists.ubuntu.com as the email address to be used to send patches for the ubuntu documentation (which is hosted in lp:ubuntu-doc)00:19
jelmermathiaz: launchpad doesn't make this very easy00:20
jelmeryou need to edit the .bzr/branch/branch.conf on launchpad to contain "child_submit_to = ubuntu-doc@lists.ubuntu.com"00:20
mathiazjelmer: right - that's what I thought - I'll check with the LP guys.00:20
jelmermathiaz, I think you should be able to create it locally and then upload using sftp00:21
jelmerat least that's what I did for bzr-gtk00:21
spivgedit will probably work with an SFTP url... :)00:21
poolieigc: i think deprecating both those two apis, get_tar_file and put_on_disk would be good01:26
pooliethey're very anachronistic there01:26
igcpoolie: yeah, they feel out of place01:27
pooliethere may even be others that should also go01:35
=== herb__ is now known as herb
mwhudsonspiv: prompted by #twisted.web01:49
mwhudsonmwh@grond:bzr.dev$ PYTHONPATH=/home/mwh/src/pyflakes/support-lazy-imports /home/mwh/src/pyflakes/support-lazy-imports/bin/pyflakes bzrlib/ | grep -v 'could be lazy' | wc -l01:49
mwhudson123901:49
spivmwhudson: btw, the supports-lazy-imports branch seems to give duplicate warnings sometimes.01:50
mwhudsonspiv: oh, hm01:50
mwhudsoni know the version in hardy does01:51
spivHmm, I'm fairly sure I'm using supports-lazy-imports01:51
spiv(the current tip)01:51
spivIt's possible that I sometimes run from vim and thus side-step my bash aliases, though.01:52
mwhudsonspiv: in running it over bzrlib, four lazy imports used at module level come out twice01:55
mwhudsonthat's all01:55
mwhudsonunless my unix pipeline foo is lacking01:55
spivmwhudson: Interesting.  I guess I'll pay more attention and file an actual bug report next time :)01:56
spivThe "problem" is that it doesn't stop the tool being usefl :)01:56
mwhudsonheh, 89 flakes in bzrlib/tests/test_lazy_import.py01:58
mwhudsonbet most of those are false positive01:58
mwhudsonspiv: the import could be lazy one is probably a mistake01:58
mwhudsonit should at least be optional, or only spat out in files that already have lazy imports01:58
mwhudsonah, that cuts out 2500 flakes02:02
spivYeah, by default I wouldn't want to see those warnings for a file that doesn't use lazy imports.02:03
* mwhudson pushes that02:03
spivmwhudson: also, I wouldn't mind a way of whitelisting certain modules as ok to not lazy import.02:15
spivmwhudson: e.g. I don't really care if sys "could be lazy".02:15
mwhudsonspiv: you do know how much support pyflakes has for configuration, right?02:15
spivHappily, no :)02:15
mwhudson"none at all"02:16
spivNo wonder I was so happy :)02:16
mwhudsonit doesn't even take options02:16
mwhudsonmwh@grond:support-lazy-imports$ pyflakes --help02:16
mwhudsonTraceback (most recent call last):02:16
mwhudson  File "/usr/bin/pyflakes", line 70, in <module>02:16
mwhudson    main(sys.argv[1:])02:16
mwhudson  File "/usr/bin/pyflakes", line 63, in main02:16
mwhudson    warnings += checkPath(arg)02:16
mwhudsonTypeError: unsupported operand type(s) for +=: 'int' and 'NoneType'02:16
mwhudson:)02:16
spivJust Works is awesome.02:16
mwhudsoni guess 'sys' can be whitelisted in pyflakes itself, mind02:17
lifelesswhat is 'could be lazy' for?02:18
spivlifeless: an import that isn't used by any code run at import time, and thus can possibly by productively changed to a lazy_import02:20
spivs/by/be/02:21
lifelessspiv: I'm currently looking at whether we can remove lazy_import completely :)02:21
spivlifeless: given that we use it to dodge circular import issues, probably not without some effort beyond just optimisation :02:21
spiv:)02:21
mwhudsonah yes, like bzr --no-plugins merge exploding?02:28
lifelessspiv: keeping it for that might be ok, but actually I hit those regularly even with it02:29
spivlifeless: *nod*02:32
lifelesshowever, its breaks freeze,py2exe,cxfreeze,pyflakes, pydoctor etc02:33
lifelessit doesn't make the general case faster (because code that is needed is still loaded)02:33
spivIt doesn't break pyflakes if you use mwhudson's branch :)02:35
jamlifeless: we actually do have quite a bit of ancillary imports that don't always get loaded02:37
jamlike importing gpg.py02:37
jamwhich imports subprocess02:37
jambut is only used if you actually sign a commit02:37
jamWe could make that lazy in other ways02:38
jamlike by importing them in the function that uses them02:38
jamwe just have to be careful that those aren't in inner loops02:38
fbondjam: Remember that issue that you debugged on my server (AssertionError: 442 != 443).  What do I have to do to work-around it?02:47
fbondIs upgrading bzr on the remote server the only option?02:47
fbondI guess I can use sftp, too...?02:47
lifelessfbond: I thought it was a client bug02:54
jamlifeless, fbond: I think you can upgrade the branch format02:54
jamlifeless: I think it is caused because he is using Branch5 format branches02:55
jamand the server is re-generating the history02:55
jambut there is a ghost02:55
jamor something along those lines02:55
fbondjam: sounds familiar.02:57
fbondbzr upgrade on the client will fix things?02:57
fbondThe server?02:57
jambzr upgrade on the server02:57
fbondjam: great, thanks!02:57
arjenAUso how is the stacked branch stuff coming along?03:01
jamlifeless: looking at groupcompress... you start off with 'self.lines = []', do you only add things via "compress" ?03:05
lifelessjam: yes03:05
jamI'm just wondering why you didn't special case the first compress()03:05
jamsince you know there are 0 matches03:05
jamor would you actually match against text you have already output03:06
jamI think you actually *do* self compress texts03:06
jambecause output_lines() updates the line_locations03:06
jamah, but you don't do output_lines until you are done03:07
jamso anyway, it seems like you could trivially say03:07
jamif len(self.lines) == 0:03:07
jam  self.output_lines(lines, [True]*len(lines))03:07
jamreturn03:07
lifelessjam: it doesn't seem worth special casing03:08
lifelessjam: as we generally get thousands of texts in a group03:08
jamlifeless: well, for a 10,000 line text you skip a fairly long loop03:08
jamI suppose03:08
jamlifeless: how did you benchmark it?03:09
jamI didn't see any direct functions here03:09
jamand I have some work done for a python version of the hashtable03:09
jamand thinking to extend that to a pyrex one03:09
jamthough customized for what groupcompress actually needs03:09
lifelesswell I didn't benchmark special-cashing not-special casing03:09
jamlifeless: no, I just mean *I* want to benchmark here03:10
jamand am looking for pointers03:10
lifelessoh03:10
lifelessjam: mailed you my hacked-up scripts03:14
jamlifeless: thanks03:14
lifelesswith the ability to do 'bzr branch' I'm benchmarking branching operations nowadays03:15
lifelessget_matching_blocks is 23% of a branch of gc itself03:17
lifelessflush_range 10%03:17
lifelessand output_lines 8%03:17
jamstupid special keys with compize03:20
jamI don't know what they are and keep accidentally triggering them03:20
jamI just resized my screen03:20
jam"zoom"03:20
jamonly I can't pan03:20
lifeless:P03:21
lifelessI run metacity03:21
jambrb03:23
jamIt seems I'm hitting everything today03:26
jamsince when does Ctrl+Alt+Backspace reboot your machine instead of just killing X?03:26
lifelessrotfl03:26
jamI might have hit it 2x, and maybe at exactly the wrong time?03:26
* igc lunch & doctor visit03:27
jamigc: eat hardy, and feel well03:29
lifelessjam: meh, should have shelved setup.py; pushed a new rev03:41
jamlifeless: not a big deal, I already converged it with my setup.py :)03:41
jamwhich did ~ the same thing :)03:41
lifelessoh cool03:41
lifelessso I have get_matching_lines up to 33%03:42
jamget_matching_blocks ?03:42
lifelessyes03:42
lifelessjam: what are you working on, I don't want to overlap too much03:45
jamlifeless: well, *right now* trying to get 'bzr branch' to actually work for me :)03:46
lifeless~/source/baz/btree-graphindex/bzr init-repo --gc-plain --no-trees gc03:46
lifelesstime ~/source/baz/btree-graphindex/bzr  branch ~/source/baz/plugins/index2/trunk/ gc/t03:47
jamI get the feeling get_matching_blocks is getting stuck in an infinite loop03:47
jamlifeless: do you have a custom bzr as well?03:47
lifelesswhat are you branching?03:47
jambzr.dev03:47
lifelessthat will take quite some time03:47
jamis gc that slow?03:47
jamah ok03:48
lifelessits recompressing everything03:48
jamI thought it was at the point of being real-world usable and that is why you said you were testing with "bzr branch" :)03:48
lifelessI'm working up to bigger and bigger branches03:48
jamlifeless: so... I was thinking about bringing a pyrex version of the hash-table03:49
jamat the moment, I've just been prototyping it out03:49
jamin python03:49
jaminteresting03:50
jammy change at least doesn't slow it down03:50
djbclarkAm I correct in determing that none of the DVCS systems support svn-like versioned properties (metadata), but bazaar ir probably the closest to having that feature?03:51
jammaybe 41s versus 43s for bzrtools03:51
jamprobably the big win is that you don't actually need to use sets() everywhere03:51
jamas a plain list is just as good03:51
jam(you know you won't get duplicates because of how the line lists are built up)03:51
lifelessdjbclark: seems plausible03:52
berto-looks like i broke a bzr-svn repository by running "bzr uncommit" on it.  i get internal errors now.  any way to revert back to the committed state.  then, any way to safely have bzr forget what i committed?03:53
djbclarkah, just found http://thread.gmane.org/gmane.comp.version-control.bazaar-ng.general/40419/focus=40479 :-)03:53
jelmerberto-, broke it how?03:53
lifelessberto-: well, file bugs please :P03:53
berto-lifeless: i want to see if it's really broken first.  :P03:54
lifelessberto-: if you are getting internal errors, its a bug03:54
lifelessjam: so - I'll work on getting the fetch order to be good03:56
lifelessjam: as hacking on get_matching_blocks would collide with you03:56
jamsure03:56
jamsounds reasonable03:56
berto-jelmer: hmm, may not be the uncommit that broke it.  i ran bzr merge on ~/.bazaar/plugins/svn and recompiled, got some error, ran make clean && find . -name '*.pyc' | xargs rm && make, and now i get an import error on from bzrlib.plugins.svn.versionedfiles import (SvnTexts, VirtualRevisionTexts[...]: File "/home/berto/.bazaar/plugins/svn/versionedfiles.py", line 1803:58
berto-ImportError: cannot import name VirtualVersionedFiles03:58
jelmerberto-: you need a newer version of bzr03:58
berto-jelmer: cool, thanks, working on updating03:58
jelmerVirtualVersionedFiles is only in a recent revision of bzr.dev03:58
berto-jelmer: alright, working great again, thanks!04:03
jelmer:-)04:03
berto-jelmer: i take it bzr uncommit now works?  should i remove it from the wiki as an unsupported command?04:04
berto-jelmer: how about bzr push --overwrite ?04:04
jelmerberto-: what did uncommit do?04:04
berto-jelmer: i ran bzr uncommit -r <revno>; that uncommitted a directory i had added as well as some other files i had modified.  it basically put the added directory back into an add state, then put the other files back in a modified state.  i was then able to run bzr ci -m'[...]' <dir>04:05
berto-... which just committed the added directory and left all the modified files alone.04:06
jelmerWas that committing it back to svn as well though?04:06
berto-jelmer: no, all that was local, i have not committed back up to svn as it's an svn repo i don't have commit access to.04:07
jelmerberto-, ok, so that's all unrelated to bzr-svn04:07
lifelessberto-: then you're operating purely in bzr land :)04:07
berto-jelmer: ah, ok. cool.04:07
berto-i see, awesome.04:07
=== sm_ is now known as sm
berto-so it's trying to uncommit something that was committed in svn that's not going to work right.04:08
berto-[the current version of] svn has no concept of being able to uncommit, so will there ever be some sort of support for that, or is a revert mechanism as close as it gets?04:08
jelmerit will be possible to uncommit, but it'll basically do a revert (copy from a revision in the past)04:09
jelmers/copy/replace/04:09
lifelessback later04:42
berto-jelmer: thanks again for the help!04:46
berto-lifeless: thank you too.04:46
jamlifeless: holy crap04:49
jamcompacting all of NEWS in 'topological order'04:49
jamCompressed 3213 text with 437350320 bytes to 74265451 bytes (5.89:1) in 109.994s04:49
jamand in *reverse* topological order04:49
jamCompressed 3213 text with 437350320 bytes to 5814355 bytes (75.22:1) in 271.026s04:49
jam75:1 versus 6:104:50
jambit of a difference04:50
mwhudsoni also guess that this is going to be quite a slow 'bzr upgrade'?04:50
mwhudsonbut wow, nice numbers04:50
jammwhudson: well, I'm working on writing a C extension to improve the speed04:51
mwhudsonah right04:51
jambut the 75:1 compression ratio is pretty darn good04:51
jamI have the feeling it owes the most to the multi-location abilities of groupcompress04:52
jambasically, it follows *all* matches concurrently04:52
jamand picks the one with the longest sequence04:52
jamAnd NEWS is rather a special case04:52
jamsince it is 95% insert-only04:52
mwhudsonjam: yeah, i guess builtins.py is another obvious one to try04:53
jammwhudson: running it now04:54
mwhudson:)04:54
jamforward: Compressed 1837 text with 210568735 bytes to 38663891 bytes (5.45:1) in 80.498s04:54
jammwhudson: builtins.py was the one I used for my xdelta testing04:54
mwhudsonah right, i remember now04:55
jamthough it had only 1300 texts, IIRC04:55
jamreverse: Compressed 1837 text with 210568735 bytes to 21061973 bytes (10.00:1) in 76.862s04:56
jamDon't trust the times completely, as I'm poking at the code while waiting :)04:56
mwhudsonheh04:56
mwhudsonless spectacular04:56
jamless spectacular, but 2:1 for going in reverse versus forward04:56
bob2and faster in reverse04:56
jambob2: well, as I said, I poked at the code in there, so maybe, maybe not04:57
lifelessalso04:59
lifelessis that the raw output or the gzipped?05:00
jamlifeless: raw05:00
lifelessyah05:00
lifelessthought so :)05:00
lifelessbut now you see why I think this has legs :)05:00
jamlifeless: does that normalize a bit more?05:00
lifelessjam: its the gzip phase takes the reverse output below git in size05:01
bob2is gc similar to how git does packs?05:01
jambob2: git does xdelta compression05:01
jamgc is a different algorithm05:01
jamthe idea of --reverse versus --forward is somewhat taken from git05:01
lifelessjam: oh, it *does* do xdelta?05:01
jamlifeless: yes05:01
jamI'm not sure if it is xdelta 1,2,305:01
jambut xdelta05:02
jamat least, that is what I remember05:02
jamlifeless: interestingly, sorting by text size05:04
jamis slightly better for group-compress05:04
jam(without gzip)05:04
jamrather than reverse topological05:05
lifelessjam: as expected; though we don't cache size at a good place to use for this05:05
jamat least, in my 2 trivial tests05:05
jamlifeless: strictly because it gives more locations to match ?05:05
lifelessyes05:05
lifelesswell05:05
lifelessbecause it can encode longer sequences05:06
jamlifeless: you may be interested in lp:~jameinel/+junk/test-groupcompress05:07
jamYou may not05:07
jambut it provides direct GC testin05:07
jamtesting05:07
jamby extracting the texts from the ancestry of a supplied file05:08
jamand --lsp filename.callgrind will profile *just* the GC operations05:08
sohailhey guys, I deleted directory foo in commit 560 but also a whole bunch of other stuff that I don't want. How can I bring back just directory foo?05:15
lifelesssohail: bzr revert -r 560 foo05:17
sohaillifeless, ah!05:17
* sohail tries05:17
sohaillifeless, "ERROR: Path(s) are not versioned: foo"05:18
lifelesssohail: oh :(05:23
lifelesssohail: try -r 559 ;)05:24
sohaillifeless, I did bzr merge -r560..559 aka svn :-)05:26
sohailbut what I really want to do is bzr cp foo@559 dir/foo05:26
sohailbut I can't figure out how to do that05:26
lifelesssohail: well, merge -r560..559 foo should work05:27
sohaillifeless, yeah that worked05:28
lifelesssohail: revert -r 559 foo should have worked too05:28
lifeless(clearly -r 560 can't as foo doesn't exist there :p)05:28
sohaillifeless, trying now05:29
sohaillifeless, you were right, it worked05:31
=== samurai_ is now known as samurai
sohailin the star trek universe, the person who figures out how to transport with shields still up will win the nobel prize05:33
spivbzrlib.tests.blackbox.test_info.TestInfo.test_info_standalone in bzr.dev is failing for me.05:48
spiv  File "/home/andrew/code/bzr/bzrlib/tests/blackbox/test_info.py", line 158, in test_info_standalone05:48
spiv    bzrlib.upgrade.upgrade('bound', knit1_format)05:48
spivAttributeError: 'module' object has no attribute 'upgrade'05:48
lifelessspiv: funky05:49
lifelessspiv: and does it?05:50
spivlifeless:05:51
spiv$ PYTHONPATH=. python -c "from bzrlib.upgrade import upgrade"05:51
spiv$05:51
spivHmm.05:51
mwhudsoncircular imports again?05:53
spivAh.05:53
spivIt's the 'bzrlib' object that lacks the 'upgrade' attr, not the 'bzrlib.upgrade' object.05:53
spivi.e. there's a missing "import bzrlib.upgrade"05:54
mwhudsonoh hee05:54
mwhudsonit makes a difference whether you selftest <that test>05:54
mwhudsonor selftest -s <that test>05:54
spivYeah.05:54
spivWhich is why I couldn't reproduce it with 1.5: I couldn't use -s :)05:54
* spiv fires off a trivial fix.05:55
Stumbleshi, I've just read quickly through the bzr user guide, but couldn't see an example of how to make a topic branch. How do I do this?09:00
luksbzr branch A B?09:00
Stumbleswhat's A and what's B?09:01
Stumblesas in, which is the trunk?09:01
luksA is the original branch, B is the branch you want to create09:01
luksA09:01
Stumblesthanks09:02
StumblesJust trying to get my head around bazaar after using Git for a while. So if I do "bzr init repo" and then "bzr branch repo repo2", do I then have two full repositories?09:05
RAOFKindof.09:06
spivStumbles: there's some terminology differences with Git that confuses things a little.09:06
RAOFbzr makes a distinction between things that are conflated in git.09:06
* RAOF leaves it to the more knowledgable spiv09:07
spivStumbles: you have two branches, each with a full copy of history in them.  (And so if you haven't done other set up to avoid this, you'll be using twice as much disk space as if you only had one branch).09:07
spivStumbles: "bzr init" creates a what we call a "branch".09:08
spivStumbles: "bzr init-repo" creates what we call a "shared repository".09:08
StumblesThanks, this is a great help. So the way to go is "bzr init-repo myrepo", "mkdir myrepo/trunk", "cd myrepo", "bzr branch trunk mytopicbranch"?09:09
spivStumbles: so for comparison, if you did "bzr init-repo repo", then "cd repo; bzr init branch-one; bzr branch branch-one branch-two", you'd have two branches inside one shared repository.09:10
spivStumbles: right, except "bzr init myrepo/trunk" rather than "mkdir myrepo/trunk".09:10
Stumbleslovely09:10
Stumblesok, right09:11
Stumblesand that way the second branch doesn't take additional space until I change files?09:11
spivRight.09:12
spivThe two branches will use the same storage for their revisions.09:13
Stumblesah right, I see, shared repository, but two full working copies09:13
Stumblesshared history i mean09:14
Stumblesthanks spiv, much appreciated09:15
luksyou can have just one working directory, but then it gets a little complicated09:16
spivStumbles: you're welcome09:16
Stumblesso if you were doing lots of short-lived branching, say one or two commits before merging with the main line, a shared repository would definitely be the way to go, right?09:32
spivStumbles: yep09:33
=== weigon_ is now known as weigon
Stumblesif not using a shared repository, what would the difference be between "cp -r original branch" and "bzr branch original branch"?09:39
Peng_Stumbles: Since it actually access the repo, it would somewhat verify that it isn't broken. It won't copy working tree modifications and unversioned files.09:41
Stumblesthanks09:43
Peng_accesses*09:43
RAOFEven without doing lots of short-lived branching, you probably want a shared repository anyway.  Pulling other people's remote branches is orders of magnitude faster when you pull them into a shared repository which already contains most of the history.09:44
RAOFAnd the way that I use bzr, pulling other people's branches is by far the slowest operation, so a shared repository makes a lot of difference.09:46
Stumblesthans RAOF09:51
=== yacc__ is now known as yacc
pittihi10:07
pittiKnitCorrupt: Knit text:x_Matt_Zimmerman_<matt.zimmerman@canonical.com>_Sun_Mar_13_00:51:19_2005_1366.38 corrupt: line-delta from stream for version mdz@mizar-20051205230117-c327e75be767f237 references missing parent Arch-1:matt.zimmerman@canonical.com--2004%casper--main--0--patch-2110:08
pittioh, the late wrath of arch...10:08
pittiI get that when trying bzr get lp:~ubuntu-core-dev/casper/trunk casper10:08
pittiany idea what I can do to debug/fix this/10:08
pitti?10:08
james_whi pitti10:22
pittiin the meantime I found some pointers to that10:22
james_wI've heard rumblings about the casper branch.10:22
pittibug 246880 and https://answers.launchpad.net/launchpad-bazaar/+question/3969310:22
ubottuLaunchpad bug 246880 in bzr "Can't branch casper which misses some parents in old revisions" [Undecided,New] https://launchpad.net/bugs/24688010:22
cjwatsonI'm working on it10:23
cjwatsonmdz still has the old branch kicking around10:23
cjwatsonso I'll fetch the ghosts10:24
cjwatsonpitti: no point you working on this simultaneously :)10:24
pittiright, I just started asking here10:24
pitticjwatson: thanks10:24
cjwatsonthough first I have to remember how the hell to mirror an archive using baz10:24
cjwatsonrecycled neurons FTW10:25
pittiI might still have it in the REAME.Developers of postgresql-common in an ancient revision10:25
cjwatsonit's OK, I've got far enough to remember the basics10:25
pittiouch10:26
* pitti reads about make-archive, register-archive, branch, get, and gets painful memories10:27
pitti"27 easy steps to check out a branch"10:27
* Kinnison giggles10:38
* Kinnison has utterly evicted that knowledge from his head too10:38
pittihey Kinnison, how's life?10:39
Kinnisonbusy and full of windows, poorly written packet sniffers, and embedded RF microprocessors10:39
pittiyay hardware development :)10:39
Kinnisonindeed10:40
* pitti was happy about the atmel toolchain back then, which ran fine under linux10:40
KinnisonIn this instance, I'm trying to work out why a three-byte payload packet ends up doing around 8 packets, comprising around 200 bytes over the air10:40
Kinnisonmmm 802.15.4+ZigBee200410:40
cjwatsonKinnison: hi! TLNS10:41
cjwatsonerr, ^T10:41
* Kinnison grins10:41
* Kinnison is usually around :-)10:41
krani1hi! I'm having a problem. a developer branched my repo, worked on something, created a bundle with "bzr bundle" and send it to me.. I worked on my branch too... Now everytime I want to merge his bundle "bzr merge file.bundle" I'm getting an error "Revision {('dev mail address-foo bar',)} not present...11:37
Peng_Sounds like the bundle is broken, corrupt, or just missing some revisions you don't have.11:38
krani1Peng_: the base_resvision_id on the bundle exists on my tree11:39
krani1bzr jsut can't find the "revision_id" on my tree.. and I think it doesn't make sense... *after* aplying the bundle it shuld exist, not *before*11:39
Kinnisonhas the bundle become corrupted in transit?11:41
KinnisonE.g. has an email mangled it?11:41
Peng_"dev mail address-foo bar" is a horribly weird revision ID; bzr would never generate that on its own.11:43
lifelessPeng_: I think krani1 is paraphrasing11:44
krani1Peng_: :)11:44
lifelessKinnison: bundles are base64 encoded11:45
lifelessKinnison: and checksummed: its not mangled11:45
Kinnisonaah11:45
Kinnisoncunning11:45
james_wkrani1: is the revision it complains about the base_revision_id mentioned in the bundle?11:45
james_walso, is the branch it refers to the branch that you are trying to merge it in to, or another?11:46
krani1james_w: no! the "base_revision_id" mentioned in the bundle exists on my tree! It complains about the "revision_id" mentioned in the bundle!11:46
james_wdo you get a backtrace?11:46
krani1james_w: actually, I'm trying to merge on another branch... does that make a difference?11:47
james_wif so, could you pastebin it please? If not, then please run again with -Derror11:47
james_wanother branch?11:48
james_wI don't really understand, you are trying to merge it in to a branch, and that has the base_revision_id, but it is complaining?11:49
krani1james_w here is the traceback with -Derror http://pastebin.com/m127de67c11:49
krani1james_w: exactly! that! it doesn't make sense!11:50
james_wthat's in _verify_patch11:50
james_wso it hasn't started merging yet11:50
krani1I'm not merging into the "target_branch" mentioned in the bundle, can that be a problem?11:53
james_wpossibly11:53
james_wat first look, this should never work, but that's obviously wrong.11:54
lifelesskrani1: that shouldn't matter, as long as the branch you are merging into has at least the same revisions the target did11:54
james_wso, it's trying to regenerate the diff to check it, so it takes the repository you are trying to merge in to, and then extracts the trees of the base_revision_id and the target revision, but I can't see how that would ever be expected to work11:55
krani1lifeless: well as I said it, the "base_revision_id" in the bundle exists on my tree.... something went wrong here... the dev is telling me he have more commits, and just sent me a particular commit using "bzr bundle -r ..."11:56
spivjames_w: because from_mergeable does install_revisions to tree.branch.repository before it does get_merge_request.11:56
james_wspiv: ah, thanks.11:56
james_wkrani1: this would suggest that the bundle doesn't contain all of the revisions.11:57
krani1james_w: ok.. will talk to the dev and try to sort things out, thank you guys11:58
james_wkrani1: I'm just looking for a way to debug this a little more11:58
krani1james_w: If I can provide you more info, feel free to ask11:59
james_wthe command to debug a bundle was removed I think, so I'm not sure what to do11:59
Peng_...Oh. Right. Paraphrasing. Heh. Never mind then.11:59
james_wit would be useful to know what command and arguments they used to generate this bundle.12:00
krani1I will try to get them, just a minute12:00
krani1james_w: bzr bundle -o build.patch -r revno:107..revno:10812:02
krani1that's the exact command he used12:02
james_wjust as aside "revno:" is default, so "-r 107..108" would be work and is less to type. That won't affect this though.12:03
james_wis revno 107 something that you have in your branch?12:03
krani1james_w: yes!12:03
krani1he branched on that exact revno12:04
lifelesskrani1: are you editing the backtrace that we see ?12:05
krani1lifeless: just the 'dev mail' everyting is verbatim12:05
spivkrani1: I'm curious about why they didn't use "bzr send -o build.patch target_branch" to generate the merge directive?12:06
lifelesskrani1: ok, can you only edit the mail part of it, keep the UUID bit at the end intact ?12:06
krani1spiv: cause bzr send generates a bundle that I can't apply on my local branch.. it seems I can only apply it on the branch the dev first got (target_branch)...... but that's another problem....12:07
spivkrani1: bzr send tries pretty hard to automatically figure out what the right merge directive is, but using -r circumvents that.12:07
spivkrani1: Hmm!  I have a very strong suspicion that that is actually a symptom of the same root problem.12:08
krani1spiv: the workflow is. I have local branches, and push the changes to a shared server. the dev branches from the server, works, commits and sends bundle back to me, so I can review and push them back to server... does this help?12:09
spivI wonder if revno 107 in the two branches are actually the same revision...12:09
krani1spiv: is there an easy way to verify that?12:09
lifelessrevision-info12:10
Peng_krani1: If you gave devs push access to an area of the server, you wouldn't have to bother with bundles..12:10
krani1Peng_: I'm working like a gatekeeper....12:10
lifelessbundles should work fine12:11
spivkrani1: Compare the output of "bzr revision-info -r107" in both branches.12:11
krani1spiv: doing that12:11
lifelessyou don't need them though if you had the devs push up their own branches to a different area12:11
spivkrani1: Or of "bzr log --short -r 107 --show-ids" if you want slightly more verbose output.12:11
krani1spiv: OMG they are different! w00t???12:11
spivkrani1: ta-da.12:11
krani1spiv: how can this happen?!12:12
Peng_Revnos are per-branch. bzr.dev has a different revision 107 too..12:12
lifelesskrani1: the dotted decimal revision numbers are just a convenience over the underlying UUIDs. they are specific to an individual branch12:12
krani1lifeless: so how the dev should generate the bundle then?12:13
spivkrani1: so, if they do "bzr send -o foo.patch target_branch", it should generate a workable bundle.12:13
lifelesskrani1: as spiv says, you don't need the -r parameters ever, unless you need to do a cherry pick12:14
spivkrani1: so long as the branch you try to merge foo.patch into includes all the history of the target_branch given to bzr send.12:14
spivkrani1: (e.g. it's the same branch, or it has merged that branch, etc)12:14
krani1humm it all makes sense now12:15
krani1I've got the lesson.. never trust revno :-)12:17
krani1in the bundle, what does it really mean the "revision_id" and the "base_revision_id" ?12:29
james_wkrani1: the base_revision_id is the ancestor revision that the bundle is based on, revision_id is the tip revision in the bundle12:54
lamontbzrlib/_dirstate_helpers_c.c:2161: warning: dereferencing type-punned pointer will break strict-aliasing rules14:19
lamontand many others.14:19
VSpikedoes anyone know if the bzr-upload plugin is in a useful state?14:46
beunoVSpike, I sure hope so  :)14:46
beunoquite a few people have been using it for months14:46
beunoand we've had no major bug reports14:46
mtaylorbeuno: bzr-upload?14:46
VSpikebeuno: thanks - I couldn't really see any indication of its development status on the launchpad site14:47
mtayloroh, neat14:47
beunomtaylor, yes, it's a plugin to upload *just* the working tree14:47
mtaylorvery cool14:47
beunomainly for websites, but there must be all kinds of creative use cases14:47
* beuno looks at the lp page to make the status more obvious14:48
VSpikebeuno: are there any install/use instructions anywhere?14:48
beunoVSpike, there's a README in the branch, and you can install it like any other plugin:  bzr co lp:bzr-upload ~/.bazaar/plugins/upload14:49
beuno(basically, copy it to the plugins dir)14:49
VSpikebeuno: does lp: use ssh underneath?14:50
Peng_VSpike: If you're logged out, it uses http. If you're logged in (bzr launchpad-login my_username), it uses bzr+ssh14:51
VSpikePeng_: I'm not logged in .. it's just it's giving me "bzr: ERROR: [Errno 0] Error" which is what I get when I try use sftp14:51
Peng_VSpike: What's the exact command you're running?14:53
VSpikeas beuno just typed14:53
VSpikePeng_: ^14:53
Peng_Oh.14:53
Peng_I dunno, then, and I'm about to go to bed. Good luck. Hopefully someone else can figure it out.14:53
VSpikeTa :)14:54
beunoVSpike, what version of bzr are you using?14:58
VSpikeI may have found a fix, hold on15:00
VSpikeCygwin version :)15:00
beunoah, ew   :)15:00
beunoI'm off for a bit15:00
VSpikeYou mention cygwin and people just leg it15:00
beunoI'll read the backlog when I get back in case you run into more trouble15:00
VSpike:D15:00
VSpikeWell, I found a fix for my sftp problem, but the lp one might not succumb15:01
VSpikeAh no.. just had to mkdir -p ~/.bazaar/plugins/upload15:02
VSpikebeuno: Thanks for the help15:03
VSpikeIf I already have the site uploaded, do I need to delete it before running bzr upload for the first time?15:25
VSpikeI'm getting an error "File exists: '/AllUsers': 500 /AllUsers: Access is denied."15:26
VSpikeIf I know it's in sync with the current revision, can I create a revision ID marker on the site ftp so that it works without doing a full upload?15:37
beunoVSpike, yeap15:48
beunoyou can trick it15:48
VSpikebeuno: what do I need to put there?15:50
beunoVSpike, a file named: .bzr-upload.revid15:52
beunowhich contains the last revid15:52
beunoof your branch15:53
beuno(you get revids by adding --show-ids to the log command)15:53
VSpikeThanks :)15:54
beunowelcome'15:55
VSpikeYes, although generally we would be expecting people to use Thuraya for messages so not an issue16:09
VSpikeI guess we should publish this info on the site16:09
beunoprobably the wrong window  :)16:09
VSpikeAh yeah ta16:10
VSpikeSheesh16:10
=== mvo__ is now known as mvo
VSpikebeuno: how critical is the format of that file?  It's not finding it16:26
beunoVSpike, it doesn't have much of a format16:27
beunojust the name and the revid text in it16:27
VSpikebeuno: it contains -- johncc@gort-20080724140726-blahblahblah<LF>16:28
beunoVSpike, what the <LF> at the end?16:28
VSpikeI mean it ends with a normal unix line ending16:28
beunono line ending16:28
fbondHi.  I used `bzr replay -r x..y' one day and was surprised to find that revision x had been replayed.16:29
fbond`bzr merge -r x..y', `bzr diff -r x..y' don't seem to include revision x.  Right?16:29
beunoVSpike, and, is that in the root of the dir?16:29
fbondIs replay an odd duck?16:29
* beuno has no idea what replay does16:30
fbondbeuno: it is part of the rebase plugin.16:30
VSpikebeuno: yeah, it's in the root.  Still not working though.16:31
beunoVSpike, it still tries to upload?16:32
fullermdIt doesn't sound odd, just a different meaning.16:40
fullermd`bzr log -rx..y` includes x, frex.16:40
lukswhat's the best way to upgrade branches on launchpad? I'm running an upgrade over sftp right now, but I'm starting to regret that16:40
luksbzr+ssh just told me the branch is already up to date16:41
luks(it probably tries to upgrade only the branch, not the repo)16:41
beunoVSpike, bug report was a good way to go, thanks16:42
fullermdI'm not sure it tries to upgrade anything; I think it still just sees a totally fake format.16:42
luksoh16:43
fullermdTry info -v:16:44
fullermdFormat:16:44
fullermd       control: bzr remote bzrdir16:44
fullermd        branch: Remote BZR Branch16:44
fullermd    repository: bzr remote repository16:44
beunofor some reason, bzr info via ssh always lies. Only http tells you the actual format16:45
beuno(maybe sftp too)16:46
fullermdWell, the reasin is because that's how the SS does its thing.16:46
fullermdInfo over bzr:// or bzr+http:// would presumably tell you just the same.16:46
VSpikebeuno: no prob.  Yes, it says "No uploaded revision id found, switching to full upload"16:47
luksI was stupidly hoping it would just run an equivalent of 'bzr upgrade' remotely, so it doesn't have to transfer anything16:47
VSpikeHmm maybe doing strace python /usr/bin/bzr upload .. was not such a good idea :)16:48
ddrreeeaaammssWhen I install bazaar on vista whenever I fire up a new command prompt the workling directory is automatically "C:\program files\bazaar" how do  i change this?16:52
VSpikeddrreeeaaammss: do you mean the bazaar command prompt entry in the start menu?16:57
ddrreeeaaammssNo16:57
ddrreeeaaammssI mean if I go start "cmd" press enter I start in c:\program files\bazaar16:57
cjwatsonluks: there's a bug report asking for that17:00
cjwatson(I don't have the number to hand but look for "upgrade" and "smart server" or some such)17:00
fullermdluks: It's a good hope...17:06
fbondfullermd: The inconsistency bothers me a bit.  replay is more similar to merge than it is to log, but merge is exclusive, and both replay and log are inclusive.17:27
fbondIt's confusing, and inspires doubt.17:27
fullermdWell, merge is a stick point.17:33
fbondrebase is inclusive17:34
fullermdMerge is what merge is by analogy to diff.17:34
fbonddiff is exclusive17:34
fullermdWhere it's simple.17:34
fbondfullermd: And why is diff exclusive?17:34
fullermd"Show me the differences from state x to state y"17:34
fullermdThat wouldn't include the differences from state (x-1) to x.17:35
fbond"Merge the differences from state x to state y"17:35
fullermdCompare log, where it's "Show me the logs from revision x to revision y", where you'd expect to see both x and y.17:35
fbond"Replay the differences between state x and state y"17:35
dashhi. just got a traceback making a checkin on 1.5 --17:35
fullermdThat's now how I read replay.17:35
fullermd(not)17:35
fullermdI'd read it as "replay revisions x to y".17:35
dashhttp://rafb.net/p/QokLZ842.html17:36
fbondfullermd: I get it, but I think it is more arbitrary than you are portraying.17:36
dashthis look familiar to anyone?17:36
fullermdWell, everything's arbitrary.  My reading feels more natural to me.  Doesn't mean it does to everybody, but it suggests that it does to whoever wrote replay.17:36
fbondfullermd: I'm just saying that doing it arbitrarily in two different ways is confusing.17:37
fbondI don't think the meaning follows naturally from the command.17:37
fullermdIt'd be more confusing otherwise.17:38
fbondIt is not obvious that replay replays revisions while merge merges deltas.17:38
luksfbond: then `bzr replay -rX` should be invalid?17:38
fullermdWell, it is to me...17:38
fbondluks: Not necessarily.17:38
fbondluks: merge -rX is valid, too...17:38
luksit would be noop, if it's exclusive17:38
fbondluks: For merge it means "from the beginning up to X".17:38
luksfbond: but I think it does something very different from -rX..Y17:39
fbondluks: I'm not sure what -rX should do for replay.17:39
fbondBut I don't think that that should dilute my point.17:39
luksreplay revision X, which means it should be inclusive17:39
fbondWhy should -rX syntax imply anything about -rX..Y syntax?17:40
fbondThe meaning of -rX obviously varies heavily from one command to the next, anyway.17:40
luks-rX..Y in merge is a special case, "a cherry-pick"17:40
lukswhat is confusing in case of replay is that is treats revisions as changesets17:41
luksideally it should use -cX..Y17:42
luksthat should be more clear, I think17:42
fbondluks: Okay, now we're getting somewhere, I think.17:42
gnomefreakhas bzr changed to where bzr bd --merge --dont-purge --builder='dpkg-buildpackage -rfakeroot -kA5C42601 -i.bzr' . no longer waits for passphrase?17:44
gnomefreaki had steppeed away for about an hour and came back and it told me invalid passphrase17:45
james_wgnomefreak: shouldn't have17:45
gnomefreakjames_w: give me a minute or 217:46
gnomefreaki have output just lagging alot17:46
gnomefreakjames_w: http://pastebin.mozilla.org/49883117:47
gnomefreakif that helps17:47
gnomefreakit never waited for me17:47
james_wnothing should have changed in bzr/bzr-builddeb to break that I don't think17:47
gnomefreaki havetn used it since hardy devel cycle and it worked than17:48
* gnomefreak sitting and waiting for the source build to see if that atleast asks me17:49
gnomefreakif it fails this time ill file a bug on LP about it in morning17:49
gnomefreakdpkg-buildpackage still asks me so i figured it had to do with bze-builddeb17:50
gnomefreakjames_w: -S -sa gave me the passphrase popup dialog17:52
=== davi_ is now known as davi
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
strkis it possible to get keyword substitution on commit like for CVS ?18:38
strkit seems $Id$ isn't substituted ...18:38
beunostrk, you could probably script something with the pre-commit hook18:42
strkurgh18:43
strkreally nothing built in for that ?18:44
dashstrk: you want the uuid in there?18:48
strkdon't even know what it is :(18:49
strkwhatever identifies a specific revision of the file18:49
dashright, that'd be the uuid (because the short revision numbers aren't guaranteed to be unique or stable)18:50
strkk18:50
strkhope for me ? :>18:50
dashso, something like foo@baz.com-20080722154412-x8m52mo7rj5umv9a18:51
dashstrk: I guess the question is, why do you want it in the file? :)18:51
dashmy experience has been that software version numbers are useful to have in the text of the files; if revision information is needed, it's pretty easy to ask the revision control system for it18:52
=== mw is now known as mw|out
strkdash: http://gnashdev.org/testcases/v6/array-v6.swf18:53
strksee on top, between []18:53
dashah.18:54
strkit comes from .as source containing the keyword18:54
strkhttp://wiki.gnashdev.org/Testcases#Testcases18:54
strk^^^ more info about how that's useful18:54
strkthe uuid doesn't look as readable as the current RCSId :/18:56
strkknow what ? the best would be branch name and revision of that branch18:58
strkpossible ?18:58
strklike: trunk 9532.18:58
fullermdThe best would be different per situation   :p18:58
strkbest in *this* situation ofc18:58
fullermdAt the least you'd want the options of {revno,revid,date} of last change to the {file,tree}.18:59
strkah, right, don't care about revision of the whole branch19:00
strkbut, dunno what revno,revid are (ie: why two?)19:00
fullermdYah.  Sometimes you do, sometimes you don't.19:00
fullermdBecause revid alone is user-hostile.19:00
dashstrk: a revision can appear in a bunch of different branches19:00
dashstrk: and have a different revision number in each19:01
dashbut the revid will be the same19:01
strkthe id being the ugly loooking thing above ?19:02
dashright19:02
strkit says revision date, that's fine19:03
fullermdNot necessarily.19:03
fullermdAll it says is <opaque string>19:03
strkmm, let's try to figure some use cases19:03
strkcase 1: we check website to figure if the versions up there are the most recent revision from official trunk19:03
fullermdThe ones bzr generates itself tend to include the committer and commit date, but that's happenstance.19:03
strkis "happenstance" an english word ? I always wondered how would I say that :)19:06
fullermdI hope so, otherwise I've confused a lot of people in my life   :)19:06
dashit's an english word ;)19:07
* strk can't wait to use that ! :P19:07
strkcase 2: a user reports a bug in the testcase and we use that id to check if that bug was fixed already19:08
strkI guess I'm out of cases19:08
fullermdThere's certainly no lack of cases calling for it.19:09
fullermdThe code that's recently in (or not in?  Discussed a lot anyway) for line ending stuff is also intended to handle cases like keyword expansion.19:09
strkdoes it help if I jump in and put my vote ? :)19:10
dashHmm19:13
dashis there an existing bzrlib method to determine if an URL specifies an existing branch?19:14
dashpreviously I was just going with: bzrlib.bzrdir.BzrDir.open()19:16
dashand expecting NotBranchError if it didn't exist19:17
luksBranch.open?19:18
dashhm19:18
dashthat seems more reasonable.19:22
=== yacc_ is now known as yacc
=== rockstar` is now known as rockstar
mwhudsonbeuno: hi there22:18
jelmerIs Colin Bennett?22:40
jelmerIs Colin Bennett here?22:41
=== mw|out is now known as mw
beunomwhudson, mornin'22:49
Verterokhi23:22
amanicahi Verterok23:30
lifeless`moin23:36
Verterokmornin' lifeless23:36
beunomornin' lifeless!  back to AU time?23:36
mwhudsonhi lifeless23:36
lifelessapproximately23:36
beunogood, AU fits me better than european   :)23:47
igcmorning23:48
beunomornin' igc23:48
beunohow are you today?23:48

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