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

jelmerhmm, that doesn't make sense to me either00:00
jelmerabentley, ^00:00
jelmerabentley: http://bundlebuggy.aaronbentley.com/request/%3C48859468.40605%40xs4all.nl%3E says conditionally approved00:00
jelmerhttp://article.gmane.org/gmane.comp.version-control.bazaar-ng.gtk/1294 says semi-approved00:00
jelmerpoolie: at the risk of repeating myself.. what's the status on 1.6 ? :-)00:01
jelmerpoolie, will you do a rc or something or are there other things you'd like to get fixed first?00:02
AfCjelmer: (fwiw, there have been some emails about that)00:16
AfCjelmer: (but it's a busy list, so easy to miss things)00:17
Traveler9How do I fix this: Unable to import paramiko (required for sftp support): No module named paramiko00:19
Peng_Traveler9: You install paramiko.00:19
Traveler9How do I do that?00:20
bob2depends on your OS00:20
Peng_Note that paramiko depends on PyCrypto.00:20
Traveler9Windows XP00:21
bob2hm, I thought the bzr windows installer thing included paramiko00:21
Traveler9I found a site that says00:22
Traveler9pycrypto compiled for Win32 can be downloaded from the HashTar homepage: http://nitace.bsd.uchicago.edu:8080/hashtar00:22
Traveler9But the link is dead.00:22
bob2the links on http://bazaar-vcs.org/WindowsInstall are dead?00:23
Traveler9I got the Paramiko binaries from there, but I get the same error.00:24
nekohayoseriously. http://ecchi.ca:8000/1.png00:33
nekohayohow can I be prevented from removing my own branch? any solution for this?00:33
mwhudsonyou have to get the subscriber to unsubscribe00:36
Odd_Blokemwhudson: As a workaround, or is that intended behaviour?00:37
mwhudsonmore intended than not i think00:37
Odd_BlokeO.o00:38
nekohayomwhudson: wtf? :)00:38
nekohayobranch watchers can hold branch makers hostages nowadays?00:38
Traveler9I installed paramiko on WinXP and I'm getting: Unable to import paramiko (required for sftp support): No module named paramiko00:40
mwhudsonnekohayo: the only thing that has changed recently is that you can delete branches at all :)00:41
nekohayomakes me want to reconsider launchpad as a hosting service :) perhaps I should just dump branches on my apache server00:41
nekohayoanyway I guess I'll just change its name and status for now00:42
mwhudsonwell, i doubt SF let's you entirely blow away the history of a project's svn repo00:43
mwhudsonwhich is what deleting a branch is like00:43
markhTraveler9: you have Python installed, and running bzr from that?00:45
Traveler9Yes and yes00:45
markhdoes 'python -c "import paramiko"' work?00:46
Traveler9Hm I did that and it said nothing00:49
Traveler9But I get the same error on a bzr push00:49
thumpernekohayo: the intent was to allow the watchers to have time to branch if they are interested before you delete it00:49
thumpernekohayo: I am beginning to think that it isn't such a good reason00:50
nekohayothumper: hm. perhaps there should be a "it will be deleted in 72 hours" then?00:50
thumpernekohayo: yeah, that sounds sensible00:50
Odd_BlokePerhaps making the choice to abandon a branch more obvious too.00:50
markhTraveler9: so if you execute 'bzr version', does the location of the "Python standard library" match what you expect (ie, is it your Python's lib directory where paramiko is?)00:50
Traveler9 Python standard library: C:\Program Files\Bazaar\lib\library.zip00:52
Traveler9Not sure where paramiko was installed to.00:52
markhTraveler9: right - you are running a binary version, not the Python version00:53
markhthe simplest answer is probably to update your binary version of bzr - can you remember what version of bzr you installed?00:54
Traveler9Bazaar (bzr) 1.6b300:55
is_nulli finnaly got bzr+bzr-svn, but tests don't pass: http://nopaste.com/p/aPc7fi5uh any tip please? is it a local issue?00:55
markhI'm surprised that comes without paramiko00:56
=== sdboyer|at_work is now known as sdboyer
markhI'm putting up a 1.6b4 binary right now that should work :)  It will be a few minutes though, and its about 16MB as it has a full copy of Qt4 included (I tried but failed to trim some of that - later!)00:57
markhTraveler9: actually, b4 isn't quite ready :)  starship.python.net/crew/mhammond/bzr-setup-1.6b3.exe is a slightly different binary version than what you are using - it contains a rudimentary Tortoise and also works fine with Paramiko, if you want to give it a go.  b4 will have a much better tortoise, but I'm sure you can survive a few days :)01:03
Traveler9Should I uninstall bzr first?01:04
markhit shouldn't hurt not too, but it sure can't hurt to uninstall :)01:07
bpetersoncan bzr log and diff be optimized for huge projects?01:07
Traveler9Okay that version gives me: 0.235  failed to instantiate transport <bzrlib.registry._LazyObjectGetter object at e710a8, module='bzrlib.transport.sftp' attribute='SFTPTransport'> for 'sftp://fortw@67.222.133.33/~/': ParamikoNotPresent()01:08
is_nullwhat does that mean please? "bzr: ERROR: Repository KnitPackRepository('file:///home/jpic/testbzr/.bzr/repository/') is not compatible with repository SvnRepository('file:///home/jpic/testsvn')"01:09
mwhudsonbeuno: replied to your mail01:10
bpetersonis_null: it means you have to make different repo when you do init-repo01:10
markhbugger.01:11
jelmeris_null, which bzr-svn branch are you using (wrt http://nopaste.com/p/aPc7fi5uh) ?01:11
is_nullbpeterson, i see, i'm trying to track/branch a framework svn repo inside the bazaar repo01:11
is_nulljelmer, 0.401:11
jelmerhmm, perhaps I forgot to push some changes01:12
jelmeris_null: the error is caused by your local bzr repository not being a rich-root-pack repository01:13
jelmersee the bzr-svn FAQ01:13
is_nullfor testing, i made the bzr repo in ~/testbzr, an svn repo in ~/testsvn (svn wc: ~/testsvn2), i'm trying to get ~/testsvn tracked and branched into ~/testbzr01:13
is_nulljelmer, i just saw the faq, sorry01:13
is_nullthe problem is now "AttributeError: 'SvnWorkingTree' object has no attribute '_transport': http://nopaste.com/p/ayvGv2tIb01:15
* mwhudson lunches01:16
markhTraveler9: I'm stumbling around a little in the dark now, but I'm guessing it might be specifically related to sftp.  what does "bzr selftest test_sftp" do for you?  I get 18 tests run, 1 failure and 3 skips01:16
Traveler918 tests, 3 skipped, tests failed01:18
Traveler9[18/18 in 4s, 1 fail] test_sftp_transport.TestSocketDelay.test_delay01:18
jelmeris_null, I'll have a look, probably broken by some recent change in bzr.dev01:21
is_nulljelmer, what revision are you using?01:23
jelmerbzr.dev 356501:24
jelmerbzr-svn 148901:24
is_nullthanks!01:25
markhsame result - strange.  i'm fairly sure paramiko us being used in those builds for bzr+ssh pushes. but I haven't tried sftp01:28
poolie<jam> /train :-) :-)01:29
pooliehi markh01:29
markhhi poolie01:29
fullermdAre these bzr-gtk BB confirmations leaking onto the bzr list?01:32
Odd_BlokeThey seem to be.01:34
Odd_Blokeabentley: ^01:35
jelmerBB uses the branch location to find the project but it doesn't know about all of the aliases for bzr-gtk on launchpad01:35
jelmerif it can't find the submit branch location, it'll default to bzr01:35
lifelesshi01:37
lifelesscjwatson: its in progress on my laptop; haven't finished investigating01:38
jelmer'morning lifeless01:38
lifelessjelmer: hi, any progress on that bug?01:38
jelmerlifeless, hi01:38
jelmerlifeless, I've merged your rebase branch01:38
jelmerlifeless, Which bug?01:38
lifelesscool01:38
mwhudsonhi lifeless01:39
lifelessbzr-svn critical thingy01:39
lifelesshi mwhudson01:39
lifelessjelmer: the one discussed in $gnome-bzr01:39
Traveler9shoop da woop01:39
lifelessI've literally just got home from the plane, I'll be a bit spotty today01:39
lifelessBug 25048001:40
ubottuLaunchpad bug 250480 in bzr-svn "Missing texts, ghosts and inconsistent parents" [Critical,New] https://launchpad.net/bugs/25048001:40
Traveler9Is cElementTree needed?01:43
markhTraveler9: how you going - i seem to be able to push to sftp fine with those binaries01:43
markhTraveler9: its not in those binaries, so I hope not :)01:43
jelmerlifeless, I've been travelling until late yesterday evening so haven't had much time to look at it yet01:44
lifelessjelmer: ok01:44
lifelessme too :)01:44
markhTraveler9: is it possibly something in your environment?  Is it possible you tried to install paramiko into the "\program files\bazaar" directory?01:46
Traveler9It was installed to the default, I didn't change anything.01:46
markhyour python install should not be used at all when using the binaries.  Theoretically they couldn't possibly conflict, but theory and practice...01:47
Traveler9I'm getting this now: bzr: ERROR: exceptions.NameError: global name 'win32ui' is not defined01:48
is_nullwhy isn't bin/bzr compiled?01:49
bob2to what?  it is python code.01:49
bob2bytecompiled?01:50
markhTraveler9: ack, that is in paramiko.  You getting that running "python bzr", or bzr.exe?01:50
Traveler9cmd.exe /K start_bzr.bat01:50
is_nullbob2, yes01:50
jelmeris_null, how did you get the _transport error?01:51
bob2is_null: it is like 80 lines of code :)01:51
is_nulljelmer, sorry, i did not make the investigation log01:51
jelmeris_null, I've just pushed some fixes to the 0.4 branch01:52
jelmerany chance you can try again?01:52
is_nullbob2, i'd like to set different pax flags on bzr, i tryed to bytecompile it by running `python -O bzr` as in section 6.1.3 of http://docs.python.org/tut/node8.html but it did not create the bytecompiled file and i'm a newbie with python ... any tip please?01:53
is_nulljelmer, sure01:53
is_null(note that i was probably mis-using bzr-svn)01:53
jelmeris_null, that's alright, it shouldn't yell at you if you do that01:53
markhTraveler9: I'm not sure how that happened-  I might need to check the paramiko binary - but it looks like you will need to edit paramiko\win_pageant.py :(01:53
bob2is_null: I don't think that will help, 'python' will still be the executable01:54
markhthe paramiko trunk doesn't have that error01:54
is_nulljelmer, can't reproduce, sorry01:54
Traveler9I'm not sure how to go about doing that.01:55
is_nullbob2, true ... i was confused01:55
markhThe problem isn't simply "paramiko is missing" - if it is, the error looks more along the lines of "bzr: ERROR: Unsupported protocol for url "sftp:... No module named paramiko"01:59
Traveler9Do you want the entire backtrace?02:01
markhnot of the NameError - I'm more interested in your original error from the binary "failed to instantiate transport <bzrlib.registry._LazyObjectGetter object at e710a8, module='bzrlib.transport.sftp' attribute='SFTPTransport'> for 'sftp://fortw@67.222.133.33/~/': ParamikoNotPresent()" and why that is failing to find paramiko02:02
Traveler9Well right now it's giving me the NameError02:03
markhoh - you mean start_bzr.bat from the "\program files\bazaar" directory?  Yeah, please include the 2 lines above the one you show02:04
Traveler92 lines above "global name 'win32ui' is not defined"?02:05
markhyeah02:09
Traveler9>bzr push --create-prefix sftp://fortw@68.222.133.33/02:09
Traveler9Connected (version 2.0, client OpenSSH_4.3)02:09
Traveler9bzr: ERROR: exceptions.NameError: global name 'win32ui' is not defined02:09
jelmerlifeless, just posted a comment; I can't reproduce it02:13
markhthat is looking very much like an error I made making those binaries :(  I'll try and have a fixed one in an hour - hopefully less.02:15
is_nulljelmer, i've got a segfault with bzr-svn: http://nopaste.com/p/aRwQLnxlk what bzr-dev revision for the current head of bzr-svn please?02:26
jelmerthe latest bzr.dev should work with the latest of bzr-svn02:27
is_nullstill segfaulting ...02:29
jelmeris_null, that sequence of commands works fine here02:31
jelmerwhat version of python are you using?02:31
jelmerand what hardware platform?02:33
is_nulljelmer, amd64, python 2.5.202:34
jelmeris_null: The bzr-svn testsuite doesn't segfault?02:35
lifelessspiv: http://svn.gnome.org/tmp/common-pre-commit02:35
lifelessspiv: gnome common hook sources02:35
lifelessjam: ping02:37
is_nulljelmer, http://nopaste.com/p/a2J5Ni7Jm02:37
lifelessjam: is there a canned way to disable lazy imports?02:37
jelmeris_null, can you try "make check-one" ?02:37
jelmer(or bzr selftest svn --one)02:38
lifelessjelmer: debugging the segfault I get ? ::)02:39
spivlifeless: thanks, but I already have a copy of that.02:39
lifelessspiv: cool02:39
lifelessspiv: I was closing browser windows02:39
spivAh, right.02:39
jelmerlifeless, I think it's a different one - he's getting unexplainable errors in the testsuite as well02:39
is_nulljelmer, http://nopaste.com/p/adjtVmRUI02:40
lifelessjelmer: the test suite that segfaults for me ? :)02:40
lifelessjelmer: python 2.5.2 amd6402:40
jelmerlifeless: Do you get testsuite errors before the segfault?02:40
jelmeris_null, what version of subversion are you using?02:40
is_nulljelmer, 1.5.002:40
lifelessjelmer: svn, version 1.4.6 (r28521)02:40
lifelessjelmer: running make check02:41
lifelessjelmer: fail - doesn't honour PYTHONPATH02:41
is_nullit seems to do so here: http://nopaste.com/p/aaI6uBvZQ02:42
jelmerlifeless, I'm pretty sure it does - you may need to set $BZR though02:42
lifelesswhich bzr gets the right bzr02:43
libwilliamI was wondering if there was a place somewhere that listed the strings you couldn't pass into the --message option of bzr log02:43
lifelessjelmer: no errors just hte segfault02:43
libwilliamcurrently I know of bzr log --message=* --message=? --message=+02:44
markhTraveler9: http://starship.python.net/crew/mhammond/bzr-setup-1.6b4-mh1.exe will hopefully work better for you.02:44
bob2libwilliam: surely that is a limitation of your shell, rather than bzr02:44
lifelesslibwilliam: it wants a regex02:44
lifelesslibwilliam: so "bzr log -m='.*'" will work fine02:44
lifeless(for instance)02:45
bob2libwilliam: eep, sorry, read 'commit' rather than 'log'02:45
libwilliamlifeless, well I am doing the Anjuta plugin, and I have an entry where someone types in a regex and I update on the go... I just don't want it crashing if the first char they type is *02:45
libwilliamcurrently I can handle ignoring a first char of * + or ? but I wasn't sure if that was all of them.02:46
lifelesslibwilliam: if you're doing that sort of search, I would suggest using bzr-search instead02:46
lifelesslibwilliam: but separately - nothing should cause bzr log -m to actually crash; if you see crashes please file a bug02:46
libwilliamok02:46
libwilliamill make sure and submit a bug02:46
lifelessit just won't find anything useful if its not a valid regex02:46
lifeless(bzr-search will be stupidly faster than log -m for long lived projects)02:47
Traveler9Okay02:47
libwilliamk, stupidly fast sounds good :)02:47
lifelessit doesn't suport regexes or stemming or anything yet02:47
jelmeris_null, checking what could cause this..02:48
lifelessjust simply boolean AND with literal matches02:48
is_nulljelmer, wait, something is actually eating all my RAM and i can't figure the process02:49
libwilliamunfortunately I need xml output, I am using the xml plugin... but I think something like that is in the works02:49
lifelessthere is xml plugin support for search02:49
Traveler9bzr: ERROR: exceptions.NameError: global name 'win32ui' is not defined02:49
libwilliambzr-xmloutput has search support?02:50
lifelesslibwilliam: Verterok: knows the details, but there is a bzr-eclipse that has search support02:51
lifelessand it uses the xml stuff too02:51
jelmeris_null, any chance you can try again with the latest revision in the 0.4 branch?02:51
Odd_Blokelibwilliam: Surely you can validate whether a string is a regex before passing it through to bzr?02:51
spivOr just re.escape the search string.02:52
lifelessspiv: kindof prevents them using a re ;)02:52
libwilliamYa Vertorok mentioned he was working on doing something with search in his plugin02:53
spivlifeless: well, depends on what they want :)02:54
libwilliamFor the mean time I will check if it is a regex beforehand... and I'll submit a bug on the bzr crash with an invalid regex02:54
lifelesslibwilliam: the search is in the xmlrpc plugin I think.02:54
lifelesslibwilliam: or the rpc branch of xmloutput02:54
lifelessI dunno the details :)02:54
lifelessall I know is I have eclipse here that does bzr-search integration02:55
libwilliamthats the one I have checked out :) so i'll browse the code and see how to use it02:55
is_nulljelmer, http://nopaste.com/p/aTshZ4A9y btw, see at the end that there is >2G of free RAM, and it still exits "out of memory"02:55
libwilliamthanks!02:56
Verteroklibwilliam: hi02:57
libwilliamVerterok: hey02:57
Verteroklifeless: the xmlrpc service in xmloutput now support bzr-search ;)02:58
jelmeris_null, I suspect this is some 64-bit-related issue02:58
libwilliamNice :)02:58
jamlifeless: I don't have a canned way to do so, but in the 'bzr' script you could do override the lazy_import function. You could even just use the same ImportProcessor with a different lazy_import_class that just automatically imported them into scope.02:59
jamThat said, I know that bzrlib won't import anymore because of cyclical dependencies02:59
Verteroklibwilliam: the support is only for the xmlrpc bit, it uses xmlrpc de/serialization to send the results to the client (a simple dict)02:59
lifelessjam: damn03:00
libwilliamAlright, the xmlrpc thing I am going to look into after I get most of the stuff working by itself, which is close.03:00
libwilliamWhen you explained it it didn't seem so tricky03:00
lifelessmwhudson: how did you make pyflakes/pydocktor work with lazy import?03:00
mwhudsonlifeless: i only did pyflakesw03:01
Verteroklibwilliam: but I think that writting a xmlsearch command should be quite easy :)03:01
lifelessmwhudson: ... and how?03:01
Verteroklibwilliam: be aware that I don't have a clue about how to write a xmlrpc client in C :)03:02
mwhudsonlifeless: https://code.edge.launchpad.net/~mwhudson/pyflakes/support-lazy-imports03:02
mwhudsonlifeless: by compiling the string that gets passed into lazy_import into an ast and processing that just like the rest of the ast03:02
libwilliamVerterok: you just avoided a question in a couple weeks ;)03:02
lifelessblergh03:03
Verterokheh :)03:03
is_nulljelmer, well thanks for your help anyway, i know that you can't do anything about it... too bad i couldn't get my stuff done after all that hours trying (hopefully i'm a newbie and used to it)03:03
lifelessjam: I want to try our freeze03:03
lifelessits been on my list for $too_long03:03
jamfreeze?03:03
lifelessjam: do you think the cyclical imports are easy to resolve?03:03
jamlifeless: It would just be delaying them to some later time03:03
lifelessjam: py2exe for linux. ish.03:04
jelmeris_null, Things should hopefully be a bit easier to deal with once the new versions of bzr and bzr-svn are out03:04
is_nulljelmer, what do you mean?03:04
LeefmcQuestion: What is the proper command for uploading a branch to the launchpad? I'm rather confused as if i "register a branch" (Trunk for example), the resulting branch is "located at ~myname/hcrf/trunk", which seems odd to me to tie a project branch to my name03:04
jelmeris_null, well, since you can't use the current release because of some bugs that have since been fixed03:04
jelmerI assume your distro packages bzr and bzr-svn?03:05
LeefmcI'm coming from Git, but this is obviously foreign heh03:05
lifelessLeefmc: well, if you want a project branch that many people can upload to, create a team03:05
lifelessLeefmc: branches in launchpad are in a namespace - owner/project/name03:06
jamlifeless: the other 'quick hack' to do it is to just comment out the "lazy_import(globals(), """ line03:06
Leefmclifeless: I have to create a team "first"? At the moment i dont have a team, nor do i want one, but later it will be desired.03:06
lifelessLeefmc: this lets anyone call their branch anything they want03:06
Leefmclifeless: Ah, ok03:06
jamI intentionally made the syntax == regular import03:06
lifelessLeefmc: you can create a team later and hand the branch over to the team03:06
Leefmclifeless: I just found it odd since my project is launchpad.net/myproj03:06
is_nulljelmer, i'm using bzr.dev and the 0.4 branch of bzr-svn ...03:06
jamso I think you could do:03:06
jelmeris_null, yeah, but the 0.4 branch is rather unpolished03:06
jamlazy_import = lambda scope,text: eval text in scope03:07
jamor something to that effect03:07
jelmeris_null, in particular, this 64-bit issue exists at the moment but that should be fixed before the release03:07
jelmerIt doesn't exist in 0.4.1003:07
lifelessjelmer: do you have access to a 64 bit cpu?03:08
lifelessis_null: you could run under gdb03:08
is_nulllifeless, can't (aslr)03:08
jelmerlifeless, no, but I'm installing debian on a 64-bit qemu image atm03:08
lifelessjelmer: let me know if you can't reproduce03:08
ToyKeeperNo matter how many times I hear that, it still doesn't sound right.03:10
jelmerToyKeeper, ?03:11
pickscrapehehe03:12
pickscrapeI think he was referring to "let me know if you can't reproduce"03:13
jelmerlol03:13
pickscrapeWhich might be something you'd get referred to a fertility specialist for.03:13
LeefmcQuestion: Does launchpad code give you the ability to view source code? (Ie, web based source, with highlighting, etc?)03:13
jelmerI had never thought of interpreting it that way03:13
pickscrapeTakes a strange mind...03:14
lifelessLeefmc: http://bazaar.launchpad.net/USER/PROJECT/BRANCH03:14
* ToyKeeper spent much of the past 2 years trying not to laugh during QA meetings because of that particular language quirk03:14
spivLeefmc: you can browse source, he's an example of a file in a branch: http://bazaar.launchpad.net/~bzr/bzr/trunk/annotate/head:/README03:15
lifelessLeefmc: e.g. http://bazaar.launchpad.net/~lifeless/+junk/bzr-index203:15
Leefmcah k ty. I was wondering because it seems i have uploaded my project, but i have yet to find where i can browse the source, etc.03:16
spivLeefmc: it doesn't do syntax highlighting of files yet, though.03:16
Leefmcno biggie03:16
spivThere's a "Browse code" link on the branch page.03:16
spiv(Assuming that the branch has revisions in it, anyway)03:17
Leefmcyea03:18
LeefmcSo what is the proper pushing command then? The tutorial shows bzr push bzr+ssh, but the launchpad pages show bzr push lp:03:19
LeefmcThough i've gotten errors everytime with lp03:19
ToyKeeperLeefmc: Did you 'bzr launchpad-login myname' first?03:20
LeefmcNo, i get an error with that03:20
spivEither is fine, the "lp:" one is just a shortcut.  If you get errors with it, it's likely because you haven't run "bzr launchpad-login YOURNAME" first.03:20
ToyKeeperYou need to give it your username, and set up ssh keys, before you can push to launchpad.03:20
LeefmcNote that the tutorial never talked about the lp one, nor launchpad-login03:20
LeefmcToyKeeper: Yea but i can't do that heh,it just gives errors :/03:20
Leefmc1 sec, i'll get the error03:21
LeefmcThis is part of it: ....  is permanently redirected to https://launchpad.net/~...03:21
LeefmcFull: bzr: ERROR: https://launchpad.net/%7ELeefmc/%2Bsshkeys is permanently redirected to https://launchpad.net/~leefmc/+sshkeys03:22
bob2enter that URL in your web browser to paste your id_rsa.pub in03:22
pickscrapeHow can I retrospectively add --no-trees to a shared repository?03:23
spivLeefmc: https://launchpad.net/~leefmc/+sshkeys is not a URL for a bzr branch03:23
lifelesspickscrape: touch .bzr/repository/no-working-trees03:23
lifelesspickscrape: (sorry)03:23
pickscrapelifeless: excellent, thanks03:23
pickscrapeWorked like a charm :)03:24
jameshsounds like something "bzr reconfigure" should let you do03:24
lifelessindeed03:24
spivLeefmc: also, there doesn't appear to be a 'leefmc' user in Launchpad, although I do see a 'leefmc+0layvar'.03:25
lifelessmwhudson: pyflakes uses the python parser?03:25
mwhudsonlifeless: it uses the compiler package03:26
mwhudson(which uses the parser module, which uses the python parser)03:26
Leefmcspiv: About the url, i dont know about that. All i know is i type "bzr launchpad-login Leefmc" and it gives me that error. Also, i assumed it wanted my display name because it roughly accepts "Leefmc", but if i type "leefmc" it returns a "no leefmc user" error03:28
LeefmcI'll try my full name03:28
spivIt wants your launchpad user ID.03:28
lifelessholy cow03:28
Leefmcspiv: So which command should i use for pushes then? As i mentioned the tutorial gives one example, the project pages give another03:29
spivLeefmc: that error is pretty bad, it seems to be a bug in the launchpad-login command.03:29
Leefmcspiv: Gotcha, i changed my "name" to leefmc anyways, and now it worked :)03:30
spivLeefmc: either is fine, but "lp:" requires that you've done a successful "bzr launchpad-login ..." first.03:30
spivLeefmc: the lp: essentially just redirects to the bzr+ssh:// location03:30
Leefmcspiv: Either is fine, but one isn't optimal over the other?03:30
LeefmcAh ok, gotcha :)03:30
spivBut is obviously much shorter to type.03:30
jamlifeless: if you are just looking to use something like py2exe, our setup.py code already has something to hack in understanding of lazy_import for py2exe03:31
jamyou might just grab that03:31
lifelessjam: freeze generates C modules03:31
jamah03:31
jaminteresting03:31
lifeless/usr/share/doc/python2.5/examples/Tools/freeze03:32
lifelesswith the bytecode in an array.03:32
lifelessfugly stuff :)03:32
* ToyKeeper wonders why bzr remembers the expanded URL instead of the one the user entered03:33
jameshdo people still use freeze?03:35
lifelessjamesh: I want to see what it does to startup time03:37
jameshlifeless: I'd have thought that zip imports would give similar performance03:38
lifelessjamesh: depends where the slowdown really is03:38
* igc lunch03:43
LeefmcThere doesn't seem to be a link section for a project dev blog, am i correct? (Ie, to tell users of the project dev blogs location)03:57
lifelessmarkh: does py2exe work on linux?03:58
lifelessLeefmc: don't think there is no; #launchpad is the IRC channel for launchpad specific questions BTW03:59
Leefmclifeless: Thanks for the heads up03:59
markhlifeless: not afaik03:59
lifeless(though we'll try to answer here, the actual lp devs are better represented on #launchpad)03:59
markhI believe it can run on linux, but not create executables that target linux03:59
markhthere is py2app for macosx - and pyinstaller is a revival of a dead project, and it says it works on linux - http://pyinstaller.python-hosting.com/ - but I'm not sure how active that is04:02
LeefmcHow do you save a location to bazaar?04:02
LeefmcMine has an invalid location saved (for pushing)04:02
bob2"bzr push --remember kajshdfklajsh" will overwrite the existing value04:03
lifelessLeefmc: --remember04:03
Leefmcthanks04:03
lifelessmarkh: yah, I want a monolithic binary, not an installer.04:03
=== mw is now known as mw|out
lifelessneed sleep, back in a few04:06
lifelesshours that is04:06
LeefmcQuestion: So, just to get my bearings, in Git i would often try out code ideas by creating a separate branch and toying with code. And ofcourse at anytime you can switch pop back and forth between the two branches. How is this done in bzr?04:06
Leefmcbzr branch seems to talk about separate directories and junk04:07
Leefmcso i assume that is not what i want04:07
lifelesswhat you probably want is:04:07
lifelessbzr init-repo --no-trees REPO04:08
lifelessbzr init REPO/trunk04:08
lifelessbzr checkout --lightweight REPO/trunk WORKING04:08
lifelesscd WORKING04:08
* Leefmc is confused :)04:08
LeefmcSo wait04:08
lifelesscp -r /source_I_want04:08
lifelessbzr add04:08
lifelessbzr commit -m 'imported'04:08
Leefmcyour cd'ing, so is the git workflow not possible in bzr?04:08
lifelessbzr branch $REPO/trunk $REPO/branch04:08
lifelessbzr switch branch04:08
lifelessbzr switch trunk04:09
lifelessetc04:09
lifelessLeefmc: its totally possible, we have separate concepts for 'source you edit', 'branch', and 'history storage'04:09
lifelessit just looks a tiny bit different than in git04:09
LeefmcWell i mean, your cding.. so your storing your branches as copies, correct?04:10
LeefmcThats not exactly what i was looking for04:10
lifelesswhat my commands above setup is one tree to edit your source, N branches, and one repository to store your history04:10
lifelessLeefmc: I don't know what you mean by 'as copies'. Each branch is a few KB of data04:10
markhthose tools all try to get as close to a monolithic installer as possible iiuc04:10
Leefmclifeless: Copies as in, say all your code is in "/src", are you storing "/src" and "/test-branch" ?04:11
markhpyinstaller's history is that it was proving better than py2exe, but then the maintainer vanished, so most people jumped back to py2exe - then it was revived as pyinstaller.04:11
lifelessLeefmc: I don't follow the question04:12
Leefmclifeless: Ie, in git (and this is the main point im driving at) all your code is stored under "/src" and git modifies your source depending on the branch your in04:12
Leefmclifeless: So you can have ten branches, but you only have one directory for your source04:12
Leefmclifeless: And switching between those branches does nothing but change the contents of "/src"04:12
Leefmclifeless: But git manages that, not me. No cding, etc04:12
lifelessLeefmc: so there are two separate things here: having N directories, and 'switch does nothing but change the contents of "/src"'04:13
lifelessLeefmc: in bzr (without plugins) a branch is always a directory, so that you can use normal tools to manage it04:13
Leefmclifeless: Gotcha04:13
lifelessLeefmc: but your *source code* is able to be decoupled from the *branch*04:13
lifelessLeefmc: and that gives you 'switch does nothing but change the contents of "/src"'04:14
lifelessLeefmc: e.g. if you have two branches of mysql with only a couple of files different, 'bzr switch' will only write to those two files, and the metadata files during the update04:16
Leefmclifeless: Gotcha04:16
lifelessLeefmc: give the commands I put up above a poke, and peek around inside .bzr of each thing04:18
Leefmck04:19
lifelessI'm going away for a few hours (jetlagged), but there are other folk here can probably help you understand what bzr can offer04:19
Leefmcthanks04:21
Leefmcnight ;)04:22
lifelessk, really going. but a quick result from freeze: stat system time : 0m0.048s vs 0.072s (wall clock not dramatically different on hot-cache)04:23
lifelesson cold cache, the frozen bzr is 2 seconds faster04:24
lifeless(with --no-plugins given)04:24
markhthat's significant04:28
* markh the master of understatement ;)04:29
pickscrapeAnyone know the current state of trac-bzr development?04:32
pygipickscrape, I don't really think it's being developed, tho you probably shouldn't listen to me :p04:32
pickscrapeThat's a shame04:32
pygioh well04:33
jelmerpickscrape, devleopment is still happening04:33
jelmerpickscrape, it's not at a very high pace, but there is the occasional patch every now and then04:33
pickscrapejelmer: yes, I'm just trying to decide which branch to install04:34
pickscrapetrac0.11 is the obvious choice04:34
pickscrapeBut then ~menesis/trac-bzr/menesis-dev adds a couple of additional commits on top of that04:35
jelmerpickscrape, I would recommend just lp:trac-bzr04:36
pickscrapeDoes that suppose 0.11 though?04:36
jelmeryeah, I think it does04:37
Odd_BlokeWhat's the status of Cart?04:48
thumperOdd_Bloke: :) dormant?04:49
thumperOdd_Bloke: are you doing the weird nocturnal lifestyle thing?04:50
AfC´╗┐Don't be awake when everyone else in your timezone is. Fight the establishment!04:52
alecw1What is the best name for a development branch? I've heard dev, devel, head, trunk... which is recommended?04:54
thumperalecw1: I normally use a feature name04:56
thumperalecw1: eg. revision-feed or karma-for-commits04:57
alecw1I'm talking about the repository that we merge all tested features into; it's like, the main game branch.04:57
thumpertrunk04:57
thumperthat's what I call it04:57
thumperbut often it is devel04:57
* thumper shrugs04:57
thumperbzr has bzr.dev04:57
thumperI don't think there is a recommended name04:58
thumperjust as long as there is a concensus04:58
* thumper looks at the word thinking he has spelled it wrong04:58
alecw1consensus04:58
alecw1okay, I think I'll stick with trunk04:59
alecw1that just sounds to-the-point, easy to say, etc04:59
AfCalecw1: we use 'mainline'05:03
alecw1AfC: but that's not very conventional. =P05:03
jamesh"trunk" is familiar to people who are coming from subversion05:04
AfCalecw1: it is the "mainline" of development.05:04
jameshand isn't a particularly bad choice05:04
pickscrapeFor our new repo we're using 'live' because that's what it represents in our case05:04
pickscrapedevelopment happens on branches05:04
pickscrape(it's a website)05:04
AfCjamesh: being palatable to people who refused to move on from Subversion wasn't a high priority for us at the time.05:04
jameshAfC: that is not what I said05:04
alecw1"trunk" doesn't imply that 'development happens here' though.05:05
jameshAfC: what I mean is that if there are a number of equally valid choices, why choose to be different?05:05
alecw1jamesh: agreed, it just seems easier, familiar, and not incorrect.05:06
jameshand I am not suggesting that blindly copying subversion on everything is a good idea either05:07
AfCjamesh: I can't remember who suggested it at the time, but I was well familiar with the term from both the corporate world and older open source communities. If anything, we found 'trunk' ambiguous. Whatever05:07
jameshjust save your inconsistencies for things that matter.05:07
jameshAfC: sure.  If anything, Subversion picking "trunk" was inconsistent with CVS05:09
jameshor maybe not.  The CVS docs seem to use "main" about as much as "trunk", and often talk of the "main trunk"05:10
AfCOur use of DVCS predates Subversion. I really don't attach a high priority to their terminology for things. Admittedly, I'm not in the business of convincing people who use it to switch. And certainly, far be it from me to tell others what to pick. People can do what they want with their own projects.05:11
pickscrapejelmer: JFYI, ~vslavik/trac-bzr/trac0.11 does a better job with trac0.11 than lp:trac-bzr does05:11
pickscrapetrac-bzr won't even let me view a changeset.05:11
rustyHi all... someone else committed to my repo, but I see the change or pull it.  The only clue is that on the server that commit has "branch nick: commit_repo" whereas all mine are "branch nick: ccan"05:33
rustys/but I see/but I cannot see/05:34
sohailhey guys, how would I convert a git repository to bzr?05:34
mwhudsonsohail: "fast-export"05:35
sohailmwhudson, and then importing to bzr?05:36
mwhudsonsohail: right, there is a bzr-fastimport plugin05:36
spivrusty: where are you seeing "branch nick: commit_repo"?  I'm a bit confused, you say both that you can see the nick in a commit, but also that you can't see the commit?05:36
AfCIf rusty has pulled, then `bzr update` won't help, will it?05:36
sohailmwhudson, thanks05:36
mwhudsonsohail: note that i've never done this, i'm just parroting what i've seen other people say :)05:37
rustyspiv: server ozlabs.org sees commit in the logs.  I pull, it says "No revisions to pull."05:37
sohailmwhudson, thats ok.. I probably wouldn't lose any data :-)05:37
mwhudsonsohail: :)05:38
spivrusty: does "bzr log --show-ids -r -1" on both locations show the same thing?05:38
AfCrusty: when you say "logs" do you mean `bzr log` on the serer in that branch there shows the revisions, or something to the effect of "I saw it in the Apache log" (sic)05:38
rustyspiv: no.  I have 51. It has 52.05:39
rustyAfC: `bzr log` in server repo dir vs. `bzr log` on my machine.05:39
AfCrusty: got it05:40
AfCrusty: that's a weird behaviour. Something is wedged, I should think05:40
rustyAfC: it's possible that my GSoC student created a branch somehow.05:40
spivrusty: Hmm, then "bzr pull URL" should pull that new revision.05:40
rustyspiv: yeah, you'd think so!05:40
* spiv thinks05:40
spivIs this a checkout or a brancH?05:40
spiv(i.e. does "bzr info" include the word "checkout" somewhere in the output?)05:41
spivIf it's a checkout of the remote branch, then the problem might be that you need to run "bzr update" to update the checkout.05:41
rustyspiv: neither end does:05:42
rustyserver: Standalone branch (format: pack-0.92)05:42
rustymy end: Standalone tree (format: dirstate)05:42
rustyspiv: Hmm, server is 1.5, I am 1.3.105:42
spivThose versions should be ok.05:43
spivHmm.  Your side is in an old format though.05:43
spivI guess it's possible that you have hit a bug that causes the revision-history file in an old format branch to be a bit inconsistent, though that seems pretty unlikely.05:45
rustyspiv: repo is published at http://ccan.ozlabs.org/repo/ via a CGI I got from somewhere...05:45
* spiv looks05:45
rustyspiv: looks like an hgweb ripoff :)05:46
spivAh, good ol' bzr-webserve :)05:46
rustyAnd that doesn't show rev 52 either :(05:46
spivAh, no, it's branch format 6, so it's not a revision-history file problem.05:46
rustyspiv: want ssh access to the box?  Or a tarball of the whole repo?  It's pretty small.05:48
spivrusty: is there a public URL for the branch with revno 52?05:48
spivrusty: yeah, a tarball's fine.  andrew at canonical.com.05:49
rustyspiv: I don't even know if it is a branch... how do I tell?05:49
spivIf you can do things like "bzr log" in it, it's a branch :)05:49
spivMore precisely, if it has .bzr/branch/*05:50
rustyspiv: http://ozlabs.org/~rusty/repo.tar.bz205:52
rustyspiv: 700k.05:52
spivrusty: ta05:53
pygiaha, now I can send a patch against a patch because I just found a bug :p05:53
* pygi hides05:54
spivrusty: hmm, so if I untar that to /tmp, and do "bzr branch http://ccan.ozlabs.org/repo/; bzr pull /tmp/repo", it pulls revision 5205:55
AfCrusty: to elaborate on something spiv said, you can have an "empty" directory that has a branch in it if there's a .bzr/branch/ there; the directory will be populated with the project when there is a Working Tree present, but one doesn't always have to have the full tree sitting there checked out to have a branch location;05:55
AfCrusty: Repository in Bazaar parlance is the .bzr/repository/ directory, which might be at ., might be at .., might be at ../.., etc05:56
spivrusty: so at this point I guess we should double-check that the location that "bzr pull" is using is what we think it is05:56
AfCrusty: [when at .. or higher it is a "shared repository"]05:56
rustyspiv: trying that cmd here.05:56
spivHmm, "bzr branch http://ccan.ozlabs.org/repo/ foo; cd foo; bzr pull /tmp/repo" actually05:56
rustyspiv: yep... will take a while, satellite :)05:58
spivrusty: ah, ouch :)05:59
spivI should get back to cutting down round-trips then ;)05:59
rustyspiv: Branched 51 revision(s).... +N etc..  Now on revision 52.06:00
rustyspiv: OK, so that worked.  But why didn't pull just go straight to 52?06:00
rustyspiv: (I used branch -v BTW)06:00
spivWell, what URL did "bzr pull" say it was using before?06:01
spiv(I'm assuming you were just doing plain "bzr pull" with no explicit URL)06:01
rustyhttp://ccan.ozlabs.org/repo/  I also tried explicitly pulling from bzr+ssh://...06:01
rusty(which should be same repo as cgi points at)06:02
spivAh, but http://ccan.ozlabs.org/repo/ only has revision 51.06:02
spiv$ bzr revno http://ccan.ozlabs.org/repo/06:02
spiv5106:02
rustyspiv: yes, but why?06:03
rustyspiv: bzr log on that dir says it has 52.06:03
rustyspiv: and using bzr+ssh://  didn't see 52 either, so I can't blame some cgi weirdness.06:03
spivWhat exactly do you mean by "on that dir?"06:03
spivI see only 51 with "bzr log $ bzr revno http://ccan.ozlabs.org/repo/06:03
spiv5106:03
spivd'oh06:03
spivI see only 51 with "bzr log http://ccan.ozlabs.org/repo/ -r -1"06:04
rustyspiv: I ssh into server, do "bzr log" in /home/ccan/repo...06:04
spivAnd bzr+ssh://server/home/ccan/repo didn't show 52?06:05
rustyspiv: hold on, I'm using a wrapper for ssh access in the ccan account's .authorized keys... bzr-ssh06:05
spivAh, hmm.06:06
rustyspiv: maybe I screwed something there.... one sec, will try circumventing it.06:06
rustyspiv: ah, oops.06:09
spivrusty: :)06:09
rustyspiv: yeah... so I don't quite know how, but this seems to mess things up:06:09
rustyorig_cmd = os.getenv('SSH_ORIGINAL_COMMAND', '?')06:09
rustyif orig_cmd == 'bzr serve --inet --directory=/ --allow-writes':06:09
rusty    os.execlp('bzr', 'bzr', 'serve', '--inet', '--directory=' + sys.argv[1], '--allow-writes')06:09
rusty(I use the authorized_keys file to redirect them to run the script, based on hg-ssh)06:10
=== beuno_ is now known as beuno
spivHmm.06:11
rustyspiv: sys.argv[1] is "/home/ccan".  It's annoying that bzr serve wants to serve the entire world, but this at least restricts it to writing in the ccan home dir.06:12
rustyspiv: I *really* don't want to grant full ssh access just so people can commit to repo :(06:13
sohailhmm... After importing my git repo to bzr, the packed bzr is twice as large as the gc'ed git06:13
sohailhow can I find out what's wrong?06:13
spivWhat's argv[1]? -- ah, I look away for a second and you've already told me :)06:13
lukssohail: you have probably lots of junk under .bzr/repository/obsolete-packs06:14
sohailluks, what is that?06:14
sohailluks, indeed, half of the whole repo is contained here..06:14
lukspacks that were used before you ran `bzr pack`06:14
AfCsohail: or, bzr may be storing more {meta,indexing,etc} data, so it's possible that "nothing" is wrong. However, the Bazaar hackers have been working away quite heavily on some neat things that dramatically reduce the size taken by revision data on disk, which is pretty cool.06:15
luksthose are useless now06:15
sohailluks, ah06:15
luksyou can delete them, but I should add that the official answer is to not touch .bzr :)06:15
spivrusty: off the top of my head, that script sounds fine to me.  I'll see if I can reproduce some weirdness locally.06:15
sohailluks, :-) I can leave it for now I guess06:15
AfCluks: it's like the _next_ operation will auto-clean that for sohail, right?06:15
lukssohail: nah, you really can delete them06:15
luksAfC: the next packing will clean them06:15
AfCyeah, I knew it was something l like that, modulo "things people have worked on that aren't released yet"06:16
spivrusty: oh,06:16
rustyspiv: mailing appropriate bits now...06:16
spivrusty: what's the bzr+ssh:// URL you were using?06:16
sohailluks, ok I'll do it06:16
spivrusty: with that script, you'll need just bzr+ssh://server/repo, not bzr+ssh://server/home/ccan/repo06:16
AfCluks: (or sohail could just run `bzr pack` manually, right?)06:16
luksAfC: yep06:17
sohailwell now it is less than git06:17
sohailso good for you :-)06:17
sohailalthough maybe git has the same problem06:17
luksbut of course, in both cases he he will have new ones there :)06:17
sohail"problem"06:17
lukssohail: I don't think git backups the old packs06:17
AfC"problem". Doing apples and apples comparisons is hard, as different systems do different things at different points in the lifecycle. That said, I'm pretty excited about the compression work that's being done, because that will reduce amount-over-the-wire network pressure, etc06:18
sohailluks, then bzr wins :-)06:18
luksyou could always tweak git to win06:19
lukswith long delta window, etc.06:19
rustyspiv: Ah, that works!06:19
rustyspiv: now, why didn't I get an error when I got the url wrong?06:19
spivrusty: the --directory= arg causes the bzr server to treat all paths from the client as relative to that directory (and doesn't let the client break out of that directory)06:20
spivrusty: I'm not sure why you didn't get an error06:20
spivrusty: presumably there's a /home/ccan/home/ccan/repo somehow!06:20
rustyspiv: err... yeah :)06:20
* AfC tries to figure out exactly what script+ssh{,d} config rusty is using as he'd like to cloak actual paths as well06:21
rustyspiv: and it has a .bzr dir in it...06:21
spivrusty: I'm betting "bzr revno /home/ccan/home/ccan/repo" on the server reports "51", too.06:22
AfCAlso, fwiw, Rusty, you might want to try running a newer version of Bazaar as your client if possible; I mean, 1.3.x will work, sure, but the bug fix and better performance factor between that and 1.5 has [subjectively] been impressive. As will be the case to 1.6 when it stabilizes.06:22
AfCIANABH06:22
rustyspiv: OK, so it's a symlink to my web dir... which means that repo is being rsynced across from my machine by my scripts... digging :)06:23
markhis there a later version of the svn plugin that 0.4.10?06:25
rustyspiv: sorry for the confusion.  Looks like I've creatively mixed my old and new setups, and got distracted halfway through.  but it mostly "just worked" until someone *else* pushed a rev :)06:25
pooliehi rusty, afc06:25
rustypoolie: hi!06:25
AfCpoolie: yo Martin06:26
spivmarkh: not released.  The development branch has a heap of changes since 0.4.10, but I don't think jelmer considers it stable enough for a release yet.06:26
spivrusty: ah, right :)06:27
markhbut 0.4.10 is complaining it is too old for the bzr version :)06:27
rustyspiv: quite an impressive knot I created here.  Thanks for the injection of clue :)06:27
markhmaybe its misleading me and its actually the pysvn bindings that are too new06:27
spivrusty: not a problem06:27
rustyAfC: can publish script, but real python hacker would do better.  Problem is that bzr doesn't say what repo it wants to access on the cmdline :(06:29
AfCrusty: yeah, I know. Running `bzr serve` as a [read only] daemon was no problem; we serve up URLs like bzr://research.operationaldynamics.com/bzr/java-gnome/mainline/ too easy.06:31
AfCrusty: But pushing to that ATM is bzr+ssh://epsilon.dal.operationaldynamics.com/export/web/com/operationaldynamics/research/bzr/java-gnome/mainline/ I mean, kill me now06:31
AfCrusty: if you don't want to post publicly, I would be more than honoured to receive an email from one so respected :)06:32
rustyAfC: sent06:33
rustyAfC: with hg-ssh you can specify what repos to allow access to in .authorized_keys.  This one only allows you to restrict them to a particualr subdir.06:38
spivAfC: here's a quick thing I just made based on the snippet rusty pasted earlier: http://rafb.net/p/eHQs9285.html06:40
spiv(Hmm, you probably don't want the --no-plugins bit, that was just to help me test it)06:41
cjwatsonlifeless: thanks06:41
AfCLookin'06:41
spivAfC: there's a fancier bzr_access script in the contrib/ directory in bzr itself, I think it can do that too.06:42
rustyspiv: and humpty is back together again http://ccan.ozlabs.org/repo/06:44
spivHurrah!06:45
jameshrusty: you might want to run "bzr whoami" to set your committer ID06:46
rustyjamesh: thanks... is that permenant, per-repo or what?06:47
jameshrusty: it will store your committer ID in ~/.bazaar/bazaar.conf06:48
rustyjamesh: ah found it.  Thanks.06:48
spivrusty: it's permanent, but you can have per-location ones by editing ~/.bazaar/locations.conf06:48
jameshit is possible to specify different committer IDs for different branches (or trees of branches), but that is a little more involved06:48
rustyjamesh, spiv: thanks, I'm happy to have one non-sucky one for the moment :)06:49
jameshe.g. if you segregate work branches into a particular location, you can get bzr to use a work email for them while using a personal email for everything else06:49
markhanyone know off-hand how I can have bzr ignore pycurl certificate errors - eg, like "curl -k ..."?07:14
sohailhey, when bzr says: "N files ignored" how can you find out which files were ignored?08:31
luksbzr ignored08:31
sohailthanks :-)08:31
sohailah great, its ignoring the object files. :-)08:31
sohailthis is strange08:33
sohailbzr clone /path/to/foo ... bzr commit ... bzr push => Error: Need to specify location?08:33
luksit doesn't know where to push08:34
sohailbut I cloned it from /path/to/foo08:34
sohailwhy didn't it remember that?08:34
bob2it doesn't default to the parent for push08:34
bob2just pull08:34
sohailbut... why08:34
bob2often that isn't waht you want08:34
pooliesohail: because you'd often be starting work on a new feature08:34
luksbecause it doesn't mean you want to push there08:34
sohailconfusing...08:35
bob2e.g. if you have a local mirror of 'trunk', and branch from that, you probably want to push to the remote 'trunk' or something08:35
pooliesohail: if you do --remember on the first push you'll only need to give it once08:35
sohailwell ok I haven't got to that point yet so I'll take your word on it08:35
lukspoolie: er, you don't need --remember08:35
sohailmust say that bzr is just about as fast as git (I was using git for the past month but got sick of it's silliness)08:35
sohailand now I must go to bed08:36
sohailnight night!08:36
pooliegreat, glad you like it08:37
kiorkyjamesh: rah, its annoying that i cant not branch locally without reaching the svn server :/10:27
jameshdid you mean jelmer then?10:28
kiorkyjamesh: yes, sorry for the noise10:45
* mwhudson bounces about http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C48855B28.3070505@canonical.com%3E a bit11:03
jelmerkiorky: can you try branching while you don't have a network connection and run with BZR_PDB=1 set?11:13
jelmerkiorky: that should get you into a debugger11:13
jdobrienlarstiq: I pushed 3 blackbox tests for #30159 last night. https://code.launchpad.net/~jdobrien/bzr/bug3015911:46
LarstiQjdobrien: thanks11:47
yacc_Any idea how to release a remote lock?12:15
andrea-bsyacc_: bzr break-lock12:16
yacc_thx12:17
kiorkyjelmer: BZR_PDB asan env. variable isnt it ?13:11
james_wkiorky: yup, it will drop you in to a debugger on exceptions13:27
kiorkyjelmer_: https://bugs.launchpad.net/bzr-svn/+bug/250706/comments/414:30
ubottuLaunchpad bug 250706 in bzr-svn "branching locally tries to reach forward svn server" [Undecided,Incomplete]14:30
kiorkyjelmer_: i gave you the backtrace yet, i will be happy to hack on it, but for now i cant :p14:34
kiorkyjelmer_: just for you to see if there is not an obious bug14:35
kiorky*obvious14:35
Odd_Blokethumper: My sleeping patterns are just weird ATM, not really intentionally so. :)14:50
=== mw|out is now known as mw
gnomefreakhow would i fix this Unable to obtain lock file:///home/gnomefreak/tbird-3.0/work/thunderbird-3.0.head/.bzr/repository/lock held by gnomefreak@ubuntu.com on host Development [process #15954]15:12
lukswe should have a bot that auto-replies "bzr break-lock" to anything with "lock" in it :)15:12
pygior just make bzr run that automatically :p15:13
gnomefreakah thanks ill try it15:13
gnomefreakthanks it worked great15:14
gnomefreakit would be nice if it sees that its locked to give you the choice to break the lock ;)15:15
james_wI think the message might have been tweaked to suggest that now.15:20
beunoit was, in 1.5 IIRC. It now tells you how to unlock it15:21
james_whi beuno15:22
gnomefreakit doesnt here15:23
gnomefreak1.5-115:24
beunoevening james_w15:24
beunohmmmm...15:24
beunohttp://bundlebuggy.aaronbentley.com/request/%3C2422be180805201918p5baf7b5fq1c10ea8b300adfbe%40mail.gmail.com%3E15:25
beunoit was merged in May15:26
gnomefreakhttp://pastebin.mozilla.org/497775 is all i got15:27
gnomefreakwaited close to a minute than finally hit cntl+c15:28
gnomefreakctrl15:28
luksthere was no release since then, it will be in 1.615:29
beunoah, time sure flies by...15:29
luksnope, it's just that bzr releases are slowing down :)15:30
gnomefreakoh so it missed 1.515:30
stelthoI am trying to pull from a remote branch, and I am getting this error message:15:34
stelthobzr: ERROR: Invalid http response for http://bzr.savannah.gnu.org/r/gnash/.bzr/repository/indices/2c779c251220f8afce08bcec69277e32.rix: Expected a boundary ("/E9'NLJ'Cd-jBKfDwKZv", application/plain) line, got '--/E9'NLJ'Cd-jBKfDwKZv15:35
stelthoanyone have any idea what might be causing this15:35
Peng_steltho: What version of Bazaar?15:37
Peng_steltho: I'm pretty sure this was fixed recently.15:38
steltho1.1.015:39
meatballhatwhat's the right way to specify a merge from a branch without a common ancestor (if possible)?15:42
Peng_steltho: That's kind of old, and this was within the last couple months.15:47
Peng_Hmm, the Savannah thing I was thinking of might be a different issue.15:48
jelmerkiorky, still there?15:50
kiorkyjelmer: yep but at work15:55
jelmerkiorky, does foo/.svn exist?15:55
kiorkyfog: jelmer LC_ALL=C ls bzrsvn/messaging/.svn friendArchives/messaging/.svn15:57
kiorkyls: cannot access bzrsvn/messaging/.svn: No such file or directory15:57
kiorkyls: cannot access friendArchives/messaging/.svn: No such file or directory15:57
kiorkyjelmer: :)15:57
kiorkyjelmer: http://www.friendpaste.com/8tMhhdet15:58
jelmerkiorky, does "svn info foo" return anything?15:59
kiorkyjelmer: nope neither in the locally branched one16:01
jelmerkiorky: You run:16:03
jelmer>rm -rf foo;bzr branch  foo bar16:03
jelmer"bzr branch" assumes foo already exists locally16:03
jelmerdoes "bzr info" in the parent directory do anything?16:03
=== sdboyer is now known as sdboyer|coding
kiorkyjelmer: you mean in foo/..  ?16:05
jelmerkiorky: No, in the directory above foo/16:06
kiorkyjelmer: so in foo/?16:06
jelmerkiorky: no, in the parent directory of foo16:07
jelmerkiorky, you seem to be running "bzr branch" on a directory foo that doesn't exist16:10
jelmersince you remove it before you use it16:10
kiorkyjelmer: http://www.friendpaste.com/c6vWEJ5F and http://www.friendpaste.com/DwVJQ4KC16:10
kiorkyjelmer: foo exists !16:10
kiorkyjelmer: im not a fool :p16:10
jelmerkiorky, in your paste http://launchpadlibrarian.net/16253623/trace16:10
jelmerkiorky, you run ">rm -rf foo;bzr branch  foo bar"16:10
kiorkyjelmer: no i just replaced some content to hide the real folders16:10
kiorkyjelmer: i rm -rf bar16:11
kiorkyjelmer: not foo, sorry.16:11
jelmerkiorky: This is happening because one of the the ancestor directories of foo and bar contains some svn working copy16:12
kiorkyjelmer: uhm, how can it be possible16:12
jelmermaybe not /somewhere but one of the parents of somewhere16:12
kiorkyyep16:12
kiorkyon one parent more16:12
kiorkybut there is an ancestor common to the twice branches without any bzr or svn metadata directories16:13
jelmerthat doesn't matter16:13
jelmerit'll browse down to the root of the fs16:13
kiorkythe branches are in /myproject/repos/bzrsvn/foo /myproject/repos/feature/bar, /myproject/repos has nither .svn or .bzr but /myproject/ has an ".svn"16:14
kiorkyjelmer: why ?16:14
jelmerkiorky: What version of bzr-svn is this? I did fix something related to this earlier16:15
kiorkyjelmer: i gave you the versions on the bug report16:15
kiorkyjelmer: https://bugs.launchpad.net/bzr-svn/+bug/250706 :)16:16
ubottuLaunchpad bug 250706 in bzr-svn "branching locally tries to reach forward svn server" [Undecided,Incomplete]16:16
kiorkyjelmer: basicly a few day earlier co16:16
jelmerkiorky: I'll see if I can make it only create the remote connection a bit more lazily16:20
Peng_Is bzr-svn supposed to break existing branches in the most horrible ways at the moment?16:25
Peng_s/supposed/expected/16:25
LarstiQPeng_: ah yes, that combination of commit message and change :)16:26
Peng_?16:26
LarstiQPeng_: bzr log -r 1495; bzr diff -c 149516:27
Peng_Yeah16:28
Peng_Are there any current issues?16:28
=== sm_ is now known as sm
jelmerPeng: yes, the 0.4 is an unstable branch16:30
Peng_Uh-ohs.16:30
jelmerPeng: It always has been this way, I've just clarified the warning a bit16:31
Peng_Yeah, I know, but usually it's mostly working right.16:31
jelmersince some people seemed to interpret "output can change" as the console output rather than the revisions outputted16:31
jelmeryeah, it should still work well in most cases16:31
jelmernothing has changed there16:32
Peng_Okay.16:32
VSpikeI'm trying to push a branch up to a directory I created on my main repository, using bzr push --use-existing-dir .. The repo is on a linux box, shared using Samba, mounted on a Vista machine which is running the Cygwin version of bzr (1.4).16:36
VSpikeI'm getting an odd error: bzr: ERROR: Could not acquire lock "[Errno 13] Permission denied"16:36
VSpike/usr/lib/python2.5/site-packages/bzrlib/lock.py:79: UserWarning: lock on <open file u'/cygdrive/r/website/thurayalocate/web/.bzr/checkout/dirstate', mode 'rb' at 0x1329ad0> not released16:37
VSpike warn("lock on %r not released" % self.f)16:37
VSpikeAny ideas?16:37
matkordoes samba shares support file locks ?16:42
VSpikeYes, AFAIK16:43
VSpikeI guess I have a bit of a mix of technologies going on here, but normally it all works really well :) Amazingly enough16:44
VSpikeCan't get sftp working on windows but smb does me OK16:44
matkorIIRC I had similar prolbem with glusterfs ... and I had to enable posix locks which might be different than file locks used in samba16:46
VSpikeI can merge, push, pull, checkout to this repo normally from the vista machine16:47
VSpikeIt seems to be pushing to an empty dir that is breaking16:48
VSpikeDoes that use locks differently somehow?16:48
matkorI am not expert but I was surprised that there are many types of locks16:49
matkorI have to go, so goog luck with solving issue16:50
matkorgood16:50
vimes656is bzr cp available in the latest version of bzr?16:57
jelmervimes656: I don't think there is such a command16:59
vimes656jelmer: how can I copy a file keeping the revision history of the original file?17:00
jelmervimes656, there's no way to do that at the moment17:01
jjcroftivhello, i am new to bazaar and I am trying to find out how to create an external dependency like subversion externals, TIA17:02
jelmerjjcroftiv, there's an experimental feature called "nested trees" that does something similar17:03
jelmerabentley, thanks for the pqm updates17:03
abentleyjelmer: np17:04
jelmerkiorky, I've pushed a fix - any chance you can verify it works?17:06
mgedminshouldn't bzr get lp:lxml show some progress indication?17:10
mgedminall I get is a long silent delay and then "Branched 2661 revision(s)."17:10
mgedminbzr 1.517:10
mgedminthis is nice and Unix-y, but I seem to recall progress bars in earlier versions?17:11
jjcroftivjelmer, do you have any info on where the "nested trees" feature is documented17:14
jelmerjjcroftiv, I don't think it's very well documented yet since it's an experimental feature17:14
vimes656jjcroftiv: if you know how to use zc.buildout you can use gf.recipe.bzr17:17
vimes656I'm using it for a project and works quite well17:17
vimes656http://pypi.python.org/pypi/gf.recipe.bzr/1.0dev-2008011717:18
jjcroftivvimes656, thanks for the link, i'm going to check it out17:19
jjcroftivno pun intended17:19
dashHi. bzrlib question --17:48
dashi'm calling branch.create_checkout(). it takes an accelerator_tree argument; can it be a tree other than one associated with that branch?17:50
dashsay i've got branchA and branchB in a remote repository and I have a local checkout of branchA. can I use the tree from branchA as an accelerator_tree for checking out branchB?17:51
dashman. wish that 'integrating with bzr' doc showed some stuff about merges :)18:01
james_wdash: I believe you can. It will become less efficient the further the contents of the accelerator tree are away from the requested tree.18:13
dashSure.18:13
james_wwhat problems are you having with merges?18:13
dashjames_w: figuring out how to do them :)18:13
dashi'm reading builtins.cmd_merge18:13
dashbut there's a lot of it18:13
james_wyeah, it's a problem that there is too much logic in some of the cmd classes18:14
dashit's way better than some tools i've worked with... :)18:15
LarstiQwith or on?18:15
dashsure.18:15
LarstiQdash: gah :P18:16
chombeeHey -- following the centralised lock-step workflow, I create a local repo and commit some stuff then do bzr push to push it to a central a location. At the central location I get a repo with no working tree. Is it safe to do bzr checkout on the central repo to get a working tree? Or must it remain bare as in git?18:21
dashyes, you can checkout with no problem18:21
fullermdThe only gotcha is that future 'push's won't update that tree, so you'll have to remember to do it by hand.18:23
chombeeNext question, after the push the local repo seems to be a branch rather than a checkout of the remote repo. I guess I want do bind the local repo to the remote one, so I can do bzr updates?18:23
chombeefullermd Yeah, isn't it safer to have a central repo with no tree, so no one gets confused?18:24
dashchombee: possibly so18:24
fullermdWell, depends on why you want the tree there.18:24
dashbut there's also this: https://launchpad.net/bzr-push-and-update18:24
dash(perfect for developmenstuction environments)18:24
jamdash: for merge, you probably just want "WT.merge_from_branch"18:25
jamat least that is what I use 99% of the time18:25
dashjam: hm!18:25
* dash looks at the docs18:25
jamdash: The complexity in cmd_merge is because you can supply a bundle, or a working tree, or a file within a working tree, or a branch, or ....18:26
dashjam: looks like that's exactly what I need, thanks18:26
dashjam: Right18:26
jambut for most people, they just want to merge a branch18:26
dashyeah, i'm specifically just merging a branch in this case.18:27
chombeeWith a centralised, offline workflow is it possible to use bzr as you would use git? i.e. bzr commit does a local commit, bzr push pushes local commits to a central repo, and bzr pull brings commits from the central repo into a local repo? Is it better to use the different centralised with offline commits workflow from the bzr manual?18:50
beunochombee, you can work exactly like that with bzr18:51
beunoyou just need to branch instead of checkout18:51
chombeeHmm, so you can, cool.18:53
=== mw is now known as mw|food
dashoh, great19:07
dashI can't use merge_from_branch because I need to be able to do the equivalent of "merge --force"19:07
dashguess i'll do it the long way :)19:07
chombeeBy default git makes a crypto hash of each revision, so it can tell me if any file corruption has happened in a repo. Can bzr do that, so I know my content is safe?19:27
lukschombee: bzr does that too, but it's not visible19:28
fullermdIt stores a hash.  That protects you from incompetence, though not from malice.19:28
fullermdFor the latter, there's PGP signing of revs.19:28
chombeeHmm19:28
chombeeSo say some corruption occurred ina repo, would bzr notify me the next time I ran some bzr command on that repo?19:29
chombeefullermd it's disk faults isn't it, rather than incompetence?19:29
fullermdWell, hardware can be incompetent   :)19:29
fullermd('can be'...  ha.  I'm so diplomatic...)19:30
chombee:)19:30
fullermdWell, it certainly wouldn't catch it before the next time it has to grab that particular data for something.19:30
fullermd'check' will preen the whole thing.19:30
chombeeSo if I do bzr check and it's okay then there's no corruption in the repo? Looks that way19:31
* fullermd nods.19:32
fullermd(mod bugs in check of course, but you have to trust something)19:32
chombeeCool, I like it btter than git, it just makes it easier to do the same thing19:32
chombeeThanks19:36
kiorkyjelmer: i ll try it on the evening or tomorrow at least, doctour house time. Ill poke you as soon at it is done19:48
mgedminlaunchpad can currently import (some) svn and cvs repositories into bzr branches19:49
mgedminany chances for importing git repositories?19:49
Peng_bzr-fastimport might be able to import git.19:56
fullermdAIUI, it can.  But fast-import doesn't handle incremental stuff.19:56
fullermdAnd of course you can't get move info from git...19:56
dashcan you from cvs or svn?19:57
fullermdSo, you can convert with it.  But LP does ongoing imports.19:57
Peng_fast-import doesn't support incremental imports? Huh19:57
fullermdI don't think so, no.19:58
fullermd(based on vague recollections of discussions of course; igc would have a much more authoritative answer)19:58
lifelessabentley: what is previewtree capable of?20:35
lifelessabentley: and how efficient is it?20:35
abentleylifeless: Right now, it's capable of being the source of a diff, but it should be able to represent any working tree state.20:36
lifelessabentley: I'm thinking about implementation strategies for tree marks20:37
abentleylifeless: It's not written for efficiency, but I want to find out what parts are bad, and fix those first.20:38
abentleyThe goal so far has been to make it fully conform to the Tree interface and get it under test.20:38
abentleylifeless: Tree marks are the sort of thing I'd like to see it become good at.20:39
lifelessso for marks I need a tree that:20:39
lifeless - when reverted reverts the underlying working tree content, but only for the content the marks selected20:39
lifeless - does not slow commit down at all for the common case (where / is marked 'selected')20:40
lifeless - can 'remove' changes from the working tree where they do not meet the marks the tree is parameterised with20:40
lifelessseparately from that I need to figure out how to manage the marks data20:43
abentleywrt revert: A preview tree is "written" to using its TreeTransform.  So this sounds like something that belongs in the revert code, not a characteristic of a PreviewTree.20:43
abentleyI would expect that commit of a PreviewTree is slower than WorkingTree in the common case.20:44
lifelessabentley: or perhaps previewtree doesn't fit marks? the tree object used when marks are in use probably wants to be a proxy object20:44
lifelessin that it wants to lazily calculate things and return them as asked for: precalculating all the differences could be arbitrarily large20:45
kiorkyjelmer: which branch? because pull gave me no revision update20:45
abentleyA PreviewTree can have arbitrary changes applied to it, so 'removing' particular changes is not a problem.20:45
kiorkyjelmer: i use : http://people.samba.org/bzr/jelmer/bzr-svn/trunk/20:45
jelmerkiorky, the 0.4 branch20:45
abentleylifeless: The way to use "marks" with a PreviewTree is probably to start with the PreviewTree as an unchanged version of the basis tree.20:46
jamPeng_, fullermd: fast-import *does* support incremental conversions, by writing down whatever mapping it has performed so far20:46
kiorkyjelmer: is this safe to use on existing stuff with the version i have ?20:46
jamI don't think it allows you to generate a "partial stream"20:46
kiorkyjelmer: i have pending work ^^20:46
abentleyThen as marks are added, the Transform is manipulated to apply the changes.20:46
jamAnd I wouldn't ever count on an incremental conversion from CVS20:46
jambecause borking history is fairly standard practice there20:46
jelmerkiorky, I would recommend only using released versions for production work20:47
salgadohey, if I have an uncommitted merge, can I generated a bundle out of it?20:47
salgados/generated/generate20:47
abentleysalgado: No.  A bundle contains committed changes by definition.20:47
fullermdHuh.  Learn something new every day...20:48
jamlifeless: any luck with 'freeze' ?20:48
lifelessjam: 2 seconds faster for st on bzr.dev with cold cache20:48
lifeless13 -> 1120:48
lifelessno significant change in hot cache20:48
salgadoabentley, right.  how would I go about turning that into a bundle after I commit it?20:48
kiorkyjelmer: someone told me to take bzr.dev and bzr-svn.trunk to have goof svn integration and not much risks20:48
kiorkyjelmer: lifeless maybe if i remember well20:48
jamlifeless: sounds about right for the time to load the python libs20:48
kiorkyjelmer: but i can afford bugs :), i just want to limit them and not shoot in my feet :)20:49
abentleysalgado: "bzr send"20:49
jelmerkiorky, generally the 0.4 branch works pretty well. It may in rare cases break imports though20:49
lifelessjam: consistently lower system time - about 0.03 seconds less20:49
abentleysalgado: That actually produces a merge directive, which is what people usually mean by "bundle".20:49
jamlifeless: well, 30ms isn't 0, but not a lot to write home about20:50
kiorkyjelmer: OK20:50
lifelessjam: its the cold cache I'm more interested in TBH20:50
kiorkyjelmer: so no backward risks with the bzr.trunk?20:50
kiorkyjelmer: no migration stuff or any other thbings ?20:50
jamlifeless: so instead we should just write a background process that keeps things out of cold cache, right?20:50
jam:)20:50
lifelessjam: thwack20:50
jelmerkiorky, it's definitely more risky than using a release20:50
kiorkyjelmer: i can co, replace and run directly bzr pull in my branches ?20:50
jamlifeless: well, 'bzr service' comes to mind20:51
salgadoabentley, but it still contains the actual code changes that I could apply to a branch, right?20:51
lifelessjam: it doesn't improve the cold cache case20:51
jelmerkiorky, what do you mean with bzr.trunk?20:51
kiorkyjelmer: well i will tarball my stuff, time to test ^^ enought talk20:51
jamlifeless: depends when you are measuring20:51
jamas it keeps everything in mem20:51
lifelessjam: OTOH the frozen bzr is 7.7MB :(20:51
jamif you drop caches after starting it20:51
lifelessjam: power on20:51
kiorkyjelmer: bzr.dev and bzr-svn.trunk20:51
abentleysalgado: Yes, it specifies the particular merge that would apply those changes to a branch, and includes all the necessary revision data in a bundle.20:52
lifelessjam: first-use by a new user20:52
jelmerkiorky, you really don't want bzr-svn.trunk but bzr-svn 0.420:52
lifelessjam: etc20:52
jelmerkiorky, trunk is just more outdated than 0.420:52
kiorkyjelmer: ok, good to know20:52
kiorkyjelmer: its branching20:53
jamlifeless: you just put the service startup in your .login file20:53
jamso it just seems like 2s more boot time20:53
lifelessjam: I hope you are trolling20:53
jamI'm somewhat serious if you are *just* trying to solve the cold boot process20:54
jamit is really only 1 time20:54
jamand there are a lot easier ways to trick it20:54
lifelessits not about tricking though20:54
lifelessits about being genuinely lighter-weight20:54
jelmerkiorky: bzr-svn you mean or that particular branch you were trying to copy?20:55
jamlifeless: well 'time cbzr status' with the service running is <100ms, 'time bzr st' is 220ms with a hot cache.20:56
kiorkyjelmer: im branching and installing the 0.4 you told me about20:56
kiorkyjelmer: http://people.samba.org/bzr/jelmer/bzr-svn/0.420:56
jamI get down to 80ms for a bzr.dev tree20:56
lifelessjam: http://rafb.net/p/taLkYP27.html20:57
lifelessjam: so I'm not against a service per se; but git does not need one.20:57
lifelessa service seems to have more race conditions, and more chance for bugs like skew on package upgrade20:58
salgadoabentley, coolio. works just like I wanted it to. :)20:58
lifelessjam: even with my long list of plugins there is a big difference loading the frozen version20:59
jamlifeless: http://rafb.net/p/MuVvT317.html20:59
jamI don't strictly agree with a service model20:59
jamI'm not very happy with it20:59
jamfor the reasons you describe20:59
jambut it is hard to argue dropping from 400=>100ms, when I can get you to 6ms20:59
lifelessjam: service also won't pickup plugin changes dynamically21:00
jamlifeless: you could make ti21:00
lifelessit will be prone to failure-to-test21:00
jammake it do so21:00
lifelessjam: not _very_ reliably - reload() has serious issues21:00
jamand with inotify sort of thing, it could do so cheaply21:00
jamlifeless: if it was serious, it could respawn itself21:00
lifelessI dug into inotify21:01
lifelessits horrible to work with21:01
jamlifeless: sure, there are about 5 different wrappers, and I know "bos" was complaining about one of the python ones destroying his system when in use21:01
abentleysalgado: I'm glad.21:01
jamso he wrote another21:01
lifelessyou can't listen recursively21:01
lifelessits not the wrapper; its the kernel facility itself21:01
lifelessyou have to listen to everything individually21:02
lifelessanother issue with service is when the user hits ctrl-C it kills the client not the demon21:03
lifelessso it's harder for them to model what is really happening21:03
jamlifeless: anyway, I would love for us to get "lighter", and service as a plugin really does need a lot of overhaul21:03
lifelessand if they login N times resource use will shoot up21:03
lifelessand python with its cavalier memory management really concerns me21:03
jamwhat I would *rather* see is better python support for loading pre-cached information21:04
jamlike "take a snapshot of where these exist, and re-use it on the next invocation"21:04
=== mw|food is now known as mw
jamanyway, I'm certainly interested in where you get to21:06
jamAlso, for 'bzr' being 7MB21:06
jamafter frozen21:06
jamit is 9M in my /usr/lib/python21:06
jamand 24 in my bzr.dev folder21:06
jamI suppose 8.7M if you just count the .pyc files21:07
fullermd% du -sh /usr/local/lib/python2.5/site-packages/bzrlib/21:08
fullermd 25M    /usr/local/lib/python2.5/site-packages/bzrlib/21:08
fullermd(bzrtools is under there too)21:08
jambzrtools is pretty small21:08
jamI think mine is smaller because it uses symlinks to pycentral21:08
fullermdJust under a meg.21:08
lifelessits about 30ms functional difference21:08
lifelessplugins cost me about 150ms to load21:09
fullermdbzrlib in my bzr.dev is ~12 meg.21:09
fullermdThe difference is the .pyo's I presume.21:09
=== sdboyer|coding is now known as sdboyer
lifelesswell21:09
lifelessUbuntu/Debian don't create .pyo files.21:10
fullermdI'm not sure they serve any purpose.  The time or two that I tried, I couldn't measure a perf difference...21:10
jamInterestingly, I think if you don't create them at install time, then future "python -O" runs would actually be *slower*21:10
jamfullermd: all it really does is remove asserts21:10
fullermd(not that I tried particularly hard, but...)21:10
lifelessjam: thats correct21:10
lifelessjam: I spent some time last week pointing this out :)21:11
jamlifeless: like, dramatically, because it is on-the-fly recompiling all the .py21:11
lifelessjam: yes21:11
lifelessjam: and there are python upstreams that recommend the use of -O21:11
jamfullermd: actually, I would expect "python -OO" to be quite a bit smaller, but we don't support that mode21:12
jamas we have a *lot* of doc-strings that would then be stripped21:12
jam(but then none of your commands would have help text, either)21:12
fullermdHeck, nobody ever reads the help, right?21:13
lifelesssometimes I think that21:13
jamfullermd: sure, but how can you tell them to RTFM if you stripped it from the installer21:13
jamit at least needs to be there21:13
lifelessjam: how well do you know the patience code?21:13
jamlifeless: fairly well21:13
lifelessI'm looking at a C groupcompressor21:13
lifelesswhat I need is two things - a matching blocks list that is _not_ constrained to be strictly increasing, and21:14
lifelessa left-side lines-hash that is persistent21:14
lifelessI looked at the patience diff C code, and its seems possible to do this, but I'm not entirely sure it will fit well21:15
jamlifeless: I think it would fit ok21:16
jamadd_matching_line will only work on the existing block or start a new one21:16
kiorkyjelmer: seems to work :)21:16
jambut I think that is fine for what you need21:16
jelmerkiorky, cool :-)21:16
lifelessjam: have a look at rev 14 of lp:~lifeless/+junk/bzr-groupcompress21:17
kiorkyjelmer: you can mark your patch working for my test case, i hope you can merge it :)21:17
jamlifeless: as you are only going to be generating blocks at a time, right?21:17
jelmerkiorky, it's already merged21:17
jelmer(0.4 is the main branch)21:17
lifelessI've cleaned up the compression code to be slower-but-clearer in preparation for a C accelerator21:17
kiorkyjelmer: ha, very cool so21:17
lifelessjam: not sure what you mean by blocks-at-a-time21:18
lifelessjam: its basically, start with "" as output, then for each input text21:18
jamlifeless: you will match a range from A=>B, and then might come back later to mark < A, but you won't try to *combine* that with the existing block21:18
lifelessmatch(output, input); for section of input: if new: emit 'i', if reusable: emit 'c' unless 'i' is cheaper. hash(emitted) and extend output by emitted21:20
lifelessoh, with the caveat that we *don't* hash output lines that we know are not new21:20
jamlifeless: so do you compress within a single text?21:24
lifelessno21:24
jamlifeless: it seems like you could, by incrementally adding the lines, but I don't know if you would gain a lot21:27
mwhudsonmorning21:27
jammwhudson: morning21:27
lifelessjam: it would make it into a plain dictionary compressor; increase the lookup size a lot, and prevent the one-parse extraction I think21:28
lifelesshi mwhudson21:28
mwhudson(review my branch)21:28
mwhudson(please)21:28
jammwhudson: which one would that be?21:28
mwhudsonjam: http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C48855B28.3070505@canonical.com%3E21:29
jammwhudson: well, the instant review is bb:resubmit21:29
jamPending some time to actually fully review :)21:29
mwhudsonjam: heh21:29
mwhudsonit's the last fix we (know we) need in bzr to get stacking working on launchpad21:30
jammwhudson: well, a quick statement is that you should be raising "TestNotApplicable" rather than just returning21:31
jamanyone have an idea how you make a window transparent in compiz? I just did it by accident and  Iwant it opaque again21:31
mwhudsonjam: just returning is what the other tests in the file do, want me to change them too?21:31
mwhudsonjam: ctrl-mousewheel, i think21:31
mwhudsoncertainly <some modifier>-mousewheel21:32
jamwell, ctr+mousewheel in FF changes the font size21:32
jambut alt+wheel did it21:32
jamcompiz and my trackpad don't get along very well21:32
mwhudsonthat sounds familiar21:33
jamThe default to scroll to another window when you wheel on an edge21:33
jamwas really bad21:33
jambecause mousing to the edge of the trackpad21:33
jamwould give a couple scroll clicks21:33
* fullermd takes pleasure in avoiding both compiz and trackpads...21:33
jamI'm having a hard time deciding if this is a troll or genuine: https://answers.launchpad.net/bzr/+question/4005921:34
beunojam, I'm not answering anymore, that's for sure21:34
beunoOdd_Bloke did go to great lengths to answer21:34
jammwhudson: I would do consistency first, but I thought that TestNotApplicable was the "correct" way21:35
beunogive 'em a URL, if they don't go away, tag him as a troll21:35
jamI haven't dug deeply into the stacked stuff, but what you did looks right IMO21:35
lifelessjam: what is the value of a line in a in patience sort?21:35
mwhudsonjam: looks like /most/ of the tests raise TestNotApplicable21:35
mwhudsonjam: so i'll fix the others21:35
lifelessjam: is it the index of the line? if so how do you choose /which/ index to use?21:35
jamlifeless: are you talking the C or Py code?21:36
jamthey differ, IIRC21:36
lifelessC21:36
lifelesswell, to get the same result they can't really? :)21:36
jamat least at a minimum C maintains the hashes21:36
jamso in the C code, a 'line' is effectively a chain of matching lines21:37
jamand "matching_line" the structure is the indexes21:37
lifelesshmmm21:42
lifelessI need to persist some of these structures21:43
lifelessblah!21:43
jam?21:43
lifelessas output is immutable, recalculating the hashes is O(N^2) times the cost of setting up the hash21:43
lifelessno O needed there - there is a N^2 overhead in not reusing the hash21:44
lifelessso I need to figure out the C api for exposing these things as python objects that can be reused21:44
jammwhudson: So, it looks good to *me*, but I would rather someone like poolie or lifeless who actually worked more closely on the stacking code to approve it21:45
mwhudsonjam: ok, thanks21:45
jamlifeless: I can work out some quick pyrex magic21:45
jamit isn't hard21:45
lifelessjam: in a separate file you mean?21:46
lifelessI can do that too ;)21:46
jamlifeless: no, I mean I've done pyrex to do the wrapping, and I can check its output21:46
lifelessjam: _patiencediff_c is a C source, not a pyrex source. I am confused about what you mean.21:47
jamlifeless: in my walkdirs code, I export a C structure => PyObject21:48
jamusing Pyrex to generate the right C code to do so21:48
jamwe can crib fromthat21:48
jamI just have to update my bzr.dev first21:49
scodeI have a repos with very little activity that i've been pushing to with bzr+ssh. Suddenly I notice that when trying to freshly branch, I get: bzr: ERROR: Error in data for index <bzrlib.index.GraphIndex object at 0x804fcd350>.21:49
scodeAny particular common cause for this, or have I encountered a bug?21:49
lifelessjam: I get that; I thought your walkdirs was Pyrex based though? So pyrex is taking care of the headaches/updates/etc21:49
jamlifeless: right21:49
jamBut it actually turns out to be relatively simple21:49
jam(the part I like most about pyrex is the exception handling goodness)21:50
scodeImportant "detail": Oh right, branching locally works. This only happens when branch:ing over http.21:50
jamlike getting a stack-trace into the pyrex code21:50
lifelessscode: sounds like a bug, or some interfering proxy21:50
lifelessscode: please do file  abug; the full backtrace from ~/.bzr.log is a good start21:50
scodelifeless: No proxie, and I don't see 404:s or similar in the web server log excep tthsoe that I believe are expected21:50
scodelifeless: Ok. Will do, either tonight or tomorrow.21:51
lifelessscode: if you can give us the url to the branch that will help debugging21:51
scodelifeless: http://bzr.scode.org/repo/pkgmanager-portssupport (I'll include in bug report)21:51
jamlifeless: http://rafb.net/p/e3rzPV87.html21:51
lifelessscode: no proxy at all? are you not going to the interwebs ? :) [ISP's often have 'transparent' proxies]21:51
scodelifeless: Firstly, my ISP is sane :) Secondly, it happens with a local http branch from the same host.21:52
lifelessscode: ok21:52
scodelifeless: And I definitely don't have transparent proxying on my machine.:)21:52
jam{"name", T_INT, offsetof(struct, member), READONLY, 0}21:52
lifelessscode: please throw up a bug then and we'll take it from there21:52
jamlifeless: ^- not too hard to repeat that a few times21:52
lifelessjam: thats not the bit that I was going to have to look up21:52
scodelifeless: Thanks. Will do - like I said either in a bit, or tomorrow. Thanks for confirming it seems unexpected.21:52
lifelessjam: its the massive class definition and __init__ etc21:52
jamlifeless: sure21:53
jamthough you can also do that in a separate pyrex definition21:53
jamlifeless: I understand your concern, though, and I do like pyrex for that stuff21:54
lifelesshow do you feel about us making _patiencedif_c a pyx file?21:57
lifelessseems to me its not exactly pure C and usable from C today21:58
lifelessmwhudson: bzrdir's aren't stacked21:59
lifelessmwhudson: branches are21:59
lifelessmwhudson: your docstring confuses me21:59
mwhudsonCreate a branch that is stacked on some other branch and return its bzrdir.22:00
mwhudson?22:00
lifelessmwhudson: the change to TestNotApplicable is wrong in this case22:00
lifeless+        """Create a bzrdir that is stacked on some other bzrdir.22:00
lifelesswell, I say wrong; I guess I mean 'I did not want the stacking tests to produce lots of irrelevant output'22:01
mwhudsonlifeless: ok, so test_stacking is inconsistent about this in bzr.dev22:02
lifelessI've approved22:04
lifelessbut the docstring really needs more love22:05
lifeless(its test only code, but still)22:05
mwhudsonlifeless: did you seem my suggestion for it above?22:05
mwhudsonlifeless: thanks though22:05
lifelessmwhudson: that works better yes22:06
mwhudsongrr, too long though22:07
lifeless"""Gimme the bzr dir of a newly stacked branch, bitch."""22:08
mwhudsoni guess "Create a stacked branch and return its bzrdir." gets the point across22:09
* mwhudson gets ready to send yet another bundle22:10
lifelessmwhudson: JFDI at this point22:10
mwhudsonlifeless: still needs another approve22:11
lifelessmwhudson: jam gave one22:11
lifelessjam: did you see my question about making the patiencediff file pyrex?22:11
mwhudsonlifeless: oh, then can someone grab http://people.ubuntu.com/~mwh/repos/bzr/bzrdir.clone-pass-on-stacking-base-bug-250418 (it has the better docstring in now) and send it to PQM?22:12
jelmerlifeless, is it correct that "bzr branch --stacked" doesn't attempt to create a stacked format by default even if the repo it's being created in supports stacking?22:12
lifelessjelmer: known defect22:13
lifelessjelmer: poolie is about to post a branch to address it22:13
jelmerlifeless, ok, I'll shut up then :-) Thanks22:13
lifelessjelmer: oh hmm22:13
lifelessjelmer: I misread22:13
lifelessjelmer: do you mean 'the source branch and repo are stackable and the target repo exists and is stackable', so why doesn't --stacked work ?22:14
lifelessor22:14
lifelessjelmer: do you mean 'the source branch and repo are not stackable but the target repo exists and is stackable', so why doesn't --stacked work ?22:14
lifelessthe latter is what poolie is addressing22:14
jelmerthe source branch and repo are indeed not stackable (they're svn)22:14
lifelessso yes, this is what poolie is addressing22:14
jelmerawesome22:15
lifelesshis fix will need *your* review to say how bzr-svn will interact22:15
schierbeckhi guys22:18
schierbeckbug 23886022:18
ubottuLaunchpad bug 238860 in bzr-gtk "bzr visualise does not allow columns to be resized enough " [High,Confirmed] https://launchpad.net/bugs/23886022:18
schierbecksorry, just testing something22:18
jelmerhey Daniel22:20
jelmerlifeless, no problemo22:22
jamlifeless: I would certainly consider it22:27
jamsorry about the delay, had to pick up the baby22:27
lifelessjam: no worries22:27
jamI was thinking for group compress that you might be better off starting top-down into pyrex22:28
fullermdMmph.  Sucks when branches get big enough that check isn't practical anymore...22:28
jamusing _patience_diff.c as a crib sheet22:28
lifelessbeautiful: http://cgwalters.livejournal.com/17760.html22:28
lifelessI _love_ the gcc wizard22:28
lifelessjam: hmmm, I don't really want to rewrite $foo.22:30
lifelessjam: I'm right now trying to decide if the patience sort we have is even correct :(22:30
jamlifeless: well, it passes the test suite, though that certainly doesn't define "correctness"22:34
jamlifeless: At least I've worked out how we know which line to match22:40
lifelessjam: :P22:40
jamwhich is that the hash-table buckets contain the head pointer and a "current" pointer22:40
jamand that the equiv is only for identical strings22:40
jamif you get a collision it walks to the next value (j = j + 1 & hsize)22:41
jamlifeless: which sounds like it might mess up your groupcompress, as it doesn't want to match earlier than a line it has already matched.22:41
lifelessyah22:45
lifelessso AFAICT the value used for the patience sort is the line index in A22:45
lifelessits the loop on line 306 that selects the index to use22:46
lifelessand it skips lines that are duplicates22:46
lifelessso patiencediff is looking more and more like 'really geared for humans' to me22:46
jamlifeless: Yeah, the objects that are being *sorted* is the index in A which matches the line in B22:50
lifelessjam: yup22:50
jamand it is looking for the longest "interleaved" monotonically increasing sequence22:51
lifelessinterleaved ?22:51
jamjust that there may be gaps22:51
jamwhere some lines matched earlier that we skip over22:51
jamabcd bcad22:51
jamwill ignore the a matching to location 022:51
jamand give "bc_d" as the longest sequence22:51
lifelesswhich I presume we then split to bc, d22:52
lifeless?22:52
jamlifeless: correct22:52
jamthat is the "add_matching_line" code22:52
jamwhich says "if this is the next in the sequence, add it to the block"22:52
jam"else, start a new block"22:52
jamlifeless: for "groupcompress" I don't quite understand "line_locations" has 2 sets with (N) and (N+1)22:55
lifelessseems to me that a variant on recurse_matches should be doable22:56
lifelessjam: its purely an optimisation22:56
lifelessif you remember original sequence matcher, it does a loop lo:hi, trying each of the possible starting points22:56
jamlifeless: so are you trying to find N possible matches as you move forward22:57
jamand then just return whichever is the longest?22:57
lifelessthis has quite bad locality of reference, so I turned the loop into a set operation22:57
lifelessstarting will all the common points of a given line, and then advancing (transforming set(positions) into set(pos + 1 for pos in positions) each time)22:57
jamlifeless: and doing the intersection so you only include matching lines22:58
lifelessI found that precalculating the first step of this acts as a cache that saves enough steps (the first intersections removes a lot)22:58
lifelesssomething like 3-4% performance difference, not radical but worth keeping until there is a _real fast_ version and then it can go to be a cleanest-possible reference version22:59
jamlifeless: so if you were removing that22:59
jamline 174 would change from:23:00
jamsorry, looking at the wrong spot23:00
jamyou would change the line 185 to23:00
jamcopy_ends = next23:00
jam=>23:00
lifelesscopy_ends = next -> copy_ends = set(loc + 1 for loc in locations)23:00
jamcopy_ends = set([l+1 for l in locations])23:00
jamand that is all the second set is giving you right now23:01
lifelessright23:01
jamlifeless: so, "unique_lcs" is exposed to python23:01
jamif you wanted to play with it as a starting point23:02
jamthough it doesn't save the cached hash lookups23:02
jamso it isn't strictly a win23:02
lifelessyeah23:02
lifelesshowever 10 times faster might be enough to compensate23:02
lifelessthough gc is hella-faster than python patiencediff23:02
jamgc?23:05
lifelessgroupcompress23:05
jamah23:05
jamsure23:05
lifelessbad-names-for-the-win23:05
jampython patiencediff doesn't cache any hashes either23:05
jamlifeless: so what would you persist, the "loaded_lines" for the current text, which would then be updated as you output more lines?23:07
jamand presumably the hashtable itself23:07
lifelessyah23:07
lifelessself.lines in the GroupCompress object23:08
lifelesswith any transformations needed to actually operate on it23:08
lifelessthough the more I look at this23:08
jamso for self.lines, it is the output lines?23:08
jamIncluding the control codes?23:08
lifelessand self.line_locations23:08
lifelessyes23:08
lifelessthough we don't include control codes in self.line_locations23:08
jamlifeless: and something about lines that would have been copies but Insert was shorter?23:10
jamlifeless: and you didn't finish you "more I look at this" statement23:10
jamso, you are looking for an "absolute mininum" diff between any possible matching block, right? You don't care if the same block is referenced multiple times23:11
jamlifeless: I would say the hashtable code with exact equivalences could be easily ported over, the rest doesn't seem like a very good match23:12
jamhonestly, the "patience" portion of the code is not its speed bonus23:13
jamtracking the stacks is not particularly fast23:13
jamand doesn't give you what you want23:13
jamwhich is the longest possible match for this chunk23:13
jamlifeless: Also, as a bit of a torture test for this, imagine a text made up of all the same line...23:17
jam['a\n']*1000023:17
jamlifeless: are you still there?23:22
lifelessjam: yes, sorry23:33
jamnp23:33
jamwe're all allowed to go AFK once in a while23:33
lifelessjam: we want a minimal construction recipe for B23:34
lifelessjam: we reference the basis by bytes, and include new content by a line count23:38
lifelessjam: so you think its the hashtable stuff that makes patience fast?23:38
jamlifeless: yeah, I do23:38
=== herb__ is now known as herb
jamI'm poking around with it now23:39
lifelessIt seems to me the patience stuff is a large part of the speed bonus as it reduces the order23:39
lifelessmwhudson: your eagle is landed23:39
mwhudsonlifeless: i saw, thanks!23:39
mwhudsonnow we just need to fix launchpad...23:40
thumperlifeless: thanks23:40
thumpermwhudson: was that the 3rd of 3?23:40
mwhudsonthumper: yup23:40
lifelesswe really need to include <content-to-fulltext> in fetch always I think23:40
lifelessit will avoid so many future problems23:40
awmcclainWhat's the easiest way, given an svn repo i have no control over, to create a local bzr repo from a revision?23:40
mwhudsonawmcclain: from a revision?23:41
lifelessawmcclain: bzr log svn:// | less - find the revno you want; bzr branch -r revno svn://... local23:41
awmcclainmwhudson: Well, say, from HEAD. I say "from a revision" since I don't have... ah!23:41
awmcclainlifeless: Thank you.23:41
awmcclainlifeless: Is that a feature since 1.4?23:42
awmcclainhrm23:45
awmcclainWhat's the apt command to update a single package?23:45
awmcclainopen23:45
awmcclainooepn23:45
awmcclainung23:45
awmcclainoops23:45
awmcclainwrong channel. just ignore me.23:45
jelmerawmcclain: Actually, "bzr branch -rsvn:<REVNO> svn://foo" should work too23:52
awmcclainjelmer: What if I'm just looking for HEAD, and the svn branch is hosted over http?23:53
jelmerawmcclain, don't specify a revno, bzr branch defaults to HEAD23:53
awmcclainjelmer: So, in 1.4rc1 it thinking I'm looking at a bzr branch (bzr: ERROR: Not a branch: "http://code.sixapart.com/svn/perlbal/trunk/"). Should I upgrade to 1.6?23:54
jelmerawmcclain, try "svn+http://code...."23:54
awmcclainjelmer: Great.23:54
awmcclain"unsupported protocol"23:55
jelmerin newer versions of bzr-svn, the svn+ bit should no longer be necessary23:55
jelmerawmcclain, you probably don't have bzr-svn installed or your svn was built without http support23:55
awmcclainjelmer: Checking. Perfect.23:55
jelmerawmcclain: Is bzr-svn listed when you run "bzr plugins" ?23:57
pooliehi23:58
awmcclainjelmer: That's the problem. Oh! Yes. I remember, it uninstalled when I upgraded to 1.423:58
mwhudsonhi poolie23:58
awmcclainjelmer: Does the 1.6 server have commit hooks yet?23:58
jelmerawmcclain, not afaik23:58
awmcclainjelmer: Ok.23:58

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