/srv/irclogs.ubuntu.com/2007/09/04/#bzr.txt

Odd_BlokeIs there a way to convert bzr -> SVN?12:30
Odd_BlokeIt only need be a one-off conversion, I just want to run some metrics.12:31
lifelessbzr push12:31
lifelessjelmer: ^12:31
lifelessOdd_Bloke: or perhaps bzr svnserve12:32
=== keir [n=keir@206-248-160-33.dsl.teksavvy.com] has joined #bzr
keirwhen testing out 'bzr send', and mailing to myself, why is the subject  '[MERGE]  (Nam Nguyen) Pre-commit hook' ? i didn't specify that subject, or the name 'nam nguyen' anywhere12:40
keir(this is in a clean branch of bzr.dev)12:40
lifelesskeir: do 'bzr log -r -1'12:40
keirhmm, ok12:41
jelmerOdd_Bloke: bzr svn-push from bzr-svn 0.4 should be able to do that12:42
jelmerlifeless: bzr svnserve is pretty much nonexistant12:42
lifelessjelmer: ok12:42
keirok. so it uses the last commit message as the subject?12:44
keiri'm trying to figure out how to get bzr send to work nicely with gmail, and then write a wiki page about it12:45
keir(gmail has smtp)12:45
lifelesskeir: normally you have two branches12:45
lifelessyour branch12:45
lifelessand the target12:45
lifelesstesting with your branch == target is unusual12:45
Odd_Blokejelmer: "bzr: ERROR: Invalid http response for http://svn.uwcs.co.uk/repos/gryle/.bzr/branch-format: Unable to handle http code 401: Authorization Required12:46
jelmerOdd_Bloke: does the repository require authentication?12:47
keirlifeless, as i understand it bzr send is intended for the following use case:12:47
Odd_Blokejelmer: Yeah, I was wondering if I need to put that in a config file somewhere?12:47
keir1) bzr branch 2) hack hack 3) commit 4) repeat 2&3 5) bzr send --mail-to=somelist@someproj.org12:47
lifelesskeir: thats right12:48
jelmerOdd_Bloke: bzr-svn uses the credentials stored in ~/.subversion/auth/12:48
jelmerOdd_Bloke: the easiest way is to force svn to store those credentials first before using bzr-svn12:48
keirlifeless, and by default it uses the parent branch as the target12:49
lifelesskeir: send --help12:50
lifeless:)12:50
lifelessI'm not familiar with send really12:50
=== igc [n=igc@ppp121-45-197-71.lns1.bne1.internode.on.net] has joined #bzr
igcmorning12:52
=== troy_s [n=aphorism@d206-116-6-170.bchsia.telus.net] has joined #bzr
=== jml [n=jml@ppp121-44-221-92.lns1.hba1.internode.on.net] has joined #bzr
=== jml_ [n=jml@ppp121-44-221-92.lns1.hba1.internode.on.net] has joined #bzr
=== jml_ is now known as jml
=== sverrej [n=sverrej@tul-1x-dhcp013.studby.uio.no] has joined #bzr
Odd_Blokejelmer: I've finally sorted out the auth'ing problems, but I'm now being told the branches have diverged and I need to merge them.  Running 'bzr merge <SVN repo location>' gives me an error about incompatible repositories.  What should I be doing now?01:09
jelmerOdd_Bloke: the location you're trying to push to, does that already exist?01:12
Odd_Blokejelmer: Yeah.01:14
=== poolie [n=mbp@ppp112-44.static.internode.on.net] has joined #bzr
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
pooliehi all01:15
igcmorning poolie01:16
pooliehi ian01:16
jelmerOdd_Bloke: that doesn't work yet :-( pushing to /trunk if it doesn't exist yet should work01:16
lifelesswhats with the NEWS indenting changes01:17
Odd_Blokejelmer: Ah OK.01:17
Odd_BlokeI'll do that then. :D01:17
lifelessI don't recall seeing anything on-list01:17
lifelessand all my branches are conflicting heinously01:17
poolielifeless, different sections were inconsistent, it looks bad in rest01:18
pooliei am sorry for all the conflicts01:18
keiri see there is support for thunderbird in mail_client.py; how do i tell bzr to use it?01:18
lifelessI think you should announce the right indent on list01:18
poolieprobably should have done it during freeze01:18
lifelesseveryone who has outstanding branches will need to review their new sections01:18
igclifeless: I mentioned it yesterday on IRC - it's a pain :-(01:19
lifelessigc: btw pqm submit standard is (submitter) MESSAGE (authors)   (as far as I know)01:20
Odd_Blokejelmer: I got http://pastebin.com/m47fed230 when pushing to the uncreated /trunk.01:20
Odd_Blokejelmer: Both with and without --overwrite.01:20
lifelessigc: did you profile the pre commit hook changes on big trees or do I need to ?01:20
poolieit would be nice to patch pqm to use the signer or email sender01:20
poolieor indeed to just read a merge directive...01:21
jelmerOdd_Bloke: please use the svn-push command01:21
=== mlh_ [n=mlh@c211-30-211-232.belrs1.nsw.optusnet.com.au] has joined #bzr
igclifeless: I'm happy to do it01:21
keirnm!01:21
lifelesspoolie: indeed, patches considered gratefully01:21
lifeless:)01:21
jelmerOdd_Bloke: you're hitting bug 12794501:21
ubotuLaunchpad bug 127945 in bzr-svn "Integrate creating new branch functionality into standard push" [Low,Triaged]  https://launchpad.net/bugs/12794501:21
Odd_Blokejelmer: OK, I've tried with svn-push and hit http://pastebin.com/m4a239e0d01:23
Odd_Blokejelmer: Thanks for helping me with this, by the way. :)01:23
jelmerargh01:23
igclifeless: checking bzr log --short on bzr.dev shows both forms in equal amounts :-)01:23
jelmerOdd_Bloke: please change _is_http_transport() in transport.py to return False01:23
jelmerOdd_Bloke: you've hit pretty much all known bugs in bzr-svn :-/01:23
lifelessigc: we should choose one on list01:24
igcI'm happy either way - but we should all the same as you suggest01:24
poolielifeless, did you see my PM?01:25
Odd_Blokejelmer: A progress bar! \o/01:26
=== mlh [n=mlh@c211-30-211-232.belrs1.nsw.optusnet.com.au] has joined #bzr
lifelesspoolie: ah yes01:29
lifelessjelmer: I'm not sure where the bug is01:31
lifelessigc: I don't feel confident enough in your delta based code for recommend it for 0.9101:39
lifelessnot that I think its actually wrong, just its changing something rather core01:39
igclifeless: do you mean delta-based code or the iter-changes change? The delta-based code is certainly not going into to 0.9101:40
lifelessthe iter changes change01:41
igcfair enough - it's a risky area ....01:41
igcwhich is why I asked the Q re benefit/risk in the submission01:41
igclifeless: I felt it was useful to get out there in any case ...01:43
igcit's a clean patch you can apply to your stuff while benchmarking initial commit for example01:43
igcit's also a "better" routine to move to your iterator from than the existing one I suspect01:44
lifeless48% of time is in record_revision at the moment01:47
lifelessthata 1m3001:47
lifelesswe know that the whole commit can be done in 1m01:48
lifelessso there should be about 50% fat there01:48
jelmerlifeless: ok, version info is fixed now. if you find the bug, please let me know so we can close it + mention the bug # in NEWS01:49
lifeless:)01:49
lifelessdanke01:49
keirlifeless, you mentioned in a list email sometime ago that you wanted to write a high-speed index layer02:14
keirlifeless, is that done yet?02:14
keirlifeless, and if not, where do i start?02:14
lifelesshi02:15
lifelessits not done yet02:15
lifelessthe index layer thats needed is currently implemented as bzrlib.index02:16
keirbasically, i'd love to help, but i'm not familiar with the innards of bzr02:16
lifelessI have a branch up at http://people.ubuntu.com/~robertc/baz2.0/index02:16
lifelessif you look inside bzrlib/index.py02:16
lifelessand bzrlib/tests/test_index.py02:16
keirhowever i love writing high speed c code :)02:16
=== mw is now known as mw|out
lifelessyou can see the current layer02:16
keirwhich ops would this speed up?02:17
lifelessthe python code is performing quite well02:17
lifelesswhat needs changing is the disk format primarily02:17
lifelessafter that is made efficient doing a C version becomes a discussion point02:17
keirok02:17
keiri buy that02:17
lifelessthe current disk format is bisectable but I haven't written bisection code yet02:17
lifelesshowever it could be better02:17
keirso i should focus on 1) understanding current format02:18
keir2) make new format02:18
lifelesse.g. a 4K node size b*tree would give something like 20-way fan out compared to 2-way for bisection02:18
lifelessI'd suggest02:18
lifeless1) understand the index API02:18
lifeless2) discuss with me on the list your ideas for a new format02:18
keirok02:19
lifelessI'll probably remember/realise constraints that are not documented that will impact your design02:19
lifeless3) go do it :)02:19
keirwhat i'd like to do is make a very compact format  which needs to be rebuilt occasionally02:19
lifelessthere is no need to keep the current format code - you can replace it in-place02:19
lifeless(its documented as being unstable)02:19
keirwe did some super cool hacking on our project (astrometry.net) to make 1gb trees which have to pointers and other coolness. they can be mmaped directly from disk!02:19
lifelessok this suggests a couple of immediate things to highlight02:20
lifelessthe index layer has write-once indices02:20
keir*have no pointetrs*02:20
keircool02:20
lifelesseach pack transaction adds a new pack, and new indices for that one pack02:20
lifelesswe don't modify existing files because that is problematic - permissions, and appending and data integrity02:21
keirok02:21
lifelesswe can't rely on mmap because indices may be on sftp/ftp/http servers02:21
keirof course, but if it's local, then you can do that.02:21
lifelessindices can be big - mozilla's text index is 200MB02:21
keiris there a 'bzr for computer scientists' link somewhere?02:22
lifelesswell mmap has portability issues. So mmap might be an optimisation, but we need to avoid full-index access regardless because of the size indices grow too02:22
keirof course; mmap'ing has the very desirable property that only the necessary parts are read02:22
lifelessdoc/developers/repository.txt has some notes about indexing, and the comments and docstrings and source text have more02:23
keiryour OS handles smart caching and even sharing previously read pages between processes02:23
lifelessexcept that read errors show up as segfaults02:23
lifelesswhich can make diagnosis rather hard.02:23
keirtrue02:23
keirwell, first a new disk format then speeding it up02:23
lifelessI'm not saying 'dont use mmap at all', I'm saying that mmap would be a 4), like a C version.02:23
keir:)02:24
lifelesssomething that we should not design-in, but its not harmful if its possible for mmap to be used in future.02:24
keirthe other thing i've come to appreciate, that makes me feel sooo 1980, is fixed-width file formats like FITS.02:25
PengHuh. I tried to branch baz2.0/index with 0.90, and it errored out about not supporting the format (duh), and then I tried with the pack branch, and it branched 0 revisions. I had to rm -rf the index dir and try again.02:25
=== Peng wanders off.
lifelessPeng: it waspushing02:25
keiranyway, i'll think about it02:25
lifelessPeng: try now02:25
lifelesskeir: yah, we have variale length keys02:25
lifelesskeir: oh, and we don't have a seek() interface to files, only readv02:26
Penglifeless: Oh.02:26
Penglifeless: Okies.02:26
Penglifeless: yeah, it did work when I tried it again.02:26
keirlifeless, this is because of transports?02:26
lifelesskeir: also forward-only IO is faster than random access, and a single readv() is much faster than 10 readv() covering the same data due to reduced roundtrips02:26
lifelesskeir: its because of the internet:)02:26
keirhow do pack-based repos fit into this?02:28
lifelesspack based repos are the only user of the index layer02:28
keirwould a superfast index speed much up? or would it be optimizing 10%?02:29
lifelessoh02:29
lifelesswell depends on the case02:29
lifeless'bzr cat http://mozila.org/bzr/trunk/ChangeLog' (as a hypothetical)02:30
lifelessshould go from downloading > 200MB of index data02:30
lifelessto downloading (say) 64K02:30
keirheh, ok02:30
lifelessthere are also common query patterns to consider02:30
lifelessthese indices have graphs embedded in them02:30
lifelessAt the moment graph walking is done by repeated queries to the index02:31
keirok02:31
keirwhy are the graph keys variable-length?02:31
lifelessprobably the index wants to cache data it has accessed in some manner02:31
lifelessthe keys are tuples with a fixed number of byte-strings; but each byte-string is variable length02:32
lifelessrevision ids are variable length02:32
lifelessfile ids likewise02:32
keirok.02:32
keiri have to run now but i'll be back02:32
lifelessok02:32
lifelessanyhow graph walking is kindof pathological02:32
lifelessmany queries in a row going from parent to child each time02:33
lifelessonly a topological sort can give locality of reference on such things02:33
lifelessand we also have the combining of separate index files to accommodate02:34
=== orospakr [n=orospakr@CPE001a70d1de84-CM0019474a8676.cpe.net.cable.rogers.com] has joined #bzr
=== michelp [n=michelp@69-30-72-119.dq1sf.easystreet.com] has joined #bzr
PengWoah. One 56 MB pack and one 55 MB one. Not super disk-efficient.03:03
=== poolie_ [n=mbp@ppp112-44.static.internode.on.net] has joined #bzr
=== jeremyb_ is now known as jeremyb
lifelessPeng: you are using an old pack branch I bet04:06
lifelessPeng: that was fixed way back04:06
=== ionstorm [n=ion@70-58-119-250.phnx.qwest.net] has joined #bzr
=== jdong [n=jdong@ubuntu/member/jdong] has joined #bzr
=== Verterok [n=Verterok@184-220-114-200.fibertel.com.ar] has joined #bzr
=== AfC [n=andrew@office.syd.operationaldynamics.com] has joined #bzr
=== orospakr [n=orospakr@CPE001a70d1de84-CM0019474a8676.cpe.net.cable.rogers.com] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== jml [n=jml@ppp108-61.static.internode.on.net] has joined #bzr
lifelessspiv: when you so 'selftest Remote' do you see unlock errors?05:02
keiri sent a merge message to the list, but it hasn't shown up05:10
keirmight it be caught in moderator limbo? i did subscribe.05:10
keirfrom mierle@gmail.com05:10
spivlifeless: I'll check05:11
spivlifeless: but I didn't last night.05:11
lifelesskeir: I haven't seen one05:11
lifeless[5484/8093 in 432s, 296 skipped, 4 missing features]  branch_implementations.test_locking.TestBranchLocking.test_unlock_after_lock_write_with_token(RemoteBranchFormat)                                             /05:12
lifelesshome/robertc/source/baz/commit/bzrlib/lockable_files.py:110: UserWarning: file group LockableFiles(<bzrlib.transport.remote.RemoteTCPTransport url=bzr://127.0.0.1:52245/b/.bzr/repository/>) was not explicitly unlocked05:12
lifeless  warn("file group %r was not explicitly unlocked" % self)05:12
spivlifeless: it passes for me.  I see unlock warnings though.05:12
lifelesscould you fix please :)05:12
spivRight.  Those have been there for ages.05:12
lifelessI blame you with reason05:12
lifelessbut perhaps not accuracy05:12
spivI took a quick look a few days ago, actually, but it's messy.05:13
spivI think it may require untangling some of the mess in Remote{Repository,Branch}._ensure_real05:13
lifelesssurely not05:13
lifelesssurely its just a bug that something is wrong in nlock() ?05:14
=== vaidhy [n=chatzill@61.11.88.65] has joined #bzr
spivThat test does:05:15
spiv            # We only want to test the relocking abilities of branch, so use the05:15
spiv            # existing repository object which is already locked.05:15
spiv            new_branch.repository = branch.repository05:15
spiv            new_branch.lock_write(token=token)05:15
spiv            new_branch.unlock()05:15
vaidhyI am trying to push my changes in bzr using webdav and it fails everytime.. Has anyone used webdav to push successfully?05:15
spivwhich seems to cause confusion when branch.unlock happens.05:15
spivBecause the repository's lock state has been twiddled in some way.05:16
lifelessvaidhy: I don't know; perhaps you could mail the list or file a bug on the webdav plugin ?05:16
vaidhythat is my next step.. I was hoping to catch vila so that I can ask him :)05:16
lifelesshes in franch05:17
lifelessso this is not a good time for catching him05:17
vaidhyok.. let me email the list..05:17
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
poolie_lifeless, re special casing initial commit05:26
poolie_i'm kind of sympathetic05:26
lifelessyour _ is showing05:26
poolie_i know05:26
poolie_irc sucks05:26
poolie_or maybe i'm a member variable05:26
poolie_anyhow, it does seem a bit arbitrary05:26
lifelessyup05:27
poolie_maybe we should just say 'commit is faster if you do -q'05:27
lifelessI think thats fine too05:27
poolie_and ask people to do that for bulk imports or benchmarking05:27
lifelessI'd like us to not change the default verbosity level05:27
poolie_ok05:27
lifelessI'm happy with special casing initial commit05:27
lifelessbecause though it is arbitrary, its the least useful time for commit output whent here are k's of files.05:27
vaidhycan I specify a port for sftp in bzr?05:28
poolie_so would -v still show them?05:28
lifelesspoolie_: that is what I was proposing05:28
lifelessvaidhy: sftp://host:port/ should work05:28
vaidhyok. thanks05:28
=== keir votes for special casing initial commit
poolie_lifeless, as long as the help text makes it clear, it's ok with me05:30
keiractually i think we should have a single command to do init, add *, commit  too :)05:30
Penglifeless: One of the packs was last modified 2007-08-25 and the other 2007-08-30. I've been keeping pretty up-to-date.05:31
keirbazaar@lists.canonical.com05:32
keiris that the right place to 'bzr send' to?05:32
lifelessPeng: check the branch you used, not the date of the packs :)05:32
lifelessPeng: it definately doesn't do that for me05:32
lifelesskeir: yes05:32
keirweird05:32
keirit's there in my sent mail on gmail, to that address05:32
Penglifeless: I would've been using the latest version of the branch from those days.05:32
Penglifeless: Or possibly the knit version of it.05:33
lifelesspoolie_: I was thinking something like the builtins.py code doing 'Initial commit - setting default verbosity to -q. You can can interrupt the commit, or run bzr uncommit, then commit again with -v to see the files being added.'05:33
keirwhere should i send my patch? for whatever reason the list isn't getting through05:34
keirthe irony is not lost on me (my patch is for bzr send)05:34
lifelessPeng: check bzr st and bzr revno in the branch you ran bzr from :)05:34
poolie_keir, i'll check the mail feature05:34
lifelesskeir: perhaps file a bug and attach the branch ?05:34
poolie_lifeless, what is that quoted string? the news entry? the help?05:34
lifelesspoolie_: output05:34
lifelesspoolie_: I don't think help really needs to mention it05:35
lifelessbut it could05:35
poolie_that would be printed to stdout?05:35
Penglifeless: I updated it today.05:35
poolie_i don't like that so much05:35
PengHuh.05:35
lifelesspoolie_: ok it was a thought05:35
poolie_i'd rather add to the help message05:35
PengI ran "bzr pack", and now there's the 56 MB one and a new 56.6 MB one.05:35
PengAnd some small ones.05:35
PengBut not as many as there were before.05:36
lifelessPeng: oh hmm.. can you check th epack files against pack-names ?05:36
keirlifeless, the branch is not public05:36
poolie_'for the initial commit in a branch, which typically adds many files, the filenames are not printed unless -v is given.  in every other case, the changes are shown unless -q is given.'05:36
poolie_keir, i don't see it in mailman05:36
lifelessPeng: there is a small race condition where the pack is added to the dir then the pack-names index is updated05:36
poolie_can you please forward your message to me mbp@canonical.com, including the original message-id, if you have ti05:36
lifelessPeng: a crash at the wrong time will leave an unreferenced .pack file05:37
Penglifeless: pack-names seems to only list the new 56.6 MB one.05:37
keirpoolie_, i just re-sent it to bazaar@lists.canonical.com, this time manually (rather than via gmail SMTP)05:37
lifelessthere you go05:37
Penglifeless: I don't think I've crashed it.05:37
lifelessctrl-C'd it ?05:37
PengNevar!05:37
PengHold on. TV is more fun than packs.05:38
poolie_lifeless, i agree about watching for the performance impact of changes05:38
igcpoolie_: I like that wording. I'll grab some lunch then resubmit my patch to be 'initial commit less verbose'05:38
=== igc lunch
keirweird, it must be my gmail send that is broken.05:38
poolie_speaking of which05:39
poolie_http://benchmark.bazaar-vcs.org/usertest/usertest.log05:39
keiri'm trying to setup a bzr send + gmail tutorial05:39
poolie_shows good results, except that script_common.AddTask:status is three times slower than 0.1705:39
poolie_can this really be true?05:39
poolie_keir, that'd be good05:39
lifelessI think it can be true05:39
poolie_or maybe we can have gmail as a mail_client?05:39
keirthere are all these complicated ways to send mail via gmail05:40
keirbut you can do it in 10 lines of python (including tls) via smtplib05:40
poolie_keir, i got your patch about python05:40
poolie_i mean, mutt05:40
keirpoolie_, yeah, i sent it a 2nd time manually rather than via bzr send05:40
keirgmail as a mail client would be really nice, but i don't see how we can automatically add attachments05:41
keirso the next closest thing i came up with is to use mutt + gmail smtp backend05:41
keirbut i really feel good gmail integration is a killer feature05:41
poolie_mm05:41
poolie_i would like that, as i use gmail myself05:41
lifelesskeir: file a bug on gmail:)05:41
keirexactly05:41
poolie_i typically just write to a file then paste that into the compose window05:41
poolie_so it's a bit manual05:41
keirthat's too annoying for me :) i'm a usability snob05:42
poolie_i'm very happy you're looking at it05:42
poolie_i agree it would be a great feature05:42
keirwhat i have now is pretty decent; bzr send pops up mutt, then i 'set sendmail=~/bin/gmail_send.py" which uses python's smtplib to send05:42
keirthen your mail shows up in gmail outbox05:43
keirpoolie_, would that be good enough for you? or do you really want the web interface too?05:43
poolie_i'm going for a bit05:43
poolie_keir, that would be ok05:43
Penglifeless: So bzr forgot about the one pack in the past, and left it there this time? Or did it forget about it just now?05:43
poolie_it might be cleaner if it just got a message from $EDITOR then sent the mail directly05:43
poolie_as not everyone has mutt05:44
keirpoolie_, true, but bzr send as editor botches the filename and mime stuff05:44
keirbesides, edit-headers is super handy05:44
lifelessPeng: probably some time ago05:44
lifelessPeng: whats the date on it05:44
keirone issue is: i have to store gmail pw somewhere05:45
keirshould i store it rot13'd?05:45
poolie_actually you should look at vila's auth ring spec05:45
poolie_it's not implemented yet but he wants to add a standard store for these things05:46
Penglifeless: It's the 2007-08-25 one.05:46
lifelessI still think netrc is the right place ;)05:46
Penglifeless: The mtime, you mean?05:46
lifelessyah05:46
lifelesswe never modify packs05:46
PengRight.05:47
=== Peng wanders off.
keirregarding auth, can we use a ssh key?05:50
keireveryone has pub/priv ssh keys; i figure it'd be neat if we could use those to store the pw's05:51
lifelessuhm05:51
lifelesssome people get obsessive about such things, having unaudited code access passphrases is generally bad05:51
keirpossibly.05:52
lifelessI'm one of those people :)05:52
keirheh, ok05:52
keirwhere is the right place to put a 'bzr with gmail' page?05:53
lifelessI'd be putting it in the bzr send help, or a help topic in a seealso from that05:53
keirok05:54
keiri wonder how hard it would be to have bzr notice recent bundles floating around on the ML, then just pick one and merge it05:55
keirrather than dl'ing them05:55
AfC[I'm a bit vague about why you're wondering about keyrings, but as of 2.18 or so we have a good one built in; bzr should probably consider just talking to it] 05:56
keir2.18?05:56
keirgnome you mean?05:56
AfCOf course05:56
keirpython api?05:56
AfCI imagine so05:57
keircool05:57
keirok, maybe i'll do that now05:57
lifelessI think making the backend pluggable might be good05:57
lifelessbut we need to support05:57
lifelesswindows05:57
lifelessconsole unix05:58
lifelessgnome05:58
lifelesskde05:58
keirwell, for sending to gmail, it's kinda specific05:58
keiri just need a sendmail work-alike05:58
lifelessfluxbox and other such things05:58
keirmy python script is 10 lines right now, but has my pw in the clear05:58
lifelesskeir: just prompt for the password ?05:58
lifelessbzrlib has a password prompt routine05:58
AfCI find that so frustrating. Who gives a hoot about the rest of them? This project is paid for by Canonical, whose primary product is a GNOME desktop. Why would we give up a better user experience in our environment to support the platforms of non-free vendors?05:59
keirif others want to do that, sure, but all i want is a super slick bzr send for my env of choice, ubuntu :)06:00
AfCkeir: exactly.06:00
lifelessAfC: Wow, lets address a few points there. Its only partly paid for by Canonical. Its primarily an open source project.06:00
lifelessAfC: secondly, Kubuntu and Xubuntu are both primary products along with Ubuntu.06:00
lifelessAfC: thirdly Windows is a strategic user base for us because many open source projects - including chunks of Gnome - build or otherwise target windows. Not supporting windows for infratructure like VCS is bad.06:01
lifelessAfC: Lastly no one talked about giving up user experience.06:02
lifelessso that minirant was IMO entirely aimed at a strawman06:02
AfCI didn't say not supporting Windows. I said to treat them like the second class citizens they deserve yo be, and  not crippling or giving up a potentially better desktop integration in _our_ environments. Taking today's example, GNOME has a desktop wide keyring agent facility; it would be tremendous to integrate cleanly with it, rather than being yet another stand-alone program that doesn't integrate with anything.06:03
=== orospakr [n=orospakr@CPE001a70d1de84-CM0019474a8676.cpe.net.cable.rogers.com] has joined #bzr
lifelessAfC: You are clearly arguing with some position you *think* I've taken, rather than what I have said or proposed.06:06
lifelessso I'm going to go back to making commit faster06:06
=== AfC files this away for use at his next conference.
keirin the meantime, i figured out how to use gnome keyring from python :)06:09
AfCkeir: which library was it in?06:13
fullermdGnome?  What is this 'gnome' of which you speak?   :p06:14
keirafc: http://www.rittau.org/blog/20070726-0106:17
lifelessI'm popping out for a walk, thinking through therestructuring06:28
lifelesspoolie_: if you are idle and wanted to ring my mobile to be an idea bouncer that might be useful06:29
igcso lifeless, poolie_: less verbose on initial commit only is agreed yes?06:30
=== abentley [n=abentley@bas8-toronto63-1088754407.dsl.bell.ca] has joined #bzr
lifelesshi abentley06:59
lifelessigc: I think so06:59
abentleyHi.06:59
igchi abentley06:59
lifelessabentley: what are your thoughts on defaulting commit to -q for first-commit only07:06
abentleylifeless: I'd prefer to use -q all the time-- don't like inconsistency.07:07
lifelessabentley: I don't either; AFAICT the use case for this is benchmarking folk that don't take terminal overhead into account07:09
lifelessI like the current output07:09
lifelessI don't want regular commits to lose that07:09
igclifeless: that not quite true ...07:09
igcit's not terminal overhead07:09
igcit's the overhead of deciding on the nature of a change07:10
lifelesswell07:10
lifelesson first commit that should be nearly zero07:10
lifelessit can be special cased to have everything new07:10
igcsounds right07:11
lifelessso why do you want to change the default verbosity to -q then? That was never answered to my satisfaction I guess07:11
igcit's also the UI question of just how useful listing 100s of files is on initial commit07:12
abentleyigc: That's one case of initial commit.07:12
abentleyThe other case has two or three files.07:12
igcplease don't use -q  -that's separate again07:12
lifelessyou've lost me07:13
igc-q is no output07:13
igcthe proposal was for ocmmit to just show the "Commited revision n" msg07:13
=== igc digs ...
igchttps://lists.ubuntu.com/archives/bazaar/2007q2/027044.html07:14
igcthe change was a better UI07:14
igcthe performance gain was a side benefit07:14
abentleyOy, so it's not even consistent with -q.07:14
lifelessgarh07:14
lifelessigc: I don't think hiding the changed paths list is better07:15
lifelessI'd tolerate it for first-commit only, when there are many files, if that was trivial to detect performance wise07:15
igcI understand07:15
abentleyIt's especially not better for new projects, where there's only a few files to commit, and the inconsistency will be surprising.07:16
lifelessor for first-commit only, though as abentley says that has higher surprise factor07:16
igcthe theory was that most other VCSs don't show the info unless -v was specified07:16
lifelessand we're better than them.07:16
lifelessthats our raison d'etre07:16
igcsure ...07:17
lifelessanytime we look at what another VCS does in terms of behaviour we have to get the rationale07:17
igcbut that's not what everyone said in the mailing list thread above :-)07:17
abentleyWhat mailing list thread?  Something that happened in the last 12 hours?07:18
igchttps://lists.ubuntu.com/archives/bazaar/2007q2/027044.html07:18
igcin the last 12-15 hrs, I've put up a patch - which was consistent07:19
igcit was then suggested we special case it for initial commit only07:19
igcwhich I just started doing but haven't done07:20
lifelessigc: I am planning a new method on mutable tree07:21
lifeless'path_content_summary'07:21
igcsounds nice07:21
igcwhat does it return?07:21
lifelessigc: this will return a tuple: (kind, size or None, executable, sha or None)07:21
lifelesssize is None for things that have no Size07:21
igcthat will help07:21
lifelesssame for exec07:21
lifelesssha is returned if it can be got from hash cache only07:21
lifelessI plan to use this to delete _read_tree_state07:22
igcdirstate is fast but one lookup is better than multiple07:22
igchooray for _read_tree_state being nuked ...07:22
igcit's not like I haven't been trying to do that :-)07:22
lifelessI did suggest how to get to it when you started on commit :)07:23
=== sverrej_ [n=sverrej@tul-1x-dhcp013.studby.uio.no] has joined #bzr
keiris there an easy way to query a pw and not show it in python?07:41
lifelesspydoc bzrlib.ui07:41
keirmy gmail send util is independent of bzr07:41
lifelessand ?07:41
lifeless:)07:41
lifelessbzrlib is a library07:41
keirheh07:41
lifelessalso07:41
lifelessyou can look at the code we have07:42
lifelessto see how to do it07:42
keirtrue :)07:42
=== luks [i=lukas@unaffiliated/luks] has joined #bzr
jmlalso 'pydoc getpass'07:42
lifelesstooeasy.com07:43
lifelessabentley: ping07:54
abentleylifeless: muh?07:54
lifelesstree._comparison_data07:55
lifelessthere's no docstring, I'm trying to figure out why it returns the raw stat, and never the sha07:55
lifelessI guess that what I'm working on is basically in the same api space and don't want to duplicate unnecessarily07:56
lifelessI was going to write path_content_summary that would take just a path and return (kind, size-or-none, exec-or-none, sha-or-none)07:57
abentleyWell, I suppose it *could* pass the sha1, when needed.  But what actually happens is that the stat value is examined, and if it needs the sha1, it uses the stat value to get it.07:57
lifelessah07:57
lifelesswhats entry there for - win32 ?07:58
abentleyIt's quite possible that there are cleaner ways to do this.07:58
abentleyThe entry's for revision trees.07:59
lifelessok07:59
abentleyG'night.07:59
lifelessI think I'll my little API up and ask you to comment on it's usefulness07:59
lifelessI want it for commit, and don't want 'entry' there07:59
lifelessbut I can look at moving _iter_changes onto my api, or reusing _comparison_data if that makes more sense08:00
lifelessgnight, sleep well08:00
lifelessciaoish08:10
=== ionstorm [n=ion@70-58-119-250.phnx.qwest.net] has joined #bzr
keirwell, i have a nice gmail sendmail replacement which uses gnome keyring to store pw's now08:37
keirwhat is the default bzr url for trunk when you register a new project on launchpad?08:39
=== abadger1999 [n=abadger1@65.78.187.68] has left #bzr []
=== allenap [n=allenap@212.233.37.68] has joined #bzr
=== hdima [n=hdima@idealer.cust.smartspb.net] has joined #bzr
poolie_keir?09:10
poolie_oh, typically something like09:10
poolie_sftp://bazaar.launchpad.net/~keir/bzr-gmail/trunk09:10
poolie_you can use any branch name you like for the last component09:11
keirpoolie_, yup, i got it09:12
keirpoolie_, can you try something for me?09:12
poolie_sure09:13
keirpoolie_, http://bazaar-vcs.org/BzrSendWithGmail09:13
keirsee if you can get it to work09:13
keirsadly this is rather gnome/unix specific09:13
keiri really believe we need slick all-platform gmail support, but this is better than nothing09:13
=== g0ph3r [n=g0ph3r@p57A0A160.dip0.t-ipconnect.de] has joined #bzr
=== sverrej [n=sverrej@tul-1x-dhcp013.studby.uio.no] has joined #bzr
keirpoolie_, i'm sleepy (in EST) so let me know if you have any success. mierle@gmail.com09:18
=== tca [n=tom@ti541110a080-5238.bb.online.no] has joined #bzr
poolie_ok09:18
keirpoolie_, also i'd like to write tests for gsendmail.py, but i'm not sure how/what to test because it's all API!09:18
poolie_Password:09:20
poolie_Traceback (most recent call last):09:20
poolie_  File "gsendmail.py", line 137, in <module>09:20
poolie_    sys.exit(main(options, args))09:20
poolie_  File "gsendmail.py", line 108, in main09:20
poolie_    gmail_key_ring.set_credentials((gmail_addr, pw))09:20
poolie_  File "gsendmail.py", line 75, in set_credentials09:20
poolie_    gkey.ITEM_NETWORK_PASSWORD, self._name, attrs, pw, True)09:20
poolie_gnomekeyring.DeniedError09:20
poolie_it asked me for an initial keyring password, then this.09:20
AfCpoolie_: credential not [yet]  stored, maybe?09:21
poolie_keir, when i tried a second time it seemed to work09:22
=== mvo [n=egon@p54A6734A.dip.t-dialin.net] has joined #bzr
AfCWhat timezone is Jelmer in?09:27
poolie_+1 or +209:28
=== jml [n=jml@ppp121-44-221-92.lns1.hba1.internode.on.net] has joined #bzr
=== mvo_ [n=egon@p54A6734A.dip.t-dialin.net] has joined #bzr
AfCpoolie_: thanks09:49
=== anandn [n=anandn@59.163.70.253] has joined #bzr
mwhudson+2 right now10:10
=== hsn_ [n=radim@234.114.broadband5.iol.cz] has joined #bzr
AfCpoolie_: got a sec?10:29
poolie_yes10:30
AfCpoolie_: using the bzr bundle command (as recently amended to be bzr send, really), the command line is now (and perhaps for some time) has "submit branch" and "public branch" as arguments.10:35
AfCpoolie_: trying to figure out what these mean, I ran help, and was somewhat lost after reading the description there10:35
AfCpoolie_: so I poked around10:35
AfCand have the following [as ever, from an "outsider"'s perspective] 10:36
=== mrevell [n=matthew@canonical/launchpad/mrevell] has joined #bzr
AfCpoolie_: http://rafb.net/p/imxMEp87.html10:36
AfCwhich is bzr info on three different branches here10:36
igclatest commit reporting patch/proposal send to the list10:36
AfCThe first one makes sense (although I'm not entirely sure how ../primary is the parent of mainline)10:36
igctime for some food & time with the kids10:37
igcnight all10:37
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
AfCThe second one (where I have run bzr bundle (send) at least once since 0.90), is a bit more confusing10:37
AfCindeed, my thought was that it was all a bit repetitive.10:37
poolie_it's not so obvious how these locations match up to other operations10:38
poolie_i have been wondering if we should perhaps say10:38
AfCThen the third one, from one of the contributors whom I've given access to create branches on our server, is really confusing.10:38
poolie_defaults for:10:38
AfCYeah10:38
poolie_  push: ...10:38
poolie_  merge source: ...10:38
poolie_  public location:10:38
AfCSo I can sorta guess where each might have come from, but it's all inference and, as you say, its not clear how it aligns10:38
AfC[and .bazaar/locations.conf also confuses me - at one point I was wondering if I was supposed to edit THAT. Ick. Classic case of just enough knowledge to be dangerous to oneself] 10:39
AfCEnd of first impression10:39
=== gabe_ [n=gabriel@91.84.56.254] has joined #bzr
poolie_so do you think just making it more clear how they map to commands or operations would be enough?10:41
poolie_ideally in both info and the configuration10:41
poolie_or is it more than that?10:41
AfCpoolie_: I suspect so10:41
AfCpoolie_: combination of more specific help text, less noise about version this and tagstate-dir that, and what you suggest about where those come from and what they're used for when running info would seem to more than cover it.10:42
rotty`how does one list bzr repos in config-manager "configs"?10:43
AfC[alternately, you could make these public, submit, parent, etc the first class items, and change the text of `push`, `pull`, etc to state that they use "the public branch" or "this command will diff by default from the submit branch" or whatever10:44
=== dhon__ [n=dhon@60-240-97-109.static.tpgi.com.au] has joined #bzr
=== sabdfl [i=sabdfl@ubuntu/member/pdpc.silver.sabdfl] has joined #bzr
poolie_rotty`, i think just by the url?10:47
poolie_for the branch?10:47
rotty`(it always tells me "Unknown url type")10:47
poolie_there's an example in the configmanager source10:47
poolie_i don't have it on this machine...10:48
poolie_rotty`, maybe you have a really old configmanagere version10:53
thumperare there any Solaris 10 packages for bzr somewhere?10:55
poolie_thumper, i don't know of current packages10:57
thumperare they easy to make?10:58
thumperor do you need a Solaris person?10:58
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== herzel [i=herzel@gateway/tor/x-516b114cd89b0639] has joined #bzr
rotty`poolie_: where do I get the newest config-manager?11:14
poolie_rotty`, that's a really good question11:17
poolie_i was sure it was on launchpad but i can't find it11:18
poolie_rotty`, i suggest you mail bazaar@lists.canonical.com11:23
poolie_i'm going to call it a night11:24
allais the submit-by-mail plugin still supported? or is there a better way to email and apply patches?11:30
luksnot sure what does the plugin do, but there is 'bzr send --mail-to XXX' in bzr 0.9011:31
allaooh11:31
allabzr: ERROR: unknown command "send"11:32
allaUsing 0.17.011:33
spivalla: yeah, it's a pretty new command.11:33
spivalla: upgrade to 0.9011:33
allaooh, I need to upgrade, thanks!11:34
luksoh, wait11:35
luks--mail-to is only in not-yet-released 0.9111:36
allahmph. Well how do people normally email patches?11:36
luks0.90 has only 'send -o'11:36
lukswith older versions `bzr bundle >mypatch.diff` and then mail the patch manually11:36
lukswith 0.90, `bzr send -o mypatch.diff`11:37
=== fog [n=fog@debian/developer/fog] has joined #bzr
allaI'm upgrading now.. what's -o?11:37
luks--output, it will save the patch to a file11:38
AfCthumper: I must admit that on the one Solaris machine we have, we just installed bzr manually rather than attempting to package it; since Solaris packaging is brain dead anyway. and this machine is not under a proper infrastructure management regime, we didn't worry about it too much.11:38
luksthen you can use `bzr merge` or `bzr pull` to apply it11:38
allaluks: surely you cannot `bzr merge` a .diff file ..?11:39
allaoh it's a patch file?11:39
luksit's not a traditional patch file11:39
luksbut it's patch-compatible11:39
allaexciting11:39
luksit has all the revision data needed to merge/pull it11:39
AfC[.patch ( .diff ) is a good extension to use for bundles because then mail clients get the MIME type right, so a wise man once told me] 11:40
allaAfC: Your syntax does not compute. Are you saying .diff is preferred?11:44
AfC.patch, actually11:44
allaOk, thanks.11:44
=== pachi_ [n=pachi@84.76.208.29] has joined #bzr
=== pachi_ [n=pachi@84.76.208.29] has left #bzr ["Information]
=== vila [n=vila@lec67-4-82-230-53-244.fbx.proxad.net] has joined #bzr
=== asabil [n=asabil@62.70.2.252] has joined #bzr
=== tchan [n=tchan@lunar-linux/developer/tchan] has joined #bzr
AfCWhere does the --author option live? (Or is that not released yet?)12:11
AfC[I expected it on commit, but it wasn't there] 12:11
datoif you don't see it on commit, then it's not released yet12:12
=== AfC rather wishes that it just worked automatically, ie, I am cherry picking from someone else's code [branch] , so clearly they [those revisions] are the author
AfCWhat _is_ the difference between "submit branch" and "public branch" in the arguments to bzr bundle|send?12:15
lukssubmit branch is the target12:17
fullermdI believe 'submit' is "The branch these changes are to be applied to, so the one used to determine the base"12:17
lukspublic branch is the public location if your branch12:17
AfCRight. So I just did12:17
AfCbzr bundle ../mainline http://research.operationaldynamics.com/bzr/java-gnome/mainline/12:17
AfC(as I am creating a cherry pick for someone)12:17
fullermdPublic would reallyonly be _required_ if you were sending a directive without a built-in bundle.12:18
AfCand, by inspection, the first argument is the branch it "diffs against" (sic), as before12:18
fullermd(it's just informative if there is a bundle)12:18
luksAfC: yes, because that's the branch you want to merge it to12:18
AfCwhereas the second conveys "public branch" along which ... well, not sure what that's for, but it seems a nice touch.12:18
AfCbut I'm not quite clear on why the bundle needs to record the submit (-> "target") in the bundle.12:19
AfCas ../mainline has no relevance for the recipient.12:19
luksbut you can have a merge-directive without bundle12:19
AfC[so maybe I should only do bundles against a connected repo and not against local branches, convenient as that seems?] 12:19
luksand use a public location of the target branch12:20
AfCfullermd: er, huh? "sending a directive without a built-in bundle"? How can you send a bundle without its attached patch?12:20
AfCfullermd: it sounds like I've got it backwards, and public branch is something the person is suppose to pull the bundlerevisions from12:21
AfC?12:21
fullermdOther way around (and you don't send a bundle, you send a merge directive)12:21
AfC(Yikes, but this is confusing)12:21
fullermdYou can send a merge directive that contains no revision information, which is just an instruction "Merge rev[s]  X[,Y,Z]  from $PUBLIC_LOCATION"12:21
AfCfullermd: call it what you will, we're sending that-which-people-send-to-submit-code-for-consideration-for-inclusion-in-the-upstream-project12:22
fullermdWell, it's not a rose.  By any other name, it's something different.12:22
AfCfullermd: ah. It is "from $public-branch"12:22
fullermd"bundle" doesn't refer to "The whole output", it's just that part of the output containing the revisions to apply.12:22
AfChm. So little point in me the upstream maintainer using that12:22
AfCfullermd: the patch in bzr from, sure.12:23
fullermdIf you send a directive with a bundle, it's got all that information, and can be used directly to apply to the target branch.12:23
AfCs/from/form as committed revisions/12:23
fullermdIf you send a directive _without_ a bundle, it needs that public branch location since it doesn't have any info internally, and just says "go there".12:23
AfCH12:23
AfCHm12:23
AfCI guess. Not sure what we'd use that for, but I'm sure you use it for something.12:23
luksAfC: btw, regarding cherry picking and the author info, I wrote this simple hack for it - https://code.launchpad.net/~luks/+junk/bzr-pick12:23
fullermdIf you're merging a lot of code from a long-lived branch, say.  You don't want to send many 5 meg emails, when you have a existing public location for this previously-experimental-now-landing code.12:24
AfCfullermd: ok, sure.12:24
fullermdFor little stuff, 'traditional' directives with the bundle are probably a lot simpler.12:24
AfCfullermd: [assuming such a place exists and the receiving party, by the grace of god, actually has global network access at the time they attempt to use the received email lacking revisions, implying a high level of communication between the parties involved. Fair enough] 12:25
fullermdAnd in those cases, the 'public' info is pretty cosmetic (may be interesting for human reviewers, but it's not needed)12:25
fullermdWell, it's also aimed at being used for automated processes, like PQM.  Merge directive is a standard formal format, so it can be used to tell a robot "Go merge this in this way".12:26
AfCfullermd: so we've dispensed with public branch as a needed argument since the revisions in question I'm sending to someone are not, in fact, in mainline (yet, which is the whole point). Fine. From there, I wonder12:26
AfCfullermd: what the value of having the branch I diffed against ("../mainline") included in the bundle with the label "TARGET"?12:26
fullermdMostly cosmetic, probably.  Informative to you, and assuming you have known reasonable-ish local branch naming, informative to your target.12:27
fullermde.g., if it says "../v1_legacy", the person you send it to could assume that there's a branch for old v1 code that you're making this against, if you fail to mention such.12:27
AfCfullermd: [re PQM, yes, I know, but since mere mortals and other medium size projects with humans rather than robots doing the work need the means to ship revisions around, and bundles (in the old sense of the word) were preserved (thank god) in 0.90 even though merge-directive happens to be the encoding] 12:28
fullermdYou certainly should mention, though.12:28
fullermdIt's probably more a matter of "This info was supplied, so shouldn't be discarded" than "This info will have direct application at the target".12:28
AfCfullermd: re cosmetic - yeah, I suppose, but it has near zero relevance to the receiver and I have to therefore worry not to use anything offencive in my local branch directory names because these names leak. Not super thrilled about htat.12:29
fullermdSure, if you're sending to humans, a bundle-less directive is probably less interesting than just bashing out an email saying "Hey, look at revs X-Y of my branch at http://...".12:29
AfCfullermd: let me put it this way: bundle-full revisions are a feature we're using and that humans are looking at.12:29
fullermdOh, well, I think of it as an opportunity to use extra offensivity in my local branch naming, to help thin the herd   ;)12:29
AfCfullermd: uh huh :)12:30
=== AfC adds some notes to the bug he's going to file about this.
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
fullermdIn that situation, bundle-less directives are probably pretty uninteresting to you (at least, except for occasional cases of really large suggestions that you don't want to waste tons of email bandwidth on)12:31
=== tca [n=tom@ti541110a080-5238.bb.online.no] has left #bzr []
lifelessnight all01:02
=== niemeyer [n=niemeyer@200-103-134-216.ctame705.dsl.brasiltelecom.net.br] has joined #bzr
=== matkor [n=matkor@beauty.ant.gliwice.pl] has joined #bzr
matkorCan I do branch checkout having only r-o access to repo via ssh/sftp ? I get error bzr: ERROR: Permission denied: u'/srv/bzr/abbon/admin/.bzr/branch-format': [Errno 13]  Permission denied ?01:39
matkorhttp manages somehow to work without such locks ?01:40
=== mrevell is now known as mrevell-lunch
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
matkorseems http: must be special ;)  bzr: ERROR: Transport error: Server refuses to fullfil the request for: http://appserver.ant.vpn/bzr/abbon/admin/.bzr/branch-format01:51
luksmaybe you really don't have access to the file?01:51
luksand neither does apache?01:51
=== bac [n=bac@canonical/launchpad/bac] has joined #bzr
=== ddaa [n=david@canonical/launchpad/ddaa] has joined #bzr
=== ddaa [n=david@canonical/launchpad/ddaa] has joined #bzr
matkorluks: Should I have r/w access inside bzr repo using sftp: transport or read only is enough ?01:55
luksread only should be enough01:56
mwhudsonhm01:57
mwhudsonthe smart server isn't too happy with branch names that contain newlines methinks :)01:57
=== jdong_ [n=jdong@ubuntu/member/jdong] has joined #bzr
=== jdong_ is now known as jdong
AfCnewlines in branch names. Nice.02:13
matkorOK. one not only neads r but also rX to get access ...02:15
=== deadwill [n=deadwill@146037.fln.virtua.com.br] has joined #bzr
=== phanatic [n=phanatic@3e70d9e7.adsl.enternet.hu] has joined #bzr
=== mrevell-lunch is now known as mrevell
=== jdong [n=jdong@ubuntu/member/jdong] has joined #bzr
=== mw|out [n=mw@189.146.15.187] has joined #bzr
=== bigdog [n=scmikes@79-67-14-216-arpa.cust.cinci.current.net] has joined #bzr
spivmwhudson: in theory it should be ok, it should just url-escape the offending byte...03:01
spivmwhudson: I wouldn't be shocked if that's not true though.03:02
=== mkanat [n=mkanat@c-71-202-202-106.hsd1.ca.comcast.net] has joined #bzr
mkanatIs "log -v" any faster in 0.90 than in 0.18?03:10
mkanatBecause man, it's slow. :-)03:10
mkanatSomething like 60-90x slower than just plain "log".03:10
mkanat(In 0.18, that is.)03:11
=== bwinton [n=bwinton@mail.phantomfiber.com] has joined #bzr
mwhudsonspiv: hm03:24
mwhudsonspiv: theery and praxis seem to differ here03:24
=== jdong [n=jdong@ubuntu/member/jdong] has joined #bzr
mwhudsonspiv: is there a way i can make the smart server more verbose on the server side?03:28
mwhudsonmwh@mithril-inside:aa$ bzr push 'bzr+ssh://bazaar.launchpad.dev/~sabdfl/+junk/aaa03:31
mwhudson> bbb'03:31
mwhudsonbzr: ERROR: Generic bzr smart protocol error: Generic bzr smart protocol error: bad request 'bbb/'03:31
mwhudsonhmmmm03:31
mwhudsonsomething screwy here03:33
=== Mez [n=Mez@ubuntu/member/mez] has joined #bzr
=== juliank [n=juliank@p548AE60A.dip.t-dialin.net] has joined #bzr
=== mw|out is now known as mw
=== juliank0 [n=juliank@p548AE60A.dip.t-dialin.net] has joined #bzr
=== rburton [n=ross@althur.gotadsl.co.uk] has joined #bzr
rburtonafternoon all03:58
rburtonis there a way to update a bzr checkout (not a branch) to a particular revision?03:58
rburtonbzr update -r [revno]  doesn't appear to exist, which is a shame04:02
matkorrburton: I would use branch if need particular revision04:05
ubotuNew bug: #137283 in bzr "oddness in smart server with paths containing newlines" [Undecided,New]  https://launchpad.net/bugs/13728304:06
rburtonmatkor: so how do i switch to a particular revision with a branch then?04:06
spivrburton: bzr revert -r04:06
rburtonspiv: does that go forwards too?04:06
rburtonhttps://bugs.launchpad.net/bzr/+bug/45719 contains a patch for update, marked "fix committed" but the comments imply its waiting review04:07
spivrburton: I'm not sure, but I expect that in a checkout it would.04:07
ubotuLaunchpad bug 45719 in bzr "update command cannot take a revision number" [Medium,Fix committed] 04:07
spivWe use "fix committed" to mean "the fix is committed in a branch somewhere" (vs. "fix released" == "the fix is committed to bzr.dev.")04:08
rburtonah04:08
spiv(http://bazaar-vcs.org/BugGuidelines)04:09
rburtonbzr: ERROR: Requested revision: u'10' does not exist in branch: BzrBranch5('file:///home/ross/Local/mess/36/flickrpc/')04:09
rburtonyou can't revert to a newer revision with a checkout04:09
rburtonsame error with a branch04:10
=== ionstorm [n=ion@70-58-119-250.phnx.qwest.net] has joined #bzr
mwhudsonyes, i would somehow expect revert to not go outside the branch looking for revisions04:10
rburtonyeah me too04:10
rburtonah well, we'll delete the tree and rebuild it then04:11
mwhudsonrburton: you could comment on that bug, it may kick it into life...04:11
rburtondoing now04:12
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
mwhudsoncool04:12
=== keir [n=keir@206-248-160-33.dsl.teksavvy.com] has joined #bzr
=== juliank [n=juliank@p548AE60A.dip.t-dialin.net] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== mthaddon [n=mthaddon@canonical/launchpad/mthaddon] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== Mez [n=Mez@ubuntu/member/mez] has joined #bzr
=== Lo-lan-do [n=roland@mirenboite.placard.fr.eu.org] has joined #bzr
Lo-lan-doGuess who?05:00
fullermdElizabeth Taylor?05:01
Lo-lan-doAlso, guess what :-)05:01
Lo-lan-doIt's me, coming back to haunt jelmer with a problem I have with bzr-svn!05:01
Lo-lan-dohttp://paste.debian.net/3621105:01
=== abadger1999 [n=abadger1@65.78.187.68] has joined #bzr
jelmerhey Lo-lan-do05:05
Lo-lan-doHey mate, sorry for the repeated nagging :-)05:05
jelmerLo-lan-do: sorry for the bugs !05:06
jelmerLo-lan-do: can you paste the 'bzr missing -v ' output ?05:06
Lo-lan-dohttp://paste.debian.net/3621305:08
fullermdHm, whaddaya know...   .so's build on Python 2.4 don't get along with 2.5  Whoda thunkit?05:12
mwhudsonfullermd: they probably sorta mostly work, actually05:14
mwhudsonunless there were more pervasive changes than i remember in the version bump05:14
fullermdWell, I dunno if they worked, or just refused to load and bzr fell back to the .py version.05:14
fullermdI just blew 'em away (and got annoyed again at how 'make clean' doesn't actually clean 'em up) and remade 'em.05:15
jelmerLo-lan-do: can you perhaps also paste the output of 'bzr log -v -r -6..-1' ? I'm mainly05:15
mwhudsonoh, or in a 64 bit environment05:15
jelmerinterested in the parents of those revisions, was hoping 'bzr missing -v' would print those05:15
mwhudsonfullermd: but yeah, definitely not recommended or supported05:15
Lo-lan-dojelmer: http://paste.debian.net/3621405:16
jelmermwhudson: hi! Can you still reproduce bug 125751 ?05:17
ubotuLaunchpad bug 125751 in bzr-svn "yet another failing push" [Undecided,New]  https://launchpad.net/bugs/12575105:17
jelmerLo-lan-do: thanks05:17
mwhudsonjelmer: good question05:18
jelmerLo-lan-do: bug 131692 :-(05:22
ubotuLaunchpad bug 131692 in bzr-svn "pushing on top of non-lhs parent fails" [High,Triaged]  https://launchpad.net/bugs/13169205:22
Lo-lan-do"Non-lhs" referring to the order in which the branches have diverged, or something similar?05:23
jelmerto the relation of the revisions05:24
jelmer4864.1.1 in that log output is a subversion revision I guess?05:24
Lo-lan-doYes05:26
jelmernon-lhs is a non-left hand side revision05:30
=== Mez [n=Mez@ubuntu/member/mez] has joined #bzr
=== Mez [n=Mez@ubuntu/member/mez] has joined #bzr
Lo-lan-doIs that hard to fix?05:40
Lo-lan-doI can wait for a few weeks before pushing, but if it takes a few months instead, I'll find workarounds.05:41
=== grimboy [n=grimboy@85-211-246-129.dsl.pipex.com] has joined #bzr
jelmerLo-lan-do: Hopefully less than a week05:45
jelmerI badly need to do a 0.4.3 because there are a couple of other issues that need to be fixed urgently05:46
jelmers/0.4.3/0.4.2/05:46
Lo-lan-doOh, that's ample soon enough.  As long as I can pull/merge from SVN, I can postpone my pushing for a while.05:46
Lo-lan-doThanks for the hard work :-)05:46
mwhudsonjelmer: http://rafb.net/p/nloZz560.html05:46
mwhudsonwhich is different, and possibly related to my branching scheme hacks05:47
jelmermwhudson: that one is fixable by making _is_http_transport() return False in transport.py05:47
mwhudsonjelmer: then i get the same traceback as is already in the bug report05:48
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
asabilhi all05:56
asabilis there a way to specify a default push path directly after a bzr get ?05:56
Lo-lan-dopush --remember?05:57
jelmermwhudson: ok - thanks05:58
mthaddonis there a way to undo a bzr pull --overwrite? can I do bzr uncommit?05:59
asabilLo-lan-do: without doing a push05:59
jelmerasabil: you can edit .bzr/branch/branch.conf06:00
jelmernot sure if there's a way to do so via the command line06:00
asabilhmmm ok06:02
mwhudsonjelmer: i can execute other commands if you want06:05
mwhudsonjelmer: just not right now :)06:05
=== cypherbios [n=cyr@ubuntu/member/cypherbios] has joined #bzr
=== fog [n=fog@debian/developer/fog] has joined #bzr
=== sumdeus [n=sumdeus@c-69-242-210-34.hsd1.mi.comcast.net] has joined #bzr
sumdeusI can't seem to find an answer to this and hope someone can point me in the right direction: I have two separate trees which have no common ancestry.  I would like to apply a patch from tree A to tree B. What is the best way to accomplish this?06:29
beunosumdeus, probably using "bzr bundle"06:30
beunocheckout "bzr help bundle"06:30
beuno*check out06:30
beunothat would create a patch you can apply as revisions06:30
sumdeusbeuno, cheers, I shall have a look06:30
james_wthat wont work I'm afraid, as a bundle requires the base revision to be present.06:51
james_wyou can do diff + patch at best I think.06:52
james_wah no, you can use merge I belive if you specify a start revision.06:53
james_wwhich you can do when merging from a bundle.06:53
beunooh, sumdeus, listen to james_w  :D06:53
james_whowever there will be conflicts if the two branches have files of the same names (filename conflicts, so bzr wont even try to merge contents).06:53
james_wif that is the case then diff + patch might be the best way to go.06:54
james_wmthaddon: if you know the revision id of where you were before you can pull --overwrite back to where you were.06:55
sumdeusHmm... what looks like it will work, since I'm using old school baz (1.x) is to do "baz delta --diffs > patch.patch" and then patch -p1 in the new tree.06:55
mthaddonjames_w, went with restore from backup - thx in any case06:55
sumdeusof course after diffs put in the two trees06:55
sumdeusWhich is what james_w suggested, so perfect!06:55
james_wmthaddon: no problem.06:56
=== ipkiss_ is now known as ipkiss
=== keir is fishing for people to test his mutt+gmail+bzr send tutorial
keirsee if you can get the following to work: http://bazaar-vcs.org/BzrSendWithGmail07:17
keiranyone?07:30
keirabentley, i still think alphabetizing is the right thing to do07:34
james_wcould you alphebetise in two sections, clients first, and then others second?07:35
keiryeah, that's what i'm doing now07:35
keirit's really unclear what the ordering means unless is specifically mention that it's clients then generic options07:35
keirok, i'm doing that07:38
=== hsn_ [n=radim@234.114.broadband5.iol.cz] has joined #bzr
=== sverrej [n=sverrej@tul-1x-dhcp013.studby.uio.no] has joined #bzr
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
=== duckx [n=Duck@tox.dyndns.org] has joined #bzr
=== sverrej_ [n=sverrej@tul-1x-dhcp014.studby.uio.no] has joined #bzr
=== corehosting [n=ctrlprox@a81-14-225-28.net-htp.de] has joined #bzr
corehostinghello, stupid question: what is the name of the package (suse 10.1), if i want to use "bze get"?08:18
bwintonbzr?08:18
=== asak [n=alexis@201-1-44-231.dsl.telesp.net.br] has joined #bzr
=== BasicOSX [n=Basic@fortress.tanners.org] has joined #bzr
corehosting0 result(s)08:19
=== cypherbios [n=cyr@ubuntu/member/cypherbios] has joined #bzr
BasicOSXAnyone running osx+python2.5 and bzr? Any problems?08:19
bwintonWhat's in your Development/Tools/Version Control directory?  (Assuming you have one.)08:20
james_wcorehosting: http://benjiweber.co.uk:8080/webpin/index.jsp?searchTerm=bzr08:21
corehostingohhhh, coool08:22
corehostingthis looks good08:22
bwintonBasic, I'm on OSX/Python 2.4/bzr 0.90.0 candidate 0, and haven't run into any problems yet.08:23
BasicOSXwondering if the problem is python-2.508:23
bwintonWell, that's not entirely true.  The GTK extra stuff didn't work, because I haven't installed X-Windows, but I expected that to not work.08:23
BasicOSXthat is the tread related to my problem with bzr on osx http://thread.gmane.org/gmane.comp.version-control.bazaar-ng.general/30469/focus=3055508:24
BasicOSXbwinton: could I ask you to bzr get http://bazaar.eqenchanters.org/WoW/AddOns08:25
bwintonSure.08:25
BasicOSXAlso, is there a way to "check" the sanity of your remote repo?08:26
bwintonGetting...08:26
james_wbzr check http://... should work I guess.08:26
bwintonBasic: Fetch phase 1/4...08:27
fullermdIt won't.08:27
BasicOSXI have local access to the "remote" repo as well08:27
BasicOSXon the local machine doing a bzr check /path/to/repo, seems to be working08:28
=== sverrej__ [n=sverrej@tul-1x-dhcp014.studby.uio.no] has joined #bzr
=== pete__c [n=pete@015-806-741.area5.spcsdns.net] has joined #bzr
=== Gwaihir [n=Gwaihir@ubuntu/member/gwaihir] has joined #bzr
=== sverrej [n=sverrej@tul-1x-dhcp013.studby.uio.no] has joined #bzr
=== orutherfurd [n=orutherf@dsl092-164-022.wdc2.dsl.speakeasy.net] has joined #bzr
=== pygi [n=mario@78-0-6-100.adsl.net.t-com.hr] has joined #bzr
corehostingno I tried "python setup.py install" (bzr-0.90.tar.gz)09:00
corehosting>> ImportError: No module named distutils.core09:00
corehostingwhats my fault?09:00
bwintonBasic:  You still there?  It finally finished with a "bzr: ERROR: [Errno 66]  Directory not empty"09:00
james_wcorehosting: you don't have distutils installed at a guess.09:01
datobut distutils come with python itself09:02
keiri don't understand the difference between merge-directive and send; do they both generate exactly the same output?09:02
corehostingphyton 2.4.2 is installed09:02
=== grimboy [n=grimboy@84.13.125.171] has joined #bzr
james_wkeir: a merge-directive is what bzr send sends.09:06
=== orospakr [n=orospakr@132.213.238.4] has joined #bzr
james_wthe merge-directive command just creates a merge-directive. I think send -o is equal to merge-directive09:07
jelmercorehosting: looks like it isn't included in the default python package on suse, maybe it's in python-dev or python-devel09:07
jelmercorehosting: or perhaps you need to run 'python2.4 setup.py install'09:08
jelmer(there may be an older version of python installed as well)09:08
corehostinghello jelmer   *g*09:09
keirjames_w, ok. it's a bit weird because merge-directive has a --mail-to, which appears exactly the same as send09:11
james_wkeir: I don't know if Aaron made it the same as send now, but it used to work differently.09:12
datokeir: merge-directive predates send. bundle and merge-directive have been combined into send.09:12
datokeir: and anyway, I don't know if you noticed, but merge-directive is a *hidden* command09:13
keiraaah, ok09:13
keirgreat09:13
keiri was about to suggest merge-directive should be deprecated09:13
corehostingjelmer: python-dev installed, now install bzr runs09:15
corehostingthanks @all09:15
BasicOSXbwinton: interesting, same problem with python 2.509:17
datohow... strange/inconvinient/lame09:17
=== synic [n=squish@pdpc/supporter/student/synic] has left #bzr []
dato(not having distutils installed with python)09:17
ubotuNew bug: #137335 in bzr "End configuration files with newline" [Undecided,New]  https://launchpad.net/bugs/13733509:28
bwintonBasic: Well, at least you know it's not a 2.4/2.5 thing...09:28
asabilhmm, anyone managed to use the bzr visual studio plugin ?09:30
BasicOSXbwinton: yep, testing with windoze now as well09:31
=== mw [n=mw@189.146.15.187] has joined #bzr
corehostingbye @all09:34
=== corehosting [n=ctrlprox@a81-14-225-28.net-htp.de] has left #bzr []
=== grimboy [n=grimboy@84.13.125.171] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
ubotuNew bug: #137348 in bzr "transport.ensure_base() fails for c: on windows" [Undecided,New]  https://launchpad.net/bugs/13734809:40
=== herzel [i=herzel@gateway/tor/x-7e029f58e1b88426] has joined #bzr
=== pygi [n=mario@78-0-6-100.adsl.net.t-com.hr] has joined #bzr
=== shirish [n=shirish@59.95.55.184] has joined #bzr
lifelessmoin10:48
james_wmorning lifeless10:48
keirlifeless, morning10:49
keirlifeless, i've been reading index.py10:49
keirlifeless, so a 'key' is a tuple of bytestrings10:49
keirand for a given index, the length of that tuple is fixed, but the bytestrings may have differing length, correct?10:50
lifelesskeir: right10:54
james_wis there a way to find out the executability of a tree entry without using _iter_changes to locate it?10:54
lifelesskeir: if you browse to http://people.ubuntu.com/~robertc/baz2.0/.bzr/repository/indices/10:54
lifelesskeir: you can see a number of live indices10:54
lifelessjames_w: yes, there's an API on tree to query for that10:54
james_wlifeless: I can't find it, any hints on the name?10:55
lifeless**executab10:55
lifeless*executab*10:55
james_w_comparison_data10:57
lifelessthats somewhat internal10:57
lifelessbut it will answer you10:57
lifelessis_executable()10:57
keirlifeless, these are only used for fast lookup, correct?10:57
keiris hashing the keys insane?10:58
james_wlifeless: I cannot find that for the life of me.10:58
james_wah, it's on working tree.10:58
lifelessjames_w: pydoc bzrlib.workingtree.WorkingTree10:59
james_wthat seems wrong to me. Is it a Windows thing?10:59
lifelessthats the interface of working tree10:59
lifelessjames_w: windows support makes it more complex10:59
lifelesskeir: not necessarily, but you would want to detect collisions10:59
lifelesskeir: also11:00
lifelesskeir: you want to be able to iterate the keys11:00
lifelesskeir: iter_all_entries()11:00
keirlifeless, yes, i see that11:00
lifelesskeir: so you can definately use hashing internally if that makes sense and you do it defensively and support the current public interface11:01
shirishguys I'm a simple checkout guy, I have used svn before this, just like in svn is there a way to find info. about a copy one downloads11:01
keirjust brainstorming, i realize this may not work: first bit is a linear list of keys11:01
james_wlifeless: it's on revisiontree as well, which I think should work for me. Thanks for the pointer.11:01
shirishlike one does svn info. something & it gives everything in nice order.11:01
keirnothing else11:01
lifelessshirish: 'bzr info'11:01
keirlifeless, then second part is similar to current format, but with fixed-length md5's to refer11:01
james_wshirish: there is bzr info, I'm not sure how the information compares though.11:02
shirishlifeless: I did try bzr info, but it doesn't give me full info.11:02
keirlifeless, depending on connectedness of the graphs, this could be faster/slower bigger/smaller11:02
lifelessshirish: I think you need to be more precise about what you want to know about11:02
james_wshirish: try info -v if you have a recent bzr.11:02
keirshirsh, what information from svn are you looking for?11:03
lifelesskeir: wouldn't it cause considerable double-dereference latency, and nearly double the index size ?11:03
shirishjames_w: that bzr info -v is cooler than svn info11:03
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
shirishkeir: I was looking for revision nos. & stuff like that.11:04
keirlifeless, i bet it would shrink it for most of the indexes i've looked at11:04
keirlifeless, with a 128 bit hash, you're looking at 16 bytes per reference11:04
keirlifeless, right now those keys are much longer than 16 chars11:04
shirishguys, another issue, like svn up is there, there is also bzr up, what is the difference between the two, simple language please.11:05
keirlifeless, and depending on the index size you may be able to get away with 64 bit hash if it's only one file11:05
keirer smaller11:05
lifelesskeir: current references are about 7 bytes11:05
keirlifeless, you are right about double deref11:05
lifelessfor a 4.5MB index11:05
keirah, right11:06
james_wshirish: there is also bzr revno for that information quickly.11:06
shirishjames_w: thanx for the heads up11:06
james_wshirish: as for bzr up I believe that it works in the same way on checkouts.11:06
=== bwinton [n=bwinton@mail.phantomfiber.com] has left #bzr []
lifelessfor a 200MB index - the largest I've seen, its 9 bytes11:06
james_wshirish: but I can't remeber svn very well.11:06
lifelesskeir: I can see you are starting to think through things - this is great11:07
shirishjames_w: as far as bzr updates to whatever the latest on repository, its good11:08
shirishbtw can you guys have a look at http://paste.ubuntu-nl.org/36374/11:08
shirishlook at line 12, it says Branch is out of date: missing 1 revision.11:08
lifelessshirish: if you used 'bzr checkout' to get the code, 'bzr update' will do what you want11:08
keirlifeless, ok. so if we can't seek (only readv on transports) how is there any way we can do better than now?11:08
james_wshirish: I think that means a bzr up is in order. I don't know though.11:09
lifelessshirish: if you use 'bzr branch', then 'bzr pull' or 'bzr merge' is what you will want to respectively mirror and merge other peoples code11:09
lifelessshirish: yes, you need to bzr up11:09
keirlifeless, what was the usecase you mentioned before where it required reading 200mb of index but should only need 64k?11:10
lifelesskeir: sure, consider a 16-way B-tree for example11:10
shirishlifeless: this is main, so no need of bzr pull, its needed only when one is taking stuff from branches.11:10
lifelesswith the node packing on disk having the root node at the front of the file11:10
keirlifeless, i guess it depends on what you need to access11:11
shirishguys, when I did bzr info -v how did it come to know I was missing one revision, does it do a compare between me & the remote repository to know the details?11:12
lifelessshirish: if you are grabbing someting from a branch for your trunk you should never use pull only merge11:12
lifelessshirish: yes11:12
lifelesskeir: well this is why it needs time and thought to do a great index layer11:13
shirishlifeless: I'm not contributing anything to that project other than checking out the build, seeing what's new, seeing if it breaks while building & reporting if any issues happen.11:13
keirlifeless, ok :) interesting stuff.11:14
lifelessshirish: then just bzr up is fine for you11:14
keirlifeless, 64k vs 200mb use case?11:14
lifelesskeir: righto - cosnider the mozilla full-history text index11:14
lifelesskeir: its a 200MB .tix11:14
shirishlifeless: thanx, btw there is bzr 0.90 out but why isn't it on gutsy?11:14
lifelessshirish: hasn't propogated yet11:15
lifelesskeir: .tix's are length-2 keys, with 2 key reference lists per node11:15
lifelesskeir: the way they are used is (fileid, revisionid) for the keys11:15
shirishlifeless: 0.90 seems to be out more than few days right?11:15
lifelessshirish: I presume thats rhetorical11:16
=== shirish goes to find out the meaning of rhetorical
lifelessits a question to which you know the answer already and are asking in order to make a point to the person you ask it11:16
lifelessits rather annoying11:16
shirishlifeless: I didn't know, honest11:17
james_wshirish: 0.90 was released a week ago.11:18
keirlifeless, ok, so they are (fileid, revid) -> (fileid1, revid1), (fileid2, revid2)11:18
lifelesskeir: more11:18
shirishjames_w: oh wow, so what's stopping it, any critical bugs or something?11:18
lifelesskey -> VALUE, [key_list1, key_list2] 11:19
shirishjames_w: I meant some major regressions or something new, which makes it unsuitable to release?11:19
lifelesskeir: key_list1 contains the per-file graph parents for key. Thats the graph that log FILENAME follows11:19
lifelesskeir: key_list2 is always either empty or has a single entry11:20
lifelesskeir: so []  - the text has not been delta compressed11:20
lifelesskeir: or [(fileid, revisionid)]  of the full text that the text has been delta compressed against11:20
james_wshirish: I believe it is that gutsy has frozen, so the process takes a little longer.11:20
keirlifeless, ok11:21
keirlifeless, i'm going to think about this for a minute11:21
lifelessok, I'm ready to give you the use case now :)11:21
shirishjames_w: right, but can't something like bzr have a freeze exception, this is kinda stuff that all developers would be looking forward to. a better tool.11:21
james_wshirish: I believe it might have a freeze exception, check launchpad. It doesn't mean that it goes in straight-away though.11:23
lifelesskeir: oh, and VALUE contains the byte offset and length in the .pack file of the record (whether it is full text or delta)11:23
lifelessshirish: #ubuntu-motu please at this point. This is the upstream development channel.11:23
keirlifeless, ok11:24
shirishlifeless, cool :)11:24
lifelesskeir: now the use case is 'bzr cat http://mozilla.org/bzr/trunk/ChangeLog'. This will need to do a number of index operations, starting with looking up the text for the inventory, which I'm going to gloss over11:25
lifelesskeir: and once it has that it reads the inventory data to get the fileid and revision id of the text it wants to construct - the fileid of 'ChangeLog' and the revisionid of the lsat change made to it.11:25
lifelesskeir: so then we query the .tix and follow the compression-tree upwards:11:26
lifelessnodes = [] 11:26
keiraah, ok11:27
lifelessnode = list(index.iter_entries([(changelog-id, last-modified-revid)] ))[0] 11:27
lifelessnodes.append(node)11:27
lifelesswhile len(node[3] [1] ):11:27
lifeless    node = list(index.iter_entries([node[3] [1] ] ))[0] 11:28
lifeless    nodes.append(node)11:28
lifeless# now nodes is a sorted list of compressed texts finishing with a fulltext11:28
lifelessand then we use the values in the nodes to calculate a readv (perhaps across multiple .packs - so perhaps multiple readvs), to get the fulltext and each delta and apply them to get the content of ChangeLog11:29
keirlifeless, i see. so it actually finds a series of diffs, then applys them11:29
lifelessright11:29
lifelessand thats using the second node-reference-list from the index11:29
lifelesswhich is where we cache that information for cheap access11:29
keirand what is in the packs?11:30
lifelessthe deltas and full texts11:30
lifelessso11:31
keiryes, i see11:31
lifelessthe mozilla .tix index, when its fully packed into a single pack, is 200MB11:31
lifelessbut the data we need to decide what to readv from that pack is probably < 10K11:31
lifeless(say 200 bytes * 50 delta hunks in a run)11:32
lifelessand on average < 5K11:32
keirbut if you know what parts to readv, don't you still have to linear scan from the start?11:32
keirfrom what i see with readv, you'd still have to read 100mb if one of the hunks was 100mb down the pack file (not the tix)11:33
lifelesskeir: linear scan from the start of what ?11:33
keiri am a bit confused about terminology11:33
lifelesskeir: readv only transfers the byte ranges asked for over the wire11:34
keir"the mozilla .tix index, when its fully packed into a single pack, is 200MB" <- are .tix files pack files? i thought packs were separate11:34
lifelessyou supply a vector of (offset, length) pairs and you get back an iterator of (offset, bytes)11:34
lifelesskeir: have a look at http://people.ubuntu.com/~robertc/baz2.0/repository11:34
keirlifeless, aah, right. i didn't read the readv manpage enough :)11:35
lifelesskeir: the pack-names file there lists the packs11:36
lifelesskeir: for each pack there are 4 indices: .six, .tix, .iix, .rix11:36
lifelessthats for signatures, texts, inventories and revisions11:36
=== yml [n=yml@put92-2-82-224-221-145.fbx.proxad.net] has joined #bzr
lifelesseach commit adds a single pack.11:36
ymlHello,11:36
keirlifeless, and 4 new indicies, ok.11:36
lifelessevery l0 commits 10 single-commit packs are combined to 1 10-commit pack11:37
lifelessevery 100 commits 10 10-commit packs are combined to 1 100-commit pack11:37
lifelessand so on11:37
keirok11:37
lifelessand 4 new indices are written every time a new pack is added, and the indices are removed when the pack is11:37
ymlbzr is dumping some very strange lines each time I run a command on the computer hosted by my provider.11:37
lifelessso for a given repository the 'text index' is the combination of all the .tix indices for all the packs listed in pack-names11:38
lifelessI think the CombinedGraphIndex is probably about right at the moment (but am completely open to being wrong on that).11:38
lifelessyml: pastebin or something please11:38
ymlHere it is an example: http://dpaste.com/18596/11:38
ymlgoodevning lifeless11:39
keirlifeless, thanks for the explanation. i am going to digest this a bit more11:39
lifelessyml: look in ~/.bzr.log11:39
lifelessyml: you are getting an IO error of some sort11:39
ymlshould I pastebin also?11:40
lifelessthe NotImplementedError is strange11:40
lifelesskeir: no probs11:41
ymlhere it is: http://dpaste.com/18597/11:41
lifelesskeir: but can you see now - there is a 200MB .tix, but we only want a tiny fraction of the total data11:41
keirlifeless, yes11:41
keirlifeless, we only want to extract the relevant ranges in the packs11:42
lifelessyml: file a bug please with that 18597 paste11:42
lifelesskeir: yes, the goal of the index is to tell us what bytes in the packs are interesting for various use cases11:42
ymlI will do this . what should be the title?11:43
lifelessyml: make one up11:44
ymlok thank you lifeless11:44
=== shirish [n=shirish@59.95.55.184] has left #bzr []
lifelessok, deep hack time11:45
=== yml [n=yml@put92-2-82-224-221-145.fbx.proxad.net] has left #bzr ["Kopete]

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