/srv/irclogs.ubuntu.com/2009/01/14/#bzr.txt

Jc2kjelmer: its not without its problems - it can only handle revisions that came from git as it stands for example.00:01
Jc2kanyway, i think im going to sleep at this point :]00:02
=== sdboyer_ is now known as sdboyer
jml:( :( :( :(00:33
jmlI hit Ctrl-C during an up-thread --auto and now everything is screwed :(00:33
jmlswitching down to trunk and doing up-thread manually all the way to the top seems to work ok.00:35
jml(i.e. fix the problem of pending merges without working tree changes)00:35
jmlI hope I haven't actually screwed up the loom though00:36
lifelessjml: interesting00:36
lifelessjml: up-thread --auto probably wnats a KeyBoardInterrupt catch-and-rollback00:36
jmlit all started when I accidentally hit "bzr up-thread --auto" when I had uncommitted changes00:36
jmland so hit C-c00:36
jmlhmm. bzr di -r branch:../trunk/ looks about right.00:38
lifelessjml: bottom: might be easier :)00:38
jmllifeless: but less reliable, given that the loom itself is now suspect.00:39
lifelessjml: current-thread writes are atomic, and up-thread doesn't modify the bottom thread, so I don't see bottom: being faulty00:40
=== rocky1 is now known as rocky
jelmerrocky, hi00:47
jelmerrocky, any chance you can confirm that bug in bzr-svn you were hitting is fixed now?00:47
rockyohh...00:49
rockyunfortunately i'm away from my workstation atm, but i'll certainly try it as soon as i can00:49
lifelessjam: still around?01:02
=== joshuabl1unt is now known as jblount
igchi all02:23
thumperigc: hi02:28
thumperigc: are you up for a quick skype call?02:28
igcthumper: sure02:28
igcthumper: http://arstechnica.com/news.ars/post/20090107-dvcs-adoption-is-soaring-among-open-source-projects.html02:45
lifelessI need to pop out for a minute to the chemist02:53
lifelessbrb02:53
thumperTree transform is malformed [('versioning no contents', 'new-4')]???02:56
thumperwhat does that mean?02:56
emmajanehi all!03:12
emmajaneI'm trying to understand using launchpad for merging branches.03:12
pooliethumper: it's either a bug in bzr, or in code that's calling in to bzrlib03:12
emmajaneShould there be a big "MERGE" button that I'm looking for?03:12
thumperpoolie: ta03:13
thumperemmajane: launchpad doesn't merge branches for you yet03:13
thumperemmajane: we have some kinda future plans, but it just isn't there yet03:13
emmajanethumper, ah! probably why I can't find a button. :)03:13
thumperemmajane: exactly03:13
emmajanethumper, I'm glad to know I'm just a futurist instead of plain ol' daft. ;)03:14
thumperheh03:14
thumperemmajane: lets just say I have a loom with about 8 threads dealing with this topic03:15
thumperthat I haven't had time to get to03:15
emmajaneawww.03:15
thumper('cause I'm a manager now)03:15
emmajaneSo I guess I shouldn't wait for the button to appear tonight? ;)03:15
thumperand I don't get as much time to code as I'd like03:15
emmajane(congrats on your promotion)03:15
thumperemmajane: sorry, no03:15
thumperemmajane: promotion was quite some time ago03:16
thumperbut thanks03:16
emmajanethumper, heh. so you're only just coming to grips with never being able to code again. ;)03:16
thumperwell, I hope not never03:16
thumperjust not as often as I'd like03:16
* emmajane nods03:17
emmajaneso to merge I need to pull down the branch I want to merge into; merge; and then push back up?03:17
* emmajane has never done this before.03:17
thumperemmajane: can you give me a concrete example?03:17
emmajanehttps://code.edge.launchpad.net/~emmajane/ubuntu-desktop-course/udc-804/+merge/279903:18
emmajanethat's sort of concrete, eh? :)03:18
* thumper looks03:18
thumperright03:18
emmajaneI'm very happy to RTFM if there's anything specific for launchpad.03:18
emmajane-beta needs to go into main.03:19
poolielifeless: can we catch up before you finish today, maybe at 4?03:19
thumperemmajane: ok, so you are a member of the team that owns the target branch, so that means you can do it03:19
thumperemmajane: did you want to move this to #launchpad?03:20
emmajanethumper, can do. :)03:20
lifelesspoolie: shortly before owould be fine03:24
lifelessand migod its hot out there03:24
=== Mario__ is now known as pygi
poolieisn't it just03:26
lifelessanyone know of stats modules in the stdlib ?03:32
lifelesse.g. to get stddev, IQR etc03:33
lifelesscan someone look at bzrlib.check.Check._check_one_revision03:41
pooliethumper: hi03:41
poolielifeless: i'm pretty sure there is an SD function03:41
pooliein math?03:41
thumperpoolie: hi, just helping emmajane on #launchpad03:41
pooliethumper: whenever you like03:42
poolielifeless: in scipy according to google03:42
poolieit's not in math03:42
lifelessyeah, I knew scipy would have everything I'd need03:43
lifelessbut its not stdlib :(03:50
pooliecopy & paste?03:52
poolielifeless: what about that function?03:52
pooliecheck_one03:52
lifelesspoolie: well several things03:53
lifelessit calls check revision tree03:53
lifelesswhich means we're extracting the inventory for every revision 3 times I think, maybe more03:53
lifelessonce there, once to generate the text key references, and once in check_weaves03:54
lifelesscheck_revision_tree seems to check that the fileid iteration of the inventory only yields each id once; which seems rather redundant to me - its checking using too high an API pehaps03:55
lifelessand then InventoryFile._check seems to double-check the sha1, which means we're extracting every file text twice (or more)03:58
thumperpoolie: call?03:58
lifelessso I'm saying it seems like check can be halved in time without huge effort03:58
jmlhow hard would it be to add a debug option to bzr that shows bytes transferred? is there one already?04:10
jml(or can I trick linux into doing this for me somehow?)04:10
lifelessjml: -Dtransport possibly, also see vila's transport debugging plugin04:10
jmllifeless: thanks04:12
bob2ethereal could, too04:12
lifelessbob2: ELOWTECH04:13
bob2hehe04:13
poolielifeless: yes that's all true04:17
poolieabout check04:17
lifelesspoolie: thanks, useful confirmation04:17
lifelessyou want that call now?04:18
lifelesspoolie: ^04:18
poolielifeless: talking to thumper at the moment but straight after that would be good04:19
lifelessok04:19
lifelessI want to finish sharp at 404:19
pooliek04:21
* emmajane chuckles at poolie. I assure you it's mostly photos of knitting and looms. 04:54
pooliei was seriously impressed by the looms04:54
emmajaneThanks. :)04:54
* emmajane is pretty hardcore into the fibre arts.04:55
emmajaneThat's only because I'm a recovering bookbinder though.04:55
fullermdAren't photos of knits deprecated?   :p05:04
* emmajane chuckles.05:09
poolieemmajane: what was it that made you chuckle anyhow?05:14
emmajanepoolie, knitting and looms and bzr. It amuses me more than it should.05:15
emmajanepoolie, a friend of mine also runs a craft show called http://www.bazaarbizarre.org/cleveland.html05:16
=== sdboyer_ is now known as sdboyer
emmajaneAlright. On that happy note. I'm going to give up on the idea of eating supper (it's 1AM) and trundle off to sleep. http://emmajane.net/node/884 <-- thanks for the help (although it happened over yonder, it all started here).05:58
vilahi all07:08
Peng_Good morning. :)07:09
pooliehello vila, Peng07:54
pooliesleepy07:54
igcnight08:44
=== thekorn_ is now known as thekorn
LarstiQsiretart: heya! In bug 317001 you say an unwriteable dir to watch cause bzr-hookless-email to traceback, I haven't yet managed to reproduce that (then again, I'm still sleepy)11:02
ubottuLaunchpad bug 317001 in bzr-hookless-email "ugly traceback when directory to watch is not writeable" [Undecided,New] https://launchpad.net/bugs/31700111:02
siretartLarstiQ: yes. testcase: chown -R the branch to root:root and try as user11:06
siretartsilly use case, I know, but we have system configuration managed in a bzr branch, and wondered if I can setup the monitoring (bzr-hookless-mail) as non-priviledged user11:07
siretartLarstiQ: btw, did you query me before?11:07
LarstiQsiretart: not in a looong time11:08
siretartok. then it was someone else :)11:08
LarstiQah, there needs to be a branch in place *doh*11:09
siretartyes. I assume the plugin doesn't work else anyways..11:09
LarstiQsiretart: it does, it notices branches that get created after it starts watching11:10
LarstiQ(not branches that get mv'ed in the hierarchy, but I've almost fixed that)11:10
LarstiQsiretart: and of course it needs to open a branch to trigger that traceback, I was just being stupid11:10
LarstiQsiretart: I'll push your changes up in a sec, thanks for the patch!11:12
siretartyou're welcome!11:13
vilaguilhembi: ping14:15
=== montabeau is now known as abeaumont
ericvwHow do I have a branch un-ignore a file extension is ignored globally?16:30
ericvwthat is*16:30
jelmerericvw: I don't think there's a way to do that, but you can explicitly override the ignore by "bzr add <filename>"16:31
LarstiQit will version the file of course16:32
ericvwjelmer: Okay, I will do that for now.  Thanks!16:32
=== mvo_ is now known as mvo
=== asac_ is now known as asac
Kobazhow come sometimes i get: These branches have diverged.  Try using "merge" and then "push".18:11
Kobazand sometimes i don't18:11
Kobazsometimes it will merge for me, and it's auto18:11
Kobazhere's an example18:11
fullermdIt will never merge for you.18:11
fullermdThe snarky answer is of course "because sometimes they're diverged, and sometimes they haven't"   :p18:12
Kobazfiles 1,2,3 exist in the repo, user A makes changes to file 1 and does a push, user B makes a change to file 2 and does a push18:12
Kobazand bzr will complain branches have diverged18:12
Kobazso now i have to do a merge18:12
Kobazeven though nothing is in conflict18:12
fullermdIt's a question of what revisions are where.18:12
fullermdIf all the revisions on the far side are in your local history, they're not diverged, and push can Just Run.18:13
Kobazand then other times, person A will modify file 1, and person B will modify file 2, and then a pull is down, and the files are brought down and merged in18:13
fullermdIf there are revisions there that you don't have, though, you have divergeance.18:13
Kobazmmm18:13
Kobazso it has nothing to do with conflicts then18:13
LarstiQKobaz: correct18:13
fullermdYah.  Push doesn't do merges, or create new revisions; it just moved around revs that are already created.18:14
LarstiQKobaz: the divergence is about wether both branches have different revisions from a certain point18:14
LarstiQKobaz: do you know the `bzr missing` command?18:14
Kobazyeah18:15
Kobazso if there are missing revs, then you need a merge?18:16
LarstiQsorry, phone call interrupted18:16
LarstiQKobaz: no18:16
LarstiQKobaz: if missing reports extra revisions for one side only, yours, or theirs, then you can pull/push and do not need a merge.18:17
LarstiQKobaz: but if missing shows extra revisions for _two_ sides, that is when divergence has occurred and you would need a merge18:17
fullermdIf the other side has revs you don't, you're out of date and can pull.  If you have revs the other side doesn't, then it's out of date and you can push.18:17
fullermdIf you both have revs the other doesn't, then you have divergeance, and have to merge them.18:18
* LarstiQ nods18:18
fullermd(that's a rather simplified way of looking at it, but it works)18:18
LarstiQKobaz: does that make sense?18:18
Kobazsec18:19
LarstiQlifeless: oh oh, I got an Acer Aspire One, so now I have a laptop with working wireless ;)18:19
Kobazokay, i see18:22
=== thekorn_ is now known as thekorn
beunojam, second day using yout log alias, and it's 100 times more comfortable to use. Speed and presentation-wise18:38
=== lamont` is now known as lamont
=== andreas__ is now known as ahasenack
macohi um, bzr just told me that a file i have on launchpad.net has been locked for 900+ hours, and the error said to use " bzr break-lock lp-46717904:///~maco.m/5-a-day-data/main/.bzr/branch/lock19:27
macobut when i do that, bzr then tells me that it's an unsupported protocol19:28
macowhy's it telling me to do something it can't do?19:28
jelmermaco, try running bzr break-lock on the branch location19:28
jelmermaco, that's a bug in the launchpad plugin19:28
macoso remove the -##### stuff so it just says lp: like it normally does?19:29
jambeuno: yeah, I like it a lot, too19:29
jama *long* time ago I proposed it as the default for "bzr log", but I think at that time we decided to be compatible with other systems19:30
jammaco: yeah19:30
jelmermaco, yeah19:30
macook, thanks19:30
jambzr break-lock lp:~maco.m/5-a-day-data/main19:30
=== nevans1 is now known as nevans
Lo-lan-dojelmer: A thought occurred to me while I was eating my lasagna tonight.20:00
Lo-lan-doThe bzr-svn logs show that there are lots of "get-dir" requests going back and forth to the SVN server, but they all seem to concern past revisions.20:01
Lo-lan-doShouldn't their results be cached?  Surely that data is not expected to change over time, is it?20:01
=== fta_ is now known as fta
jelmerLo-lan-do: Those results specifically are not cached but some of the data that is inferred from them are20:23
guilhembi_vila: ping20:27
=== kiko is now known as kiko-afk
dereinehi is it possible to follow symlinks?20:28
Lo-lan-dojelmer: So... why not cache the rest and do without the round-trips?  Or am I talking complete nonsense?20:30
jelmerLo-lan-do: Too much caching takes up too much disk space20:30
jelmerLo-lan-do: Also, I'm not sure why it's looking at those older revisions at all20:30
Lo-lan-doWell, I'd be willing to sacrifice some more disk space if it means a commit to SVN takes significantly less than half an hour.20:35
jelmerLo-lan-do, let's figure out first why it's looking at those older revisions20:37
jelmeralso, a single get-dir call isn't supposed to be as slow as it appears to be for you20:37
Lo-lan-doSounds like a plan.  How can I help?20:37
jelmershould just be a single round-trip with about a kb of data20:38
Lo-lan-doI guess the remote server is slow...20:38
dereineanyone?20:38
LarstiQdereine: your question doesn't make sense to me as-is, could you elaborate?20:38
Lo-lan-doBut even if it weren't, there's a scalability problem: the number of requests is O(number of revisions committed through bzr-svn)20:39
fullermdIf they catch you, they might call the cops...20:39
dereinei have a repo called config20:39
dereinewhere i link all my config files20:39
dereinebut bzr only diffs the links itself and not the file behind it20:39
Lo-lan-dodereine: Store the files under bzr and do the symlinks the other way round?20:40
dereineno other way?20:40
jelmerLo-lan-do, It shouldn't be of that order though20:41
LarstiQdereine: no other way20:42
dereineok thx! btw bzr is awesome!20:42
Lo-lan-doHardlinks maybe.20:42
LarstiQLo-lan-do: I doubt they won't be broken by bzr though.20:43
Lo-lan-doLarstiQ: If you just use bzr as a backup mechanism and only do the restores by hand, myabe you can afford that.20:43
LarstiQLo-lan-do: possibly20:44
LarstiQdereine: how are you using bzr that this becomes an issue?20:45
dereinei have ~/.config20:45
dereineno20:46
dereine~/config, there i would like to collect all config files for example ~/.bashrc20:46
dereineand ~/.vimrc ...20:46
dereinebut i don't want to have my home folder as repo20:46
lifelessjelmer: git pack delta compression20:47
LarstiQdereine: ah, right20:49
LarstiQdereine: I do that with a ~/dotfiles branch, and then I symlink ~/.zshrc to ~/dotfiles/.zshrc etc20:49
dereineits still ok20:50
dereinewhat is the difference between init-repo and init?21:34
Lo-lan-doOne initialises a repository, the other initialises a branch.21:35
dereinemh i did not used init-repo21:35
Lo-lan-doThat's not strictly necessary.21:37
Lo-lan-doA repo is just a way of storing data that saves disk space when several branches share some revisions.21:37
dereinefor my config i only need one branch21:39
* dereine still has to learn21:39
Lo-lan-doThen no repo is needed.21:39
dereineso i pushed my current branch to a webspace21:39
dereineremoved my local one21:39
dereinebzr branch the webspace one21:40
dereineso now i change a file locally21:40
dereinehow can i get them to the server?, so how can i commit on the server21:40
Lo-lan-doEither you commit locally then push, or you bind your local branch to the remote one and every commit you do locally will automatically be pushed.21:41
dereinewhat happens if i have no internet connection if i bind?21:41
Lo-lan-doThen you can do bzr commit --local, and push only when you get back on the net.21:42
dereineah nice21:42
Lo-lan-doOr bzr unbind, work, commit, bzr push, bzr bind21:42
dereinewow21:42
dereinethats much better than any cvs stuff21:43
Lo-lan-doYou know, I think that kinda was the point :-)21:43
Lo-lan-doNote that a bound branch is also known as a "checkout".21:43
Lo-lan-doSo when you do "bzr checkout $remotebranch", it behaves the same as a CVS or SVN checkout.  Except you can do diff and log and annotate and whatnot even when you're not on the net.21:44
dereinethe idea of working locally is just much better!21:45
dereinecan you explain what https://launchpad.net/bzr-push-and-update does exactly?21:46
Lo-lan-doYeah.21:47
Lo-lan-doWhen you're in a branch, you've got your files, and your .bzr dir.21:47
Lo-lan-doThat .bzr dir contains the history of the revisions so far.21:48
dereineexact21:48
dereineyes?21:48
Lo-lan-doWhen you commit or log or diff, the command operates on that .bzr dir.21:48
Lo-lan-doWhen you push to a branch, bzr mostly updates the stored revisions, ie the .bzr dir of that branch.21:49
Lo-lan-doThe actual (plaintext) files need to be updated separately.21:49
Lo-lan-doIf the branch is local, then they are updated automatically, but if the branch is remote then they're not.21:50
dereinethey are only updated if someone merges them from the repo?21:50
Lo-lan-doYup, or if the branch is local.21:50
dereinea personal question, do you have your whole homefolder in a repo?21:51
Lo-lan-doThat plugin does the update for remote branches accessible through ssh.21:51
dereinenice21:52
Lo-lan-doNo.  I have my ~/bin in a repo, and most of my ~/debian/* stuff, but I not the whole home dir.21:52
dereinejust wonders. because i wait for 5 minutes for a push a branch with files(not .bzr) of one mb21:53
igcjam: w.r.t. log --short FILE not working ...22:02
igcI think we need to always include_merges inside calculate_view_revisions if there's a fileid given22:03
igcsound right?22:03
igcthat should give us the correct projection onto the mainline22:04
jelmer'morning Ian22:09
dereinehow can i save the repo , so that i only have to write bzr push?22:11
Lo-lan-dobzr push --remember $remotelocation22:12
dereinewow incredible22:12
Lo-lan-doAlthough I think it remembers automatically the first time you push22:12
LarstiQit does22:12
jelmerhmm22:13
jelmer*somebody* should fix progress indication22:13
Lo-lan-do...or make stuff so fast that it's unneeded :-)22:14
* LarstiQ quickly goes to sleep22:14
jelmerpoolie, thanks for sending the standup notes again22:32
mwhudsonbeuno: apropos of not much, the directory listing for serve-branches should probably paginated22:32
mwhudson-d22:32
fullermdUh oh.22:33
fullermd"mbp: several calls; today will bzrtools into ppa"22:33
Haffi___Hi, I've pushed a few python files onto a ssh server I'm running, and me and a few others will be working on these files on separate machines. I've read the user guide but I'm not quite I understand fully the difference between using branch and merge or checkout and update22:33
fullermdHe ran out of verbs already   :(22:33
fullermdHaffi___: Checkout gives you a [n additional] working tree on a branch.  Branch gives you a new independent branch.22:34
jml"There should be a newer version of Bzrtools available, e.g. 1.12."22:34
jmlabentley: is this true?22:34
fullermdHaffi___: Update is how you bring a working tree up to date with its branch.  Merge is how you integrate changes from 2 branches together.22:34
Haffi___fullermd: So if we're trying to keep things centralized, then we should use checkout and update?22:35
fullermd(also, rain causes rainbows, and babies come from good home-cookin')22:35
fullermdHaffi___: That way you'd have everybody working in lockstep on one branch (CVS/SVN style).22:36
fullermdNow, that doesn't stop people from making their OWN branches and working in them locally, then later merging them into the checkout of trunk.22:36
abentleyjml: No, it's a little early for 1.12.22:38
jmlhmm.22:38
abentleybzrtools 1.11 won't emit that for a dev version of 1.12.22:38
Haffi___But regarding concurrency, is it as safe? If I checkout the "latest" branch and work on a file, but in the meantime someone else has made changes to a file and pushed it to the branch when I send my changes in, does it matter shich method I use?22:39
jmlabentley: I somehow have 1.10...22:39
jmlI wonder how that got there22:39
fullermdHaffi___: If you try to commit in a checkout and it's out of date, it won't let you; you'll have to 'update' first.22:39
jmlahh ok. running from a branch.22:40
* jml pulls to get the happiness22:40
abentleyjml: So bzrtools 1.11 will work with it.22:40
jmlabentley: yeah, that works. thanks.22:40
abentleyjml: np22:41
fullermdHm.  I think it complained for me after bzr.dev changed...22:41
fullermdI had to pull it before I could multi-pull my plugins.22:41
pooliejelmer: oh, thanks for saying so22:42
poolieglad you liked them22:42
Haffi___I lost the connection for a bit there...22:42
* fullermd likes them too.22:42
abentleyfullermd: What version were you on when you did that?22:42
fullermdA rev or two back.  Last pulled in Dec sometime.22:43
fullermdr688 probably.22:43
abentleyfullermd: Well, the version number would be 1.11 then, and that was compatible with 1.12dev22:44
fullermdHm.  Well, I can't reproduce it.22:45
Haffi___Are the IRC logs kept public somewhere?22:45
fullermdOh well.  I'll worry about it next time it happens, when I've forgotten about it   ;)22:47
fullermdjam used to have them somewhere.  Dunno if he still does.22:48
fullermdOnly thing I said after your last was22:48
fullermdHaffi___: If you try to commit in a checkout and it's out of date, it won't let you; you'll have to 'update' first.22:48
Haffi___and update is just merging your working tree with the parent branch?22:49
fullermdPretty much, yah.22:49
jamfullermd, Haffi___: If you look in the topic, you can see: http://irclogs.ubuntu.com/22:49
jamhttp://irclogs.ubuntu.com/2009/01/14/%23bzr.html22:49
Haffi___right, thanks... :)22:49
fullermdTopic?  Well, shoot, why hide the info where nobody will ever look?   :p22:50
jamThat only seems to update every-hour or so22:50
Haffi___I try to look at documentation and such before asking stupid questions, but sometimes you forget looking at the most obvious places22:51
* ToyKeeper tries to remember how to explicitly set branches URLs for :parent and :submit23:11
ToyKeepers/branches/branch/23:11
NfNitLooptoytoy: --remember23:16
NfNitLooper, ToyKeeper23:16
ToyKeeperSome commands have a --remember option, but the option name and the branch label don't match and the commands I want to use don't have --remember.23:17
fullermdParent would be pull, and submit...   mmm...   merge, I think?23:18
NfNitLoopyep.23:18
NfNitLoopYeah, I've been confused by that before too.23:18
NfNitLoopwhy aren't they just called the "pull branch" and the "merge branch".23:18
ToyKeeperI'm still used to the way hg handles branch URLs...  it'll use 'default-CMD' for the 'CMD' command, if it exists, or fall back to 'default' otherwise.  It's simple and intuitive.23:19
ToyKeeperTo set one, edit .hg/hgrc23:20
ToyKeeperAh, found it.  .bzr/branch/branch.conf ; '%s_location = URL'23:21
ToyKeeperI guess it doesn't allow arbitrary labels though, and 'submit_location' isn't the variable for the :submit branch.23:22
ToyKeeperOdd.  :parent uses 'parent_location = ../trunk/' but :submit uses 'submit_branch = file:///full/path/to/trunk/'23:24
NfNitLoopas you said, it's not meant for arbitrary aliases. :)23:26
ToyKeeperIf I have both 'submit_branch' and 'submit_location' set, bzr dies on commands like diff, even though 'submit_location' doesn't actually seem to get used for anything.23:26
NfNitLoopso don't set submit_location?  :)23:27
ToyKeeperWell, yeah.  It's just odd that it would be ignored when it's alone (since it's the wrong name), but cause a collision when the correct name is set.23:28
ToyKeeperI resolved the original issue I was having, and now am just looking to see what's fragile or internally inconsistent.23:28
lifelessjelmer: around?23:32
jelmerlifeless, somewhat23:32
jelmerlifeless, what's up?23:33
lifelesspack delta compression - how did you implement that23:33
lifelessits xdelta right?23:33
jelmerI'm not sure it's xdelta completely, but it sure did look like it23:34
jelmerit's apply_delta() in dulwich/pack.py in dulwich fwiw23:35
lifelesshow fast is your implementation? does it need C bindings to libxdelta? where is it?23:35
jelmerno, it's implemented in Python23:35
jelmerlp:dulwich23:35
jelmerdulwich/pack.py23:35
jelmerthe function is called apply_delta()23:35
lifelessdid you write a compressor?23:36
jelmerthere's a create_delta() as well, but I didn't write that - Jc2k did23:36
lifelessAIUI xdelta has a turing complete [or nearly] component23:36
lifelessis that used?23:36
poolielifeless: i really don't think it's turing complete23:36
poolieimbw23:37
pooliebut i don't think it can switch based on the content23:37
pooliewritten out by the delta23:37
lifelesspoolie: I have no idea, haven't read the specs, just going on memorys of jams comments23:37
pooliei guess it would be turing complete if you ran xdelta repeatedly on its own output23:37
pooliebut that would be weird23:37
jelmerlifeless, I don't think that's used23:38
lifelessjelmer: thanks23:40
jelmerlifeless, but speed is an issue with the current in-python implementation23:41
jelmerI'm looking at ways to improve it at the moment23:42
lifelessjelmer: I'm putting together a compressbench tool23:42
lifelessjelmer: it needs a VersionedFile interfface23:42
jelmerit's ok for small repositories (loudmouth, ~500 revs, takes a few minutes)23:43
lifelessor rather a subset of it23:43
jelmerbut for e.g. Samba just figuring out what objects to fetch takes a loooong time23:43
lifelessis it byte orientated?23:43
jelmerlifeless, is what?23:44
lifelessand do you string join?23:44
lifelessthe deltas23:44
jelmerlifeless, the git deltas are byte-based, yes23:44
lifelessdo they work in bits bytes lines23:44
jelmerbytes23:44
lifelessdo you string join in your decompressor?23:44
jelmerstring concatenate, yes23:45
lifelessdo you know the length of the output when you start decompression?23:45
jelmerlifeless, sorry, the delta-applyer does string concatenate23:47
jelmerthe decompressor is a simple zlib decompresser23:47
jelmerand the output length is not known beforehand23:47
lifelessjelmer: well, I meant the delta applier23:47
lifelesswhich is a form of decompression :P23:47
jelmerlifeless, sure, but it makes the terminology a bit confusing23:48
lifelesswell23:48
jelmeras all objects (whether they're deltas or plaintexts) are stored zlib-compressed23:48
jelmerin the packs23:48
lifelessk, well ignore the zlib step for this discussion23:48
pooliethe length is still not known23:49
poolieit's an instruction stream23:49
lifelesspoolie: it may be wrapped23:50
pooliei guess you *could* run over it once as a dummy to work out the eventual length23:50
poolieif you mean you could have a statement of the eventual length23:50
lifelesspoolie: and as jelmer has been coding this I'm asking him rather than digging up the pack spec to check23:50
pooliesure23:50
lifelessjelmer: so, do you know the output length of the object?23:51
jelmerlifeless, so fwiw, the delta unpack algorithm does not use the delta length23:51
jelmerlifeless, in dulwich' case we do know the delta length since we always do a complete decompress before applying a delta23:51
lifelessjelmer: Its not the delta length; what I was getting at was that if you know the objec tlength you could mmap a region of the right size and decompress into place23:52
damijitHello, I am wondering if it is save to move the top level directory for a bzr project (i.e., the  one that contains the .bzr directory). Will this cause any problems?23:52
damijit*safe23:52
jelmerlifeless, ah, sorry23:55
jelmerlifeless, the result size *is* known beforehand23:55
jelmerit's one of the two variable-size headers of the delta23:55
RAOFdamijit: Yes, it's safe.23:57
RAOFdamijit: As long as the contents of that directory stay the same, bzr is (almost) entirely oblivious to where it is.23:58
damijitRAOF: Thanks, that's good to  know23:58
jelmerlifeless, we don't use the result size, just for verification purposes23:59

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