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

NfNitLoopYeah, IIRC bzr-svn will create consistent changeset IDs.12:03
NfNitLoopso you could even each do your own checkout from the svn source.12:03
NfNitLoop(Not sure how one handles sharing between svk instances... but that's probably just due to ignorance on my part.)12:03
=== pygi [n=mario@83-131-22-165.adsl.net.t-com.hr] has joined #bzr
=== Rotund [n=rotund@d28-101.rb2.lax.centurytel.net] has joined #bzr
NfNitLoopHmm.  It looks like bzr-svn can't handle HTTP authentication for a svn repo.12:19
NfNitLoopUnless I'm missing something.    Why do I always have to be the corner case?  :p12:19
pygi:D12:20
NfNitLoopOoh, nope, found a bzr bug.12:23
beunoNfNitLoop, 0.90 has that problem, 0.18 should work fine12:24
beunoat least I've used http auth since 0.1212:24
=== mthaddon [n=mthaddon@canonical/launchpad/mthaddon] has joined #bzr
NfNitLoopHmm, 0.90 was using urllib, so I installed pycurl.12:28
NfNitLoopNow it's complaining that my cert is invalid.  :p12:28
NfNitLoop(self-signed)12:28
lifelessurllib is fine12:29
lifelessNfNitLoop: for svn12:29
lifelessNfNitLoop: use the svn client to authenticate12:29
lifelessNfNitLoop: then it will work, nothing to do with urllib/pycurl12:29
lifelessbeuno: ^ FYI12:29
NfNitLoopHmm.   how so?12:30
NfNitLoopI'm doing bzr branch, how would I use the svn client to auth?12:30
beunoaaah, right, I use http auth directly to bzr, don't use svn at all  :D    thanks lifeless for the info though12:32
NfNitLoopbeuno: do you know what he's talking about?12:32
NfNitLoopHow do I auth with the client?12:33
NfNitLooplifeless: or do you mean do 'svn co', then use bzr on the checked-out copy?12:33
NfNitLoopthat's not really what I want.  I want a native bzr branch. :)12:33
lifelessNfNitLoop: right12:33
lifelessNfNitLoop: 'svn ls URLYOUWANTTOUSEWITHBZR'12:34
NfNitLoopstill not quite following.12:35
NfNitLoopsvn list isn't going to get me a checkout. :p12:35
NfNitLoop(or branch)12:35
=== jml [n=jml@ppp121-44-221-92.lns1.hba1.internode.on.net] has joined #bzr
lifelessNfNitLoop: it will cause svn to authenticate12:40
lifelessand cache the credentials for libsvn to use12:40
lifelesswhich bzr-svn uses12:40
lifelessyou could actually try doing what I suggest you know12:40
lifelesshmm, I'm grumpy today; excuse me and I'll get breakfast - blood sugar++12:41
=== beuno hands lifeless a donut
beunoirc is so cheap...  :p12:42
NfNitLooplifeless: aah.  well I suspect it still wouldn't work since it's barfing on my SSL cert at the moment.12:48
NfNitLoopbut if authentication fails I'll give that a try, thanks.12:48
=== arjenAU [n=arjen@mysql/community/arjenAU] has joined #bzr
=== poolie [n=mbp@ppp112-44.static.internode.on.net] has joined #bzr
=== marplatense [n=marplate@252-58-231-201.fibertel.com.ar] has joined #bzr
=== marianom [n=marianom@ubuntu/member/marianom] has joined #bzr
=== marianom [n=marianom@ubuntu/member/marianom] has left #bzr []
NfNitLooplifeless: Hmm.  svn ls <url> works and has saved my auth.   bzr branch <url>  still fails saying:  Unable to handle http code 401: expected 200 or 404 for full response.01:17
NfNitLoopOh, 401.  *doh*01:17
NfNitLoopNo, yeah, that's authentication failed.01:17
NfNitLoopI thought it was 404 for a sec.  :p01:17
=== Rotund [n=rotund@d28-101.rb2.lax.centurytel.net] has joined #bzr
lifelessjelmer: ^01:24
=== abentley [n=abentley@bas8-toronto63-1088754407.dsl.bell.ca] has joined #bzr
jelmerNfNitLoop: please try prefixing with svn+01:28
jelmerbzr branch svn+<URL>01:29
NfNitLoopI did that and got the same error...01:31
NfNitLoopthough I jsut tried  bzr svn-imoprt svn+https://...01:31
NfNitLoopand it's... doing something.01:31
NfNitLoopOh, nope, failed.  "Undefined tunnel scheme: https"01:31
NfNitLoop(This is all with bzr 0.90 and bzr-svn 0.41, btw.)01:32
jelmerplease try the current 0.4 brancxh01:33
jelmeris this a public svn repository?01:33
NfNitLoopNo.01:34
NfNitLoopIt's using HTTP Auth & SSL.01:34
jelmerthat should work ok in current 0.401:34
NfNitLoop0.41?  Or the dev branch?01:35
jelmerthe dev branch01:35
NfNitLoopok, I'll download that and give it a shot.01:35
jelmerI've fixed the handling of svn+https://01:35
NfNitLoopaaah.01:35
NfNitLoopcool. Thanks!01:35
=== igc [n=igc@ppp59-167-96-213.lns3.bne1.internode.on.net] has joined #bzr
=== yminsky [n=yminsky@user-0cevcqv.cable.mindspring.com] has joined #bzr
NfNitLoopjelmer: It's doing something now.  It didn't like that I had it in a shared repo directory, so I'm doing it outside of there.01:44
NfNitLoopIs it not able to use shared repos?01:44
lifelessit uses an unsupported repository format01:44
lifelessthe nested trees one01:45
lifelessif your repo format is in that format it will work, but you can't interoperate with most bzr trees01:45
NfNitLoopah, I could create a shared repo in that format?01:46
NfNitLoopThat's good.  This could get large.  :)01:46
jelmeryes, 'bzr init-repo --dirstate-with-subtree'01:46
jelmerhey, looks like tortoisehg is based on tortoisebzr01:49
spivGood morning.02:00
jelmer'morning02:01
NfNitLoopHmmm.  I use the typical svn trunk/ branches/ tags/ root.  Should I be branching the root, or trunk?02:03
lifelessigc: morning02:05
lifelessspiv: morning02:05
lifelessspiv: visiting?02:05
lifelessigc: ring my mobile if you would, lets talk commit02:05
igcshall do - give me a few more minutes to scan emails02:06
jelmerNfNitLoop: You should be branching /trunk or use svn-import to import the repository (which will splitup into multiple branches)02:06
spivlifeless: yeah, I'll head off fairly soon.02:08
NfNitLoopOoooh.  *lightbulb*    :)02:08
=== poolie [n=mbp@ppp112-44.static.internode.on.net] has joined #bzr
=== keir_ [n=keir@76-10-155-93.dsl.teksavvy.com] has joined #bzr
NfNitLoopSo it's plugging away at my very large svn repo.   and in the meantime, in another dir, I'm trying to check out a tiny test repository.02:16
NfNitLoopif I try to branch /trunk, I get ...02:16
NfNitLoopKeyError: 'readme.txt'02:16
NfNitLoopand if I try to svn-import the root, I get ...02:17
NfNitLoopbzr: ERROR: Invalid revision-id {None} in SvnRepository(my repo URL)02:17
jelmerwhich bzr-svn branch are you using?02:19
NfNitLoopthe 0.4 branch.02:19
NfNitLoop  parent branch: http://people.samba.org/bzr/jelmer/bzr-svn/0.4/02:19
jelmerhmm, that should be ok02:20
=== jelmer runs bzr-svn selftest just to make sure nothing is broken atm
jelmerhey, find_previous_heads() has been deprecated?02:21
NfNitLoopI wonder if my little test repo is somehow a "special" (ie: foobar'd) case.02:21
=== jamesh [n=james@canonical/launchpad/jamesh] has joined #bzr
jelmerbzr-svn has worked ok against a large number of repositories with all sorts of weird changes in them02:22
jelmerit's been a while since I've come across a pull bug02:23
NfNitLoopthe 'readme.txt' it's complaining about was checked in in the first revision, along with the dirs trunk/ branches/ and tags/02:24
NfNitLoop(I notice that is not the case in my larger... seemingly working repo)02:24
pooliehi jelmer02:25
poolielifeless, i have no objection to removing get_deltas02:25
jelmerNfNitLoop: if the test repo doesn't contain any private data, can you perhaps send me a svn dump of it?02:25
jelmer'morning poolie02:25
igcmorning poolie02:26
NfNitLoopjelmer: Sure.02:26
NfNitLoopbetter yet, I'll try to reproduce it.02:27
NfNitLoopand send you that, for a smaller case.02:27
poolieigc, hi02:27
jelmerNfNitLoop: cool, thanks! My address is jelmer@samba.org02:27
=== mw is now known as mw|out
=== kanhaiya_kk [n=kanhaiya@freemap.in] has joined #bzr
=== jml_ [n=jml@203-113-250-169-static.TAS.netspace.net.au] has joined #bzr
=== BasicOSX [n=Basic@fortress.tanners.org] has joined #bzr
lifelesspoolie: then send a bb:approve :)03:07
=== jml_ is now known as jml
pooliei thought i read an rfc about it not a patch03:07
lifelesskeep reading03:07
lifeless:)03:07
=== wedderburn [n=andrew@ppp194-10.static.internode.on.net] has joined #bzr
pooliethis is your thread about knits and get_deltas()?_03:08
pooliei see03:09
pooliei'm reading it03:13
wedderburnhello all, i have a rather cryptic message spat out when i pushed a new revision of something - "ERROR: Can't rename /srv/sm-ng/push-branches/00/00/0c/bf/.bzr/repository/lock/wbei8a3n94.tmp to /srv/sm-ng/push-branches/00/00/0c/bf/.bzr/repository/lock/held: /srv/sm-ng/push-branches/00/00/0c/bf/.bzr/repository/lock/held already exists" does anyone have a idea what it means, thanks03:15
pooliewedderburn, it's failing to acquire a lock03:16
poolieum, it's strange that you're getting this rather than just 'waiting for  lock'03:16
pooliejml, spiv: ping?03:16
jmlpoolie: hi03:17
jmlpoolie: wassup?03:17
pooliejml, can you look on the sm at the directory wedderburn talks about03:17
wedderburnthanks03:17
pooliewedderburn, did bzr just stop after giving that error?03:17
pooliecan you try it again with03:18
pooliebzr -Derror push .....03:18
jmlpoolie: alas no, I don' t have access to that yet.03:18
pooliereally03:18
wedderburnpoolie: yes bzr stopped after the erro03:18
wedderburnr03:18
wedderburni'll try the command now and tell you what it spits out03:19
jmlpoolie: yeah, it's in the works though.03:21
wedderburnpoolie: heres what it spat out http://andrew.wedderburn.googlepages.com/bzr-error.txt03:22
pooliethanks03:28
pooliespiv, the traceback shows we're raising this because we don't understand what the sftp error means03:32
pooliedid anything change with the sftp server there?03:32
jmlyes.03:32
pooliejml, does that error message look like something you wrote?03:33
jmlpoolie: it could well be.03:34
spivI guess bzr+ssh:// instead of sftp:// might dodge this error.03:34
spivThat error message comes straight out of twisted.vfs.backends.osfs I think.03:36
spivWhere it raises AlreadyExistsError03:36
spivWhich the sftp adapter should turn into a FX_FILE_ALREADY_EXISTS in the SFTP protocol.03:37
pooliewedderburn, could you try substituting bzr+ssh for sftp in the url please03:40
lifelessI thought we had acceptance tests for bzr's treatmnet of the sftp behaviour03:40
lifelessin lp03:40
poolieyes, but apparently the lp behaviour has changed03:40
pooliethis is a different misbehaviour to the one you might be thinking of03:40
jmllifeless: we do.03:41
wedderburnpoolie: i'll do that now03:41
lifelesspoolie: the ExistingContent review comment03:41
lifelesspoolie: I'm confused, when I look at the patch without the trimming the fmt string is quite clear to me03:42
lifelesspoolie: so I'm not sure - are you asking me to duplicate the format string into the doctstring?03:42
jmlpoolie: the lp behaviour changing should be caught by lp acceptance tests.03:42
lifelesspoolie: I mean, what comes to mind is 'This is an exception raised when the content being inserted is already present'03:42
lifelesspoolie: and that doesn't seem helpful.03:42
poolieyou could change the docstring to just a comment03:43
poolieit seems like a very strange docstring at presentt03:44
wedderburnpoolie: Unable to obtain lock lp--1216787156:///lock03:44
wedderburnheld by andrew.wederburn@gmail.com on host andrew-laptop [process #10620] 03:44
wedderburnlocked 22 hours, 50 minutes ago03:44
wedderburnWill continue to try until 02:47:2603:44
pooliewedderburn, thanks03:44
poolieassuming that process is not still running03:44
pooliejust use bzr break-lock $url03:44
wedderburnok03:44
lifelesspoolie: I'll make it a comment then. Though I thought you wanted introductory-api notes in docstrings, which is why I added it (most exceptions dont have docstrings at all)03:44
poolieon either sftp or bzr+ssh03:45
poolieiirc the thing i said we should document the introduction of was rpcs03:45
lifelessoh, I took it to be all api's03:46
wedderburnpoolie: and now?03:47
poolienow you should be fine to push03:48
wedderburnk03:49
wedderburnpoolie: using the sfpt://... ?03:50
poolieeither way03:50
pooliebzr+ssh will be a bit faster03:50
wedderburnpoolie: :) it works now thanks03:51
=== pete__c_ [n=pete@015-806-741.area5.spcsdns.net] has joined #bzr
pooliethanks for reporting it03:51
wedderburn:)03:52
wedderburnwell im off thanks for all the help everyone03:52
=== wedderburn [n=andrew@ppp194-10.static.internode.on.net] has left #bzr []
=== keir_ is now known as keir
spivpoolie: is it ok with you if I merge http://bundlebuggy.aaronbentley.com/request/%3C20070903164726.GA22003@steerpike.home.puzzling.org%3E ?03:59
=== jml_ [n=jml@203-113-250-169-static.TAS.netspace.net.au] has joined #bzr
lifelessdoes it fix the bugs with tag branhces on initial pull04:00
lifelessthat is does it stop using the tarball hack ?04:00
spivIt stops using the tarball hack.04:00
lifelessthen I'm pro it going in noweth04:00
lifelessbut today would be the latest I think04:00
spivI don't know about the tags issue; should there be an automated test written for that?04:00
spiv(It stops using the tarball hack on the client entirely; it will fallback to VFS operations)04:01
=== mkanat [n=mkanat@c-71-202-202-106.hsd1.ca.comcast.net] has joined #bzr
mkanatIs there a machine-readable output that would consistently allow me to tell that a plugin is installed?04:02
lifelessbug 129717 I think04:02
ubotuLaunchpad bug 129717 in bzr "Bizarre error when checking out from bzr server mode" [High,Triaged]  https://launchpad.net/bugs/12971704:02
mkanatI don't necessarily want to rely on "bzr plugins" since that text could change.04:02
lifelessmkanat: python -c 'import bzrlib.plugins.pluginname'04:02
mkanatlifeless: Thank you. :-)04:02
pooliespiv, thanks for that04:02
igclifeless: looking at http://bundlebuggy.aaronbentley.com/?selected=pending&unreviewed=n, have the manually tracked ones been merged yet? If not, do we want them in 0.91?04:03
lifelessigc: we're in freeze04:04
lifelessigc: so everything needs poolies magic pixie dust04:04
NfNitLoopjelmer: Hmmm.  checking out my big repository fails.   It locks up my box for a while, while the HD thrashes, then it just says "Killed" and stops.   The box only has 512M RAM.  How RAM intensive is it?04:04
lifelesspoolie: can I merge the one you approved for 0.91 ?04:04
pooliei approved a few...04:04
igcsure. I'll take that as a "no" to not yet merged.04:04
igcall up, we have 10 changes approved or conditionally approved04:05
jelmerNfNitLoop: yes, there's a leak in the python-subversion bindings (see bug 54253)04:06
ubotuLaunchpad bug 54253 in bzr-svn "Excessive memory usage in bzr-svn" [Undecided,Confirmed]  https://launchpad.net/bugs/5425304:06
jelmerNfNitLoop: but you can restart the process if you're importing to a shared repository04:06
mkanatlifeless: And is there a way to get from bzr the path to its default python interpreter?04:06
pooliefor http://bundlebuggy.aaronbentley.com/request/%3C1187769804.17572.104.camel@localhost.localdomain%3E,04:06
lifelessmkanat: I think bzr --version will show that04:06
pooliei agree with john's comments04:07
mkanatlifeless: Yes, it does! :-)04:07
mkanatlifeless: Thank you. :-)04:07
pooliei guess there is no small way to address them?04:07
igcpoolie: fyi, one change I had hoped we'd see in 0.91 is this one: http://bundlebuggy.aaronbentley.com/request/%3Cfaekm0$qvu$1@sea.gmane.org%3E04:10
lifelesspoolie: I will fix that one, haven't yet.04:11
ubotuNew bug: #137668 in bzr "bzr doesn't understand new 'directory already exists' message from codehosting sftp server" [Undecided,New]  https://launchpad.net/bugs/13766804:11
NfNitLoopjelmer: is there any way to do it in small chunks?04:11
pooliehttp://bundlebuggy.aaronbentley.com/request/%3C1187769900.17572.106.camel@localhost.localdomain%3E04:11
pooliesame, ok to merge with john's change04:11
NfNitLoopjelmer: instead of waiting for it to get killed?  :p04:11
igcabentley approved it but I wanted some changes ...04:11
igcwe haven't heard back from Fabio though and it would be a shame to see it fall into limbo because no one was driving it04:13
igcpoolie: any thoughts?04:13
lifelessigc: that patch is broken04:13
lifeless+                filtered_list.append(f)04:13
lifeless+        except:04:13
lifeless+            invalid_filenames.append(f)04:13
lifelessbare except: it will stop ctrl-C04:13
igclifeless: can you explain further?04:14
lifelessctrl-C at the right time will make the path being sorted into an invalid path, even if its valid, and bzr will continue rather than exiting04:15
lifeless'except:' is verboten04:15
igcAhhh04:15
lifelessits only *ever* ok when there is a 'raise' immediately after it.04:15
poolieinteresting:04:15
pooliembp@grace% bzr merge http://bundlebuggy.aaronbentley.com/download_patch/%3C1188888611.6248.3.camel@nemo%3E04:15
poolie M  NEWS04:15
poolieAll changes applied successfully.04:15
pooliebzr merge   1.08s user 0.09s system 35% cpu 3.282 total04:15
pooliembp@grace% bzr di04:15
=== sri [i=[k1wKiGW@onyx.spiritone.com] has left #bzr []
lifelesspoolie: can I merge http://bundlebuggy.aaronbentley.com/request/%3C1189031297.27465.2.camel@lifeless-64%3E for 0.9104:22
=== Kamping_Kaiser [n=kgoetz@gnewsense/friend/kgoetz] has joined #bzr
pooliewith those doc changes04:23
poolieyes04:23
lifelessthanks04:23
pooliethanks for writing it :)04:23
=== jamesh_ [n=james@canonical/launchpad/jamesh] has joined #bzr
mkanatlifeless: Ah, I have a proooooblem. :-)04:29
mkanatlifeless: I need to know if a plugin is installed by the functionality it offers, not by its name.04:29
mkanatlifeless: That is, because the name can be anything the directory is called, and I need some reliably way of determining if the functionality is available.04:29
mkanat*reliable04:30
lifelessmkanat: no04:30
lifelessmkanat: plugins have canonical names04:30
lifelessplugins depend on other plugins by name04:30
lifelessits not installed if its not under its official name04:30
mkanatlifeless: Hrm.04:30
mkanatlifeless: And that's true for xmloutput?04:31
mkanatlifeless: bzrtools I have no problem with. :-)04:31
mkanatThat will always be called bzrtools. There's almost always a distro package for it, too.04:31
lifelessmkanat: this is the contract for bzr pluigns04:32
lifelessif someone does something different they haven't isntalled the plugin correctly04:32
=== ion [n=ion@70-58-119-250.phnx.qwest.net] has joined #bzr
mkanatlifeless: Okay.04:33
lifelessI mean, if I put bzr on my path as 'bzr-temp-copy'04:33
lifelessyou can't be expected to figure that out04:33
lifelessthis is the same problem basically04:34
mkanatHahaha. :-) Okay. :-)04:34
lifelessgiven you want to be able to use a command04:35
lifelessjust run 'bzr xmloutput'04:35
lifelessand if you get an error show the user the output from bzr04:35
mkanatWell, that particular plugin doesn't provide a command.04:35
lifelessit provides options though04:35
mkanatBut I'm using the import method, that works fine. :-)04:35
mkanatYeah, it does.04:35
lifelessand if its not installed the option will error04:35
mkanatJust so you know what I'm doing, I'm writing tests that I have to skip if bzrtools and xmloutput aren't installed.04:36
mkanat(But from another language.)04:37
lifelessok04:38
=== Verterok [n=Verterok@184-220-114-200.fibertel.com.ar] has joined #bzr
=== jml_ [n=jml@ppp121-44-221-92.lns1.hba1.internode.on.net] has joined #bzr
=== NfNitLoop [i=codyc@cpe-70-112-28-217.austin.res.rr.com] has joined #bzr
=== Rotund [n=rotund@d28-101.rb2.lax.centurytel.net] has joined #bzr
=== ollie [n=orutherf@dsl092-164-022.wdc2.dsl.speakeasy.net] has joined #bzr
mkanatBTW, <3 bzr, guys. :-)05:24
mkanatEvery time I have to use CVS or some other crazy VCS, I wish it was just bzr.05:25
NfNitLoopmkanat: y'know, bzr can act as a front-end to other VCSes.  :)05:25
NfNitLoop(I'm playing with bzr-svn this evening.)05:26
mkanatNfNitLoop: Cool. :-)05:26
mkanatNfNitLoop: Well, see...I'm the author of a library that interfaces with VCSes. :-)05:26
mkanatSo I have to actually *use* them. :-)05:26
NfNitLoopDoh.  :p05:26
mkanatI thought bzr was kind of hard to understand for newbies, until I tried git. :-)05:27
=== jml_ is now known as jml
NfNitLoopmkanat: Yeah...  I tried out several DVCSes a while back...05:28
NfNitLoopI think I started with gnu arch.05:28
NfNitLoopit seemed...  tedious.05:28
mkanatWow. :-)05:28
mkanatYeah, I'd imagine.05:28
mkanatI don't anybody really uses Arch anymore.05:28
NfNitLoopYeah.  It was just the one I'd heard of.05:28
NfNitLoopso I started with it.05:29
mkanatYeah, as far as ease of use and sensible, complete implementation of features, bzr is the best one I've used.05:29
NfNitLoopanyone:  How do I remove a lock on a shared repository if the process that created the lock has died?   is it safe to rm -r .bzr/repository/lock/  ?05:29
jmlNfNitLoop: bzr break-lock05:30
NfNitLoopjml: thanks.  I figured there'd be some command.  :)05:30
NfNitLoopjelmer: Doh.   Yeah, resuming from a shared repo didn't work too well.   :p05:33
NfNitLoopjelmer: bzr: ERROR: exceptions.KeyError: 'design'  (the name of a folder in the repo)05:33
abentleylifeless: pong05:48
abentleyspiv: I'd prefer to merge the reconcile fix first.  I don't want to break fetch without providing a way to fix fetch.05:50
lifelessabentley: ok, I will do a revision-index cross check patch06:05
abentleyWow, you really have a hate on for RevisionParentsProvider.06:05
lifelessheh, I don't think I would have put it that way06:06
lifelessbut I don't think we should add additional code to work around other code that we should have being absent06:17
lifelessand for things like check/reconcile on a remote repository this is clearly going to be doing much more work than we want06:18
lifelessa$ rm -rf .bzr && bzr --no-plugins  init --experimental && bzr --no-plugins add > /dev/null && time ~/source/baz/repository/bzr --no-plugins  commit -m "Initial commit"  -q06:24
lifeless06:24
lifelessreal    2m12.203s06:24
lifelessthats annotation-less packs06:24
lifelessuser    1m58.647s06:24
lifelesssys     0m6.256s06:24
lifelessI'm aiming for 1m1206:24
lifelessso 60 seconds to go06:24
abentleyThis is for moz?06:25
lifelessyup06:25
lifeless550MB of source, 55K files06:25
=== uws [n=mathilda@213.207.93.150] has joined #bzr
abentleyI suppose delta generation time doesn't come into play at all for the initial commit?06:26
lifelessnot at all06:26
lifelessunless we were to do deltas-against-NULL06:26
abentleyWhich should be fast-pathed.06:26
lifelessso initial commit is great for finding constant factors that will affect all commits06:27
lifelesslike zip overhead06:27
lifelessand api friction06:27
lifelessin should be only slightly slower than for path in paths: compress(path)06:27
keirlifeless, i'm pretty sure i know how to build a graphindex nicely now. compressed and tightly encoded and spatially coherent.06:27
lifelesss/in/it/06:27
lifelesskeir: thats excellent news. Care to describe it in a mail to me/the list ?06:28
keiryes06:28
abentleyYeah, I was a little worried about your earlier talk of removing get_deltas, but then I realized it's not what I'm using to get matching blocks.06:28
lifelessabentley: yah, that why I was pinging in fact, but Ifigured it out06:28
keirlifeless, it's going to take me some time to write up, but absolutely. there are a couple little things i have to think about, but hopefully i'll have a description ready before tmrw night06:28
lifelesskeir: cool. Don;t worry about those things- I mean do worry, but don't block on documenting your thoughts, because perhaps I can offer some feedback that will help you with them06:29
abentleyI was expecting Xdelta was going to go into pack repos, but I haven't heard anything on that front for some time.06:29
lifelesskeir: also tomorrow is a public holiday for me, so you may not hear back till my monday - but it won't be me ignoring you :)06:30
lifelessabentley: IIRC there was some performance issue there.06:30
abentleyOreilly?06:30
lifelessabentley: and open questions about bytes vs lines as the delta form06:30
lifelessdidn't john say xdelta application was slower due to bytecode interpretation or something?06:30
abentleyI thought it was creaming MPdelta, which was creaming knit in turn.06:31
lifelessanyhow, I'm happy to support a few pack repository versions if we can deliver something moderately high performing in the short term and rev it - getting past the current 'you are too slow kthxbye' is the immediate priority06:32
lifelessnot that I want to do that06:32
lifelessjust that I think its ok06:32
abentleyI am okay with that also.06:33
abentleyBut I would rather have Xdelta or MPdiff than knit.06:33
abentleyI'll talk to John.06:34
lifelesswhy is mpdiff faster than knits ?06:35
lifelessis it faster in both directions, and does it need more or less data on average to construct a text (how do full-texts fit in etc)06:36
lifelessif this is already on-list thats fine06:36
abentleylifeless: the mpdiff text reconstruction algorithm doesn't generate intermediate texts, and never inserts in the line list, only appends.06:41
abentleyI don't know whether it's faster or slower for creating the mpdiff.06:42
abentley"more or less data" is tricky to answer.  More revisions, less data in each revision.06:43
poolielifeless, i'm confused - the 'implement chunked encoding' patch is not yet approved06:43
lifelesspoolie: thats not he patch under discussion06:43
lifelesspoolie: so indeed, you are confused :)06:44
lifelessabentley: ok; and presumably this no-insertion behviour is hard to do for knits06:45
keirlifeless, ok so here's the short version of what i'm thinking06:45
abentleylifeless: You just have to massage the offsets more.06:45
ubotuNew bug: #137681 in bzr "bzr: ERROR: Unable to delete transform temporary directory" [Undecided,New]  https://launchpad.net/bugs/13768106:46
keirlifeless, there are three parts to a graphindex. 1) index preamble (an index to the index) 2) the index, which lets you map from string key -> integer hash, and also contains the values 3) the graph store, which is just like the current storage scheme, but the keys are entirely ommitted.06:46
abentleyBut what I really dislike about knits is they don't properly delta the final newline, and screw up attempts to extract matching blocks.06:46
abentleyYou have to extract the fulltext to get the matching blocks out.06:47
keir1) is a lzw'd or other streaming compressed index (just like in a book) into the 'chunks' of the index.06:47
abentleyThey also don't provide an indication of the number of lines in the file.06:48
keir2) is a series of 'chunks' each indepently lzw'd,  which contain key->hash,val_len,val ...06:48
keireach 'chunk' in 2) is the same size. because of how lzw works, we can still make each chunk mostly the same size06:48
keirthen 3) is just a list of the edges as straight up offsets; the id of a key is just the byte offset in section 3) of that node06:49
keirsection 3 is toposorted, such that the enumeration of the hashes corresponds to the toposort of the keys06:49
keirthis has a variety of nice properties for traversing the graph06:50
lifelessabentley: these are all good points.06:50
keirthere is some debate on whether to include the values in 2) or 3). in 2), the keys will be compressed; but if they are in 3), then if you only care about the values it traversal, you get them for free without having to re-query the index for each key06:51
lifelessabentley: I'd be happy to see packs using mpdiffs given them. Its not top of my priority list (my time on bzr at the moment is really focused on helping out with perf - I'm not in the bzr department @ canonical these days)06:51
abentleylifeless: I am happy to ride my hobbyhorse into pack land :-)06:52
lifelessabentley: and while they will clearly help with performance, I'm currently tackling things surrounding the delta layer rather than the deltas themselves :)06:52
keirthen there is the debate on how big to make the chunks.06:52
abentleylifeless: is revno 2744 current?06:53
lifelesskeir: this is sounding very interesting; An email would be much easier for me to digest as I'm deep in commit's guts at the moment and I'll need to look at this later06:53
keirlifeless, sure06:54
lifelessabentley: pushing06:54
keirlifeless, there is some measurements i need to do regarding lzw tradeoffs; i'll do those now then write it all up06:54
lifelessabentley: (its not, but the changes are mainly merges of other branches)06:54
=== tchan [n=tchan@lunar-linux/developer/tchan] has joined #bzr
lifeless rm -rf .bzr && bzr --no-plugins  init --experimental && bzr --no-plugins add > /dev/null && time ~/source/baz/repository/bzr --no-plugins  commit -m "Initial commit"  -q06:55
lifelessreal    2m2.092s06:55
lifelessuser    1m48.035s06:55
lifelesssys     0m5.564s06:55
keirlifeless, one last question: how big do you think it's reasonable to make the 'minimum size read chunk'?06:56
lifeless4K? thats a disk cluster isn't it ?06:59
keirok, but if you're roundtripping, is't something like 32k more reasonable? if we assume people are on broadband...07:00
lifelesswell07:00
lifelesstransport.get_recommended_page_size() might be your friend :)07:00
keirhmm, but the indexes will have a block structure which is independent of the transport07:01
keirso we'll need to find a reasonable middleground.07:01
lifelessso07:01
lifelessmore data -> more processing07:01
lifelessless latency impact07:01
lifelessso when there is low latency you want low processing07:02
lifelessand when there is huge latency we're willing to spend more cpu07:02
lifelessif you were to (say) have a 4K page in the index, which must be entirely read if read at all07:02
lifelessthen you can do ceiling(recommended_page_size/4k) * 4k07:03
lifelessto get the amount to read07:03
keiryeah, ok07:03
keirthe problem is that if you're compressing blocks, you don't win much on 4k07:03
keiryou really want > 16k07:03
lifelesswe win plenty on 200 bytes in knits07:03
keirreally!07:03
keirok07:03
keirnevermind then, i'll make it a knob07:04
lifeless44 bytes is the break-even for libz07:04
keirand libz is lzw?07:04
lifelesslzw78 IIRC07:04
lifelessmight be 77. I dunno offhand, check the library :)07:04
lifelessso for compression we win on entropy in the data07:05
keirok. i need the following thing for implementation: given a large string, compress until your compressed size is N bytes, then terminate and tell me how much of the source string you chomped, and give me the compressed string07:05
keirlifeless, you mean we win on lack of entropy07:05
lifelessthe amount we win and the entropy are lnked :)07:05
lifelessanyhow, that API is a problem for all compressors I can think of07:06
keirbecause i'm a C loser, i want to go off and code it in C by using an existing lzw algo07:07
lifelessevery compressor API I've seen has internal state for the current symbols that have not yet selected a terminal representation07:07
lifelessthis state is cleared by calling flush()07:08
=== marplatense [n=marplate@252-58-231-201.fibertel.com.ar] has left #bzr []
lifelesswhich in pathological cases can output 1/2 the already processed input IIRC07:08
lifeless(as the longest match-to-date)07:08
lifelessparticularly for dictionary compressors07:08
keirwait, but doesn't lzw's dictionary get built implicitcly?07:08
keirso it's never put directly in the output stream?07:09
keirso you can just 'stop' compressing at any stage?07:09
keir(i haven't implemented it for some years...)07:09
lifelesswell. It would be really nice not to require C; that keeps us more portable. C as optimisation - Great!. C as requirement - if we have too we have too, but do we have too ?07:09
lifelesskeir: the dictionary is built from the symbols processed07:09
lifelesskeir: say we compress AAAAAA07:09
lifelessfirst symbol A - its a terminal, output it07:09
abentleykeir: We were all C losers at one point or another.  Remember tla, lifeless?07:10
lifelessnext symbol A - its a hit for A, keep it, next symbol A, output reference-to-first A, then A.07:10
lifelessnext symbol A, hit for A, next symbol A, hit for AA, next symbol A, output reference to AA, then A07:10
lifelessthis ummary is wrong, I'm just demonstrating that there are things that are not yet output, and the number of bits that have tobe output to represent them is determined by the compressor state07:11
lifelessthat is - its eaten the input, but not output it yet.07:11
keirah yes07:12
lifelessabentley: oh yes.07:12
lifelessabentley: 2753 is pushed btw07:12
keirok, so if i hack lzw itself, it's fine because i can estimate the current compressed size if we were to terminate07:12
abentleylifeless: tx07:12
keirlibz is zlib? i'm not sure how to get at a lzw compressor in python07:14
abentleyUm, is it pushed to the packs version of your branch?07:14
lifelessabentley: yes, not to the knits version yet07:16
lifelessI'll ssh in and clone it across to knits, one sec07:17
spivkeir: Yes. http://docs.python.org/lib/module-zlib.html.07:17
=== srid [n=srid@unaffiliated/srid] has joined #bzr
lifelesskeir: yes, but see above - requiring C is undesirable. You can achieve a version of this without requiring C though, (just add until a page size is within some figure, then flush, and accept slack space)07:20
keiryeah, that's the plan07:25
keirso it looks like you get smack on 0.2 compression ratio for 4k, 16k, 32k blocks07:26
keirat least for rev id's07:26
keiri'm out for tonight but i'll write this up tmrw morning07:26
lifelesshttp://www.smh.com.au/news/national/chaser-duo-held-over-motorcade-stunt/2007/09/06/1188783378804.html07:27
lifelesskeir: thanks!07:27
igclifeless: re your changes to test_versionedfile.py just merged, it looks like you have a duplicate routine name - test_add_lines_nostoresha. I gather that's the one test and it got duplicated by a merge maybe?07:48
igcmy merge of your 0.92 patch has the routine name 4 times. :-)07:49
lifelessabentley: oh I've pulled it to the knit copy of packs07:55
spivThe current version of pyflakes notices that sort of mistake.07:55
lifelessigc: .dev$ grep test_add_lines_nostoresha bzrlib/*/*.py07:56
lifelessbzrlib/tests/test_versionedfile.py:    def test_add_lines_nostoresha(self):07:56
lifelessbzrlib/tests/test_versionedfile.py:    def test_add_lines_nostoresha(self):07:56
lifelessI see it twice07:56
igcyup - twice in bzr.dev07:57
igcwhen I merge your patch, I get it 4 times07:57
lifelessigc: and it should be twice with a slight change to the name07:57
lifelessfixed and sent to pqm07:58
igcthanks07:58
lifelessigc: I am down to m4807:58
igcneat07:58
lifeless1m48 I mean lol07:58
igci knew that :-)07:59
lifeless2m2 wall clock07:59
igclifeless: does merging my "improved commit reporting" patch help as well?08:02
lifelessI'm running with -q08:03
lifelessso I'd hope not :)08:03
igceven with -q, show_change (or whatever it's called) is still being called unnecessarily without my patch08:03
igcin bzr.dev at least08:04
lifelessigc: ok08:08
lifelessigc: did you see my /query?08:21
igcI saw the times, yes08:22
lifelesshard to tell when you dont reply :)08:24
=== hdima [n=hdima@idealer.cust.smartspb.net] has joined #bzr
igcI did08:25
lifelessI bet you are not logged in08:25
igchmm08:26
lifelesstomorrow I'm going to make clean patches for several of these things for bzr.dev08:26
igccool. I've got a quick review if you want it ..08:26
lifelesson bb ?08:26
igcjust on paper here so far :-)08:26
lifeless:)08:26
igcwant a quick email now or a more complete one08:27
lifelessI'm calling it a day, or really a week08:27
igcok - I'll go with the complete one in the next few hours08:27
igcgotta luv APEC :-)08:27
igclifeless: do you have a branch I can pull?08:28
igclifeless: just emailed you my gaim session - not sure why you didn't see my times08:29
lifelessheh08:42
lifelessno, I don't have everything committed, I'm do sketch-tests08:42
lifelessthen I take the uncommitted change and test in isolation to make a real branch for it08:42
lifelessthen submit that08:42
igcok08:43
lifelessif you merge all my pending bundles08:43
lifelessand disable annotations as previously documented08:43
lifelessand disable the _check_lines and _check_present_parents in knit.py's _add_lines method08:43
lifelessthen I think you will have my tree08:43
igcso your times are with packs, not knits, right08:44
lifelessrm -rf .bzr && bzr --no-plugins  init --experimental && bzr --no-plugins add > /dev/null && time ~/source/baz/repository/bzr --no-plugins  commit -m "Initial commit"  -q08:44
igccool08:45
igcenjoy your day off08:45
lifelessokies :)08:45
=== matkor [n=matkor@beauty.ant.gliwice.pl] has joined #bzr
=== AfC [n=andrew@office.syd.operationaldynamics.com] has joined #bzr
=== allenap [n=allenap@212.233.37.68] has joined #bzr
=== poolie [n=mbp@ppp112-44.static.internode.on.net] has joined #bzr
=== mvo [n=egon@p54A675A7.dip.t-dialin.net] has joined #bzr
=== Lo-lan-do [n=roland@mirenboite.placard.fr.eu.org] has joined #bzr
=== g0ph3r [n=g0ph3r@p57A0BC2C.dip0.t-ipconnect.de] has joined #bzr
=== luks [i=lukas@unaffiliated/luks] has joined #bzr
=== Zindar [n=erik@host217-42-238-84.range217-42.btcentralplus.com] has joined #bzr
=== pygi [n=mario@83-131-64-132.adsl.net.t-com.hr] has joined #bzr
=== matkor [n=matkor@beauty.ant.gliwice.pl] has joined #bzr
=== mrevell [n=matthew@canonical/launchpad/mrevell] has joined #bzr
=== jrydberg__ [n=Johan@c80-216-246-123.bredband.comhem.se] has joined #bzr
=== mrevell_ [n=matthew@82-47-122-108.cable.ubr05.wolv.blueyonder.co.uk] has joined #bzr
=== mrevell_ is now known as mrevell
=== asabil [n=asabil@62.70.2.252] has joined #bzr
=== sabdfl [i=sabdfl@ubuntu/member/pdpc.silver.sabdfl] has joined #bzr
sabdflhey guys, when last was lifeless around?10:32
pygi3:07 my time10:32
pygiwas the last time he said something :)10:32
datosabdfl: 1h45m ago10:33
=== pygi wasn't here then o.O
=== pygi hides
sabdflthanks dato10:34
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== asabil [n=asabil@62.70.2.252] has joined #bzr
=== asabil [n=asabil@62.70.2.252] has joined #bzr
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== metze_away is now known as metze
PengWoah. _patiencediff_c.c is real C, not Pyrex.11:34
=== luks [i=lukas@unaffiliated/luks] has joined #bzr
=== dato [n=adeodato@tarrio.org] has joined #bzr
=== herzel [i=herzel@gateway/tor/x-b26a66002a991971] has joined #bzr
PengHmm, easy way to run patiencediff on a directory? python -m bzrlib.patiencediff only accepts files.12:00
Peng(as of 0.90, at least)12:00
=== gabe_ [n=gabriel@91.84.56.254] has joined #bzr
=== dato [n=adeodato@tarrio.org] has joined #bzr
=== Ng [n=cmsj@mairukipa.tenshu.net] has joined #bzr
Ngare there ubuntu packages of 0.18 for dapper lurking anywhere?12:29
PengWhat about 0.90?12:32
Ngoh yeah, I'd forgotten that was out. 0.90 then :)12:32
PengWell, I don't know.12:33
mwhudsonhttp://bazaar-vcs.org/releases/debs/feisty/12:33
mwhudsonoh sorry12:34
mwhudsonbazaar-vcs.org only seems to have 0.1712:34
Ngyeah and the feisty debs for 0.90 seem to be arch dependent and not happy with dapper's libc12:34
=== Peng points out that python setup.py install isn't too hard.
mwhudsonNg: i would _hope_ that the debs would build easily enough on dapper12:35
Ngmwhudson: I expect so, I was just hoping someone was continuing the fine bazaar tradition of doing it for me :)12:36
mwhudsonunless the build-deps are hard to satisfy, e.g. missing a new enough pyrex12:36
mwhudsonNg: fair enough12:39
mwhudsoni'm not the one to help here though :)12:39
lifelessNg: we will01:08
lifelessNg: need to backport the debs and python build rules01:09
lifelessbecause dapper has that very different python setup01:09
Nglifeless: ok, thanks :)01:09
=== abentley [n=abentley@bas8-toronto63-1088754407.dsl.bell.ca] has joined #bzr
abentleylifeless: up?01:14
=== Ng [n=cmsj@mairukipa.tenshu.net] has left #bzr []
=== EtienneG [n=etienne@ubuntu/member/EtienneG] has joined #bzr
=== metze is now known as metze_food
=== mrevell is now known as mrevell-lunch
=== sverrej_ [n=sverrej@pat-tdc.opera.com] has joined #bzr
fullermdHm.  How odd.02:00
fullermdWhere does 'info -v' get its "first revision" from?  'cuz it's wacky.02:00
fullermdI've got a branch with 3 initial revs, and the one it picks for 'first' isn't the left-path initial.  Nor is it the oldest of the initials.02:01
=== ddaa [n=david@canonical/launchpad/ddaa] has joined #bzr
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== niemeyer [n=niemeyer@200-103-134-216.ctame705.dsl.brasiltelecom.net.br] has joined #bzr
jelmerNfNitLoop: that appears to be a recent regression, working on it at the moment02:17
jelmerNfNitLoop: looks like a http-specific bug02:18
=== ieei [n=ieei@62.70.2.252] has joined #bzr
=== deadwill [n=deadwill@146037.fln.virtua.com.br] has joined #bzr
=== mw|out is now known as mw
=== mrevell-lunch is now known as mrevell
=== effbiae [n=jack@cust5166.vic01.dataco.com.au] has joined #bzr
effbiaehi all, bzr's great.  how do i turn a local branch into a sftp branch, retaining all the history?02:49
=== mario_ [n=mario@83-131-64-132.adsl.net.t-com.hr] has joined #bzr
=== mario_ is now known as pygi
gabe_effbiae: it already is02:51
=== sverrej_ [n=sverrej@pat-tdc.opera.com] has joined #bzr
=== sverrej [n=sverrej@pat-tdc.opera.com] has joined #bzr
effbiaeso just sftp to the dir, yeah?02:52
luksor `bzr push sftp://host/path/to/branch`02:53
=== matkor_ [n=matkor@beauty.ant.gliwice.pl] has joined #bzr
gabe_push doesn't work well for me via sftp02:57
gabe_it doesn't update the trees02:57
effbiaemy branch is in ~/mysql.5.bak  ,  then bzr clone sftp://jack@192.168.0.4/mysql.5.bak results in ...02:57
gabe_because it is too expensive via sftp02:57
effbiaebzr: ERROR: bzrlib.errors.NotBranchError: Not a branch: sftp://jack@192.168.0.4/mysql.5.bak/02:57
gabe_does   mysql.5.bak have   a  .bzr   directory?02:58
effbiaeyup02:58
effbiaebzr check returns clean bill of health03:02
fullermdeffbiae: You probably mean "sftp://jack@192.168.0.4/~/mysql.5.bak03:04
effbiaefullermd: brilliant.03:05
gabe_fullermd: yeah03:05
effbiaenow is a local commit the same as an sftp commit?03:06
gabe_didn't know you could do a sftp commit!03:06
fullermdETERMINOLOGY03:06
effbiaeEAGAIN?03:07
fullermdIt's hard to answer without knowing what you mean by 'local commit' and 'sftp commit'   :)03:07
effbiaehmmm, i think i'm confused.   i want to run a server, like CVS.03:10
=== ddaa_ [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has joined #bzr
effbiaewell, i want a central repository that i can get and put revisions.  don't want more than one branch at this stage.  which man page should i look at?03:13
fullermdWell, in that use case, you want to use checkouts of a single branch.03:15
fullermdSo you'd have a branch "somewhere" (whether it's local, or via sftp, or bzr+ssh, doesn't matter), and you'd "bzr co" it wherever you want to work.03:15
effbiaeso the key is to 'checkout' and then future commits will update the .bzr directory from where i checkedout, yeah?03:19
fullermdRight.03:21
effbiaethanks for all your help.  good night.03:22
=== effbiae [n=jack@cust5166.vic01.dataco.com.au] has left #bzr []
=== bwinton [n=bwinton@mail.phantomfiber.com] has joined #bzr
=== Rotund [n=rotund@d28-101.rb2.lax.centurytel.net] has joined #bzr
=== AfC [n=andrew@office.syd.operationaldynamics.com] has joined #bzr
=== asabil [n=asabil@62.70.2.252] has joined #bzr
=== mthaddon [n=mthaddon@canonical/launchpad/mthaddon] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== ddaa_ is now known as ddaa
=== statik [n=emurphy@189.66.188.72.cfl.res.rr.com] has joined #bzr
=== mwhudson [n=mwh@62-31-157-102.cable.ubr01.azte.blueyonder.co.uk] has joined #bzr
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== mrevell is now known as mrevell-tea
=== marianom [n=marianom@ubuntu/member/marianom] has joined #bzr
=== cory [i=cory@zeus.penguinhosting.net] has joined #bzr
=== joe99 [n=joe@146-115-30-99.c3-0.wtr-ubr1.sbo-wtr.ma.cable.rcn.com] has joined #bzr
joe99Anyone have any suggestions for how to setup a repository on OS X that more than one person can commit to?05:00
bwintonGive all the contributors accounts?05:01
=== mrevell-tea is now known as mrevell
bwinton(That's what I did, but I trusted the other person with an account.)05:01
bwinton(And set his shell to /bin/false just in case. ;) )05:01
joe99Everyone has accounts.  But how do you handle the file permissions?05:01
fullermdThat rather cramps the ability to use bzr+ssh   :p05:01
fullermdGroup writable.05:01
bwintonIt does, but he could push over https.05:02
bwintonYeah, I did the group-writable thing.05:02
bwintonOr I set them up to be owned by him, and sudo-ed everything I needed to.05:02
fullermdWell, if you go over https (bzr+, I presume), you don't need accounts period.05:02
joe99Yes, but new files created don't seem to keep the permissions.05:02
fullermdThey should.  I've tried a couple times, and bzr always DTRT.05:03
joe99If I create something as root & make everything writable new files created by others are not compatible.   Is there a simple solution to this?05:04
mwhudsondo you need g=ws or however it's spelt?05:04
fullermdHow are the perms showing up wrong.05:04
fullermdI'm pretty sure OS X doesn't have that SysV brain damage...05:04
fullermd(Er, that first was supposed to have a '?' at the end...)05:05
joe99New files reflect the ownership of the creator and -rw-r--r-- permissions.05:05
fullermdThe dir they're in is 77x?05:05
joe99Yes.05:06
fullermdMmm.  Works for me.05:09
fullermddir is 770, files end up like -rw-rw----  1 fullermd  wheel   94 Sep  6 10:08 a-20070906150753-pzfx8evgly2b3tep-1.kndx05:09
joe99Let me try again.05:09
fullermdMake sure it's all set to start out.05:09
fullermdfind .bzr -type d -print | xargs chmod 770   ; find .bzr -type f -print | xargs chmod 66005:09
joe99sudo chmod 770 foo;       cd foo;       touch bar;     ls -l;     results in -rw-r--r--05:11
fullermdYes, but that's touch, not bzr.05:13
joe99Also,  I tried bzr serve --allow-writes as an alternative, but it didn't work, and I'm not sure of the security model for it.05:13
joe99Sure, but why would bzr be different?05:13
fullermdYou only care about the files bzr makes.05:13
fullermdBecause bzr checks the perms and intentionally preserves g+w if it's around.05:14
joe99But bzr is run by the users ssh-ing.05:14
joe99Well, maybe my experiment is flawed.05:14
fullermdtouch just does an open().  bzr looks at the perm of the parent dir (I think; maybe the perm of the .bzr/ at the root) and uses that as a template for the new file.05:14
joe99So as long as nobody actually does anything by hand in that directory it should work fine?05:15
fullermdWell, anybody doing something in .bzr/ by hand needs a good thwapping just on general principles   :] 05:16
joe99Not in .bzr,  I meant creating, adding, commiting, etc in the branch in the shared directory.05:17
fullermdWhat, multiple people in one working tree?  That's a nightmare waiting to happen.05:17
fullermdI wouldn't consider it except in very specialized cases (like /etc, where there's only one uid that's ever there)05:18
joe99Doesn't somebody have to create the initial tree?05:18
fullermdYes, but everybody would have their own WT (either by having their own branches in a dist-like setup, or their own checkouts in a central-like setup)05:19
joe99How do I put a tree there in the first place?05:19
joe99I mean, I have one.   Can I branch it there and have that branch be the branch acts as the central branch that everyone can push to?05:20
fullermdYes, that'll work.  Push it there (one way or another), then do the chmod's on that "central" location, then have everybody else branch from and push to that, or checkout it, or whatever.05:21
joe99And bzr will DTRT with respect to file permissions regardless of who is ssh-ing?05:22
fullermdShould (and in all my testing, does), yah.05:23
joe99I'll give it a try.  Thanks.05:23
fullermdIf OS X uses SysV filesystem semantics, you'd need g+S on the dirs to properly propogate the group ownership to new files.05:23
fullermdI don't _think_ it does.  But if new .knit's and the like show up with the wrong group, that's the thing to try.05:23
joe99How do you set g+S?05:25
joe99Do you mean g+s?05:25
fullermdYah.05:25
=== gldnspud [n=gldnspud@72.171.93.139] has joined #bzr
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
coryHi, is there a way to cleanly remove a branch from a shared repository (and any cruft it might have left behind)?05:27
fullermdNot really.05:27
coryOk, I suppose I can always just branch everything I want to a different shared repository and let it sort itself out if I really care.  I was just curious and having trouble searching, thanks.05:30
fullermdYeah, that's the usual way.05:30
fullermdIt's a fair bit of work, and it loses branch-local config (like parent/push/etc branches).05:31
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
fullermdThere was a proof-of-concept 'cleanup' plugin somewhere once.  It's certainly on the list to add, just nowhere near the top of anybody's todo list.05:31
fullermdMostly, disk space is cheap enough that we all just ignore it for now.05:32
=== cory nods.
bwintonMental note: Don't put my video collection under bzr...  :)05:32
coryOh, we have lots of big binary files. :S05:33
Lo-lan-doDisk space is rather cheap, but bandwidth (and time) isn't.05:34
fullermdWell, most of any given branch will be common with other branches in the project, so it's not like you'd save much in most cases.05:34
fullermdSure, but if it's not referenced, it doesn't cost you any bandwidth.05:34
Lo-lan-doSo remote backups of obsolete data is less than optimal.05:34
fullermd(well, maybe a little in throwing around inventories or something, but...)05:34
fullermdOh, non-bzr?  Yeah, it'll hit you there.05:34
Lo-lan-doYeah, like, you know, backups :-)  rsync, or amanda, or tar+scp, or whatever05:35
fullermdBackups are for pessimists   ;)05:35
Lo-lan-doBackups are also for fat-fingered people and (maybe more importantly) their sysadmins.05:36
=== sabdfl [i=sabdfl@ubuntu/member/pdpc.silver.sabdfl] has joined #bzr
coryIt was more a policy thing.  I'm trying to get some people to switch from p4, and I'm inclined to push lightweight checkouts and lots of branching in a centralized repo, and it was the difference of whether I say, "it mostly doesn't matter to leave it sitting around," or, "you can push this button to clean up an old branch, and it will be obliterated."05:38
=== orospakr [n=orospakr@132.213.238.4] has joined #bzr
fullermdUnrelated to the issue at hand, but you probably want to look at something like bzrtools' 'cbranch' with that workflow, too.05:39
coryInteresting, just to set the default branch root?05:40
fullermdWell, it lets you remotely 'branch' and create a local checkout in one step (AIUI; I've never done more than glance at it)05:41
fullermdI know that abentley uses the separate repo/checkout workflow more than most people here, so there are a few things (cbranch, switch, at least) in bzrtools aimed at supporting those workflows.05:42
coryYes, switch is key.  Thanks.05:44
NfNitLoopjelmer: Hmm.  I just realized that the BzrForeignBranches/Subversion says that bzr-svn needs some fixes from svn 1.5 trunk.06:02
NfNitLoopjelmer: Is that still the case?  I hope that's not the problem I've been having and pestering you about.  :p06:02
fullermdActually, last I heard, it still needed some fixes that weren't even in svn trunk...06:02
NfNitLoopfullermd: Heh, well, there is that nasty memory leak...  :)06:03
=== samurai [n=sam@75.8.21.41] has joined #bzr
samuraimorning all06:11
=== mthaddon [n=mthaddon@canonical/launchpad/mthaddon] has joined #bzr
=== sverrej [n=sverrej@192.80-203-27.nextgentel.com] has joined #bzr
joe99Is sftp access safe for concurrent users?  Or do you need to use bzr+ssh?06:17
mwhudsonboth create lockfiles06:18
fullermdsftp should be as safe.06:18
fullermd(of course, if you can use bzr+ssh, it's probably better performing etc. anyway)06:18
joe99I'm not sure how to setup bzr+ssh on OS X.   The instructions are for inet.d, which OS X apparently doesn't use anymore.   And I don't really have a handle on launchd.06:19
fullermdbzr+ssh doesn't need any setup (other than having bzr in $PATH)06:20
fullermdIf you're looking at inetd stuff, that's for bzr://, not bzr+ssh://06:20
joe99What's the difference between bzr & bzr+ssh?06:22
fullermdbzr+ssh ssh's in and runs bzr, and chats with it over the ssh connection (like :ext: CVS does)06:22
joe99So does that make it more secure?06:23
fullermdbzr:// talks over TCP to a server talking the bzr protocol, either via 'bzr serve' (which runs it as a daemon), or through something like inetd (that accepts the connections and passes them to bzr)06:23
fullermdWell, it means that ssh handles all the authentication and such.  With bzr://, you get no authentication (at least, not currently)06:23
=== Kamping_Kaiser [n=kgoetz@gnewsense/friend/kgoetz] has joined #bzr
=== grimboy [n=grimboy@85-211-253-25.dsl.pipex.com] has joined #bzr
joe99Does anyone happen to remember which file on OS X is the right one for setting the path to bzr?06:26
fullermdDepends on your shell, probably.  Something like /etc/profile or /etc/csh.cshrc or something else for zsh, etc.06:27
NfNitLoopHeh, I'm reading the "svk book".   It looks like someone just took the subversion book and did s/svn/svk/g06:37
joe99If I branch with sftp that seems to work.   If I use bzr+ssh I get an error that says bash: line 1: bzr: command not found  bzr: ERROR... and then this long traceback.06:37
NfNitLoopjoe99: That probably means that bzr isn't found on the remote path.06:38
joe99Yes.  But wouldn't have been found by sftp?06:38
NfNitLoopdoes the remote machine have bzr installed?   Is it accessable by ssh's default path?06:38
fullermdsftp doesn't use bzr on the remote end.06:38
NfNitLoopsftp does not use bzr on the remot...06:38
NfNitLoop:)06:39
joe99That may be it then.  I added /opt/local/bin to path in /etc/profile.  So it's there when I ssh in.   But maybe that's only for login shells.  It must be one of those other files I can't remember the name of.06:40
NfNitLoopYeah... I never remember either.   I'm glad bzr doesen't require a remote copy to function.  :)06:40
fullermdAvoiding Bourne shells does the trick for me   ;p06:41
joe99If the sftp command fails do bad things happen?06:42
NfNitLoopGod kills a kitten.06:43
NfNitLoop(Though I'm not sure what happens to your branch.)06:43
joe99Does it keep the kitten company?06:43
NfNitLoopthat or it just lands in intensive care.06:44
NfNitLoopI've not had luck with partially-completed bzr-svn branches.06:44
NfNitLoopThough that may be a special case.06:44
joe99I'm not concerned that much about the branch as the push.06:45
NfNitLoopHeh.  Good point.  I would hope they would be atomic.06:47
NfNitLoopthere are a couple commands:  bzr break-lock and bzr check, that would probably help with recovery.06:47
mwhudsonyeah, you'll often end up with dangling locks06:48
mwhudsonbut that should be the worst of it, afaik06:48
jelmerNfNitLoop: well, the python-subversion package in recent ubuntu and debian contains a backport of those changes from subversion 1.506:49
NfNitLoopjelmer: aah.  I'm running Debian etch.06:51
NfNitLoopjelmer: you got my e-mail with the sample svn dump?06:52
=== p4tux [n=p4tux@189.169.92.184] has joined #bzr
joe99sftp doesn't update the working tree of a remote branch.  Is this of any concern if nobody ever works on that branch directly?   Does it require any special considerations for conflicts or anything that are pushed to that remote branch?07:19
fullermdOnly if you want the files there and up to date for some reason.  bzr doesn't need them.07:20
fullermdUnless you need 'em for some other reason (and thus go through other steps to keep them up to date), you can just as easily get rid of the working tree altogether.07:21
=== mrevell is now known as mrevell-dinner
joe99At some point I might want to run automated tests.  But for now I was hoping to use a remote branch as a central repository for things everyone was happy.07:22
joe99..with.07:22
fullermdI'd probably run automated test in their own checkout anyway.07:23
=== silwol [n=silwol@d91-128-236-90.cust.tele2.at] has joined #bzr
=== sverrej [n=sverrej@tul-1x-dhcp016.studby.uio.no] has joined #bzr
joe99Yes.  Assuming everybody actually runs them.   But some live by the motto "If it compiles, ship it."   And with interpreted code there are those who don't even compile.07:35
fullermdNo, I mean automated tests would run as an automated job, but with its own checkout that it updates and works with.07:35
joe99That makes sense.07:36
=== herzel [i=herzel@gateway/tor/x-65aeb146c7ac6819] has joined #bzr
=== herzel [i=herzel@gateway/tor/x-b6c989ddb8048cdc] has joined #bzr
=== jrydberg__ is now known as jrydberg
silwolsomebody here who can help me about how to best package my piece software that is checked in to bzr?07:47
=== gabe_ [n=gabriel@91.84.56.254] has joined #bzr
=== fog [n=fog@debian/developer/fog] has joined #bzr
NfNitLoopsilwol: Just like you would package any other software.08:13
NfNitLoopall of bazaar's files are in .bzr08:13
NfNitLoopso just exclude that directory.08:13
silwolNfNitLoop: i remember chatting with pitti (from ubuntu) and he told me it was best to keep a separate bzr branch for packaging08:15
silwolso the main branch has no debian directory, and is always merged into the packaging branch where the debian directory is maintained08:15
silwolbut packaging requires a original .tar.gz so i can not directly pull from the main branch08:16
silwol...i hope you understand what i mean08:16
NfNitLoopaah.   Yeah, I'm not that famailiar with Ubuntu's packging process.08:19
NfNitLoopkeeping a separate branch for debian/ sounds like a good idea, since that doesn't have much to do with the original source.08:19
NfNitLoopI vaguely recall that debian sources are packaged as the original.tar.gz, plus a debian.diff.tgz or something like that.08:20
datodiff.gz, yes08:21
NfNitLoopso you would zip up the source repo.   then diff your 'debian' branch to create the diff.08:21
=== grimeboy [n=grimboy@85-211-254-100.dsl.pipex.com] has joined #bzr
NfNitLoopbeyond that, I'm afraid I won't be much help.08:21
silwolokay, but thanks anyway, NfNitLoop08:21
silwoli think i'll try to catch pitti when he is online08:22
datosilwol: so you are the upstream author of the software?08:22
silwoldato: yes, but it is not very advanced yet.08:23
silwoljust trying to package in order to get some people to try it out08:23
datosilwol: and you will be maintaining the packages as well? or you intend for a separate person to do that?08:23
silwolactually, i don't mind if it is me or somebody else on the long term. for now i just wanted to create packages, but if somebody else wants to maintain them, why not08:24
silwolalthough i think i will in future need the knowledge about how to more often08:25
datowell, then my advice would be:08:25
silwolshould mean about how to package08:25
dato(1) when you create the upstream tarball for a release, never include the debian/ directory in it, if one exists in your repository08:26
silwolthat's what pitti told me too08:27
datoand for where to keep debian/, you have several options08:27
dato(2a) keep debian/ out of trunk, and have a packaging branch; you `bzr branch trunk packaging`, and `bzr add debian/` in packaging. when an upstream release happens, you `bzr merge ../trunk` inside packaging, and make any packaging changes as well there08:28
datoI think that's the one prefered in Ubuntu08:29
datoanother one, (2b) would be to keep the debian/ subdirectory in its own branch, one that is not a full branch of the whole source08:29
=== GaryvdM [n=chatzill@mtngprs5.mtn.co.za] has joined #bzr
datoand then there is (2c), the one I use for my projects (since I'm also the maintainer), keep debian/ in trunk, at release time build the package from trunk, and if there is another upload to make while trunk has diverged, make the debian packaging changes in a new branch created from the release tag, and merge that back to trunk. it may look a bit messier, but I like it.08:31
datosilwol: I guess I recommend (2a). do you have any questions about it, or about something else?08:31
keiranyone other than lifeless familiar with the uses of the graphindex code?08:32
keiri'm wondering if there's cases where you need to do a DFS type search, where you only care about the values and the ordering, not the actual keys encountered on the way08:33
silwoldato: until here it seems okay for me, and i would prefer the (2a) way.08:33
silwoldato: what confuses me a little bit is that the ubuntu packaging guide talks about having the source in a package-x.y.z directory08:34
silwoldato: this means that i would have to rename my packaging branch each time08:34
silwoldato: well, the directory where it lives08:34
datowell, the real truth is it doesn't need to be named srcname-x.y.z (you'll just get a warning from dpkg-source if not), but it's good practice08:35
datodo you see a problem in renaming it?08:36
dato(you can rename it, or do `bzr branch packaging srcname-x.y.z` instead, commit in srcname-x.y.z and then `bzr push ../packaging` when finished)08:36
dato(the latter approach seems a bit cleaner, because you can throw away the directory you built the package on after pushing)08:37
silwolokay, that seems to make more sense to me.08:38
silwol...here some of the real benefits of a distributen versioning system seem to open up08:39
jelmerNfNitLoop: yep, thanks09:04
=== grimboy_uk [n=grimboy@85-211-251-122.dsl.pipex.com] has joined #bzr
=== silwol [n=silwol@d91-128-236-90.cust.tele2.at] has left #bzr []
=== ieei [n=ieei@cm-84.215.120.219.chello.no] has joined #bzr
NfNitLoopHeh.  playing with svk....   it's got one central store that's based on svn.   If you're done with a project, there's no way to get rid of just that project's data without blowing away data for other projects.09:23
NfNitLoop(afaik)09:28
keiraren't bzr shared repos no different?09:29
keiror would 'repack-dropping-empty-refs' take care of that?09:29
keirmy graphindex is going to be sweeeeeet!09:30
=== Treeform [n=me@c-76-104-152-100.hsd1.wa.comcast.net] has joined #bzr
Treeformhey can any one help me!  Is there a difference they way bzr handles text and binary files?  I think it handling one of my 100mb files as a text file and cosing massive mem usage09:33
=== Gwaihir [n=Gwaihir@ubuntu/member/gwaihir] has joined #bzr
=== sverrej [n=sverrej@tul-1x-dhcp017.studby.uio.no] has joined #bzr
=== pygi [n=mario@83-131-64-132.adsl.net.t-com.hr] has joined #bzr
=== phanatic [n=phanatic@dsl5400C5E7.pool.t-online.hu] has joined #bzr
=== grimboy_uk [n=grimboy@85-211-248-12.dsl.pipex.com] has joined #bzr
=== Demitar [n=demitar@c-212-031-190-120.cust.broadway.se] has joined #bzr
=== pmezard [n=pmezard@nor75-4-81-56-59-92.fbx.proxad.net] has joined #bzr
NfNitLoopkeir: with bzr, you can easily create a shared repo for each project, then delete the shared repo & project all at once, not affecting your other shared repos.10:02
keiroh10:02
NfNitLoopkeir: and even if you just used one central shared repo, I think I've read in here that there are tools to prune unreferenced changesets.10:02
keirNfNitLoop, what i mean is, if you have a shared repo, then you decide you don't care about 2 of the branches, deleting them  doesn't remove the stuff in the shared repos which was only ref'd by those branches.10:03
NfNitLoop^-- see my last comment. :)10:03
keiri was 90% of the way through mine when i saw yours so i finished and hit enter anyway :P10:03
NfNitLoopI forget what they are.... but in the worst case you can create a new shared repo and migrate into there, then delete the old shared repo.10:04
NfNitLoopinefficient, but at least *possible*.10:04
NfNitLoopI mean, disk space may be cheap, but endlessly growing files still aren't a good idea, IMO.  :p10:04
keiryeah10:05
ubotuNew bug: #137823 in bzr "bzr selftest failures and haning unit tests?" [Undecided,New]  https://launchpad.net/bugs/13782310:06
=== bwinton [n=bwinton@mail.phantomfiber.com] has left #bzr []
datoaw, this new 'Committing revision x to "/path"' line that commits outputs is unexplainably getting on my nerves.10:38
=== sabdfl [n=sabdfl@ubuntu/member/pdpc.silver.sabdfl] has joined #bzr
keirlifeless, are you around?10:39
=== asabil [n=asabil@ti0035a340-0802.bb.online.no] has joined #bzr
keiri'm confident i can make repacking the GraphIndex's super fast because AFAICT, old nodes are never changed; new nodes only refer to old ones.10:43
keirbecause my new format is toposorted, repacking sould be 2x linear in len(pack1 + pack2 + ...)10:44
fullermdMmph.  I think "ghost filling" is the usual answer to that sort of thing...10:44
keirghost filling?10:44
fullermdIf you've got revs referencing ghosts, the graph cuts off at that point, but if the ghosts get filled that leg suddenly gets extended.10:46
keiryes, that's exactly the algorithm i imagined in my head10:47
keiris the pack format described somewhere? the parts that aren't the graph index10:48
=== fullermd has no earthly idea.
fullermdlifeless would be your best source for that I imagine, and I think he's mostly afk until next week.10:48
keiryeah, ok10:49
keiri'm tempted to go ahead and implement my new format in C10:49
keirmercurial is beating us in popularity, and they have C10:49
keirbesides, the code i'm going to write is very general; it stores highly packed DAG's which are k->v and k->k*10:50
keirit so happens that it's a perfect format for the ways bzr uses it10:50
=== Kamping_Kaiser [n=kgoetz@gnewsense/friend/kgoetz] has joined #bzr
=== grimboy_uk [n=grimboy@85-211-251-75.dsl.pipex.com] has joined #bzr
=== phanatic_ [n=phanatic@dsl540282FF.pool.t-online.hu] has joined #bzr
=== phanatic_ is now known as phanatic
=== niemeyer [n=niemeyer@200-103-134-216.ctame705.dsl.brasiltelecom.net.br] has joined #bzr

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