/srv/irclogs.ubuntu.com/2008/10/15/#bzr.txt

mwhudsonpoolie: yes, i can reproduce with standalone trees00:14
pooliewow00:14
* mwhudson biles another fiug00:14
pooliethis is kind of surprising00:14
mwhudsonyes00:15
poolieit's probably shallow but i'm surprised it has not been hit before00:15
mwhudsonhttps://bugs.edge.launchpad.net/bzr/+bug/28347900:17
ubottuLaunchpad bug 283479 in bzr "set_stacked_on_location unconditionally(?) unlocks the repository" [Undecided,New]00:17
=== kiko is now known as kiko-fud
mwhudsonpoolie: oh, i know what's going on00:23
mwhudsonpoolie: unlock is trying to unlock all of the repositories00:23
poolieyes, i know :)00:23
mwhudson            for repo in self._fallback_repositories:00:23
mwhudson                repo.unlock()00:23
mwhudsonok, i hadn't figured this out yet :)00:23
pooliethe question is, why was the fallback repository not locked00:23
poolieor actually, why does it ever work00:24
mwhudsonwell, nothing locks it00:24
pooliei guess because we normally change it without locking the branch00:24
pooliewhich i think is actually a bug00:24
mwhudsonsee the other bug i filed today :)00:24
mwhudsonpoolie: i changed the description of the bug to be more honest :)00:28
mwhudsonpoolie: i guess the fix is to make set_stacked_on_location @need_write_lock and then lock the added repository somehow or other00:34
mwhudsonbut still leave the fallback repo unlocked when you open a branch00:34
mwhudson(unless now is the time to make "open and write lock a branch" a more primitive concept ...)00:35
pooliei agree up to <mwhudson> but still leave the fallback repo unlocked when you open a branch00:36
lifelessabentley: hey, do you know of code to go from iter_changes <-> inventory_delta ?00:44
lifeless(that is, to transform an inventory delta into a valid iter_changes output (without include_unchanged or want_unversioned); and/or vice vera to generate an inventory delta when given a iter_changes iterator00:45
abentleylifeless: Can't think of anything off the top of my head.  Though TreeTransform can emit both iter_changes and inventory_delta.00:47
lifelessabentley: I'm looking at making faster deltas between inventories given the capabilities of CHKInventory00:47
lifelessabentley: but I don't want to expose inventory centric API's :)00:48
pdf23dsIt would be nice if the commit command exposed the timestamp parameter of the commit object, as that way I could write my importer program using the bzr commandline.00:49
abentleylifeless: I always figured inventory_delta -> iter_changes was a lossy conversion, so I don't know about going backward.00:49
pdf23dsI think I have a patch that should do it to builtins.py. Is there a way I can apply that to a binary windows download?00:49
lifelesspdf23ds: if you're writing an importer I really encourage you to use the bzrlib api and python00:52
lifelesspdf23ds: as for changing the windows binary, I think you can edit the zip contents00:52
pdf23dsMy converter is for svn and extremely hacky. I doubt anyone else would be interested.00:53
lifelessabentley: so, add_inventory_delta is 20 times faster than add_inventory, currently00:53
pdf23dsWould I need to compile to a .pyo?00:53
lifelesspdf23ds: have you tried bzr-svn ?00:53
pdf23dsI have a multiple repository setup with many weird renames and only a few revisions. I don't want to even bother.00:54
pdf23dsMultiple project repository, that is.00:54
lifelessok, well up to you00:54
lifelessanyhow, I'd  remove the pyo and  pyc for the file you edit in the zip00:55
pdf23dsCool, it works.00:57
pdf23dsThanks.00:57
pdf23dsMercurial has that option, but I'm not going to go with mercurial because I don't like the branching as much.00:58
pdf23dsWhere would I request that this feature be added?00:59
lifelesspdf23ds: file a bug in launchpad.net/bzr01:00
lifelesshowever, we want the CLI to be good for humans, for scripting we encourage the use of python directly, it helps keep the UI cleaner01:00
pdf23dsWell, I program mainly in C# and don't really enjoy python. I wouldn't want to do much work in python.01:02
lifelessI believe there are C# bindings floating around01:02
lifelessanyhow, please file the bug01:02
lifelesswith your patch01:02
lifelessand you've gotten your conversion done now right? which is a one-time thing01:03
pdf23dsWell, it's an interactive and painstaking conversion, but it's now on its way.01:03
pdf23dsI won't really need the patch after that.01:03
pdf23dsOr probably need to do any other hacking on bzr. :)01:04
pdf23dsBut I'm glad it's python and not C or Haskell. :)01:04
pdf23dsUgh. stupid registration.01:07
pdf23dsI'll do it for the sake of open source.01:07
pdf23dsBTW, the view/annotate thing gives an error clicking on builtin.py from launchpad web source browser, but I can download the file. Should I report a bug on that one too?01:10
pdf23dsIRC sure is useful.01:17
lifelessabentley: if you're around02:31
lifelessabentley: I'd love feedback on the RFC I just sent about install_deltas02:31
abentleylifeless: You weren't very clear on whether this was deltas for everything or just for inventories.  It definitely seems reasonable if just for deltas.02:33
abentleyif just for *inventories*.02:33
lifelessabentley: good point; I was thinking of deltas of the inventory, and asking the tree for iter_file_bytes when new texts are needed02:35
abentleylifeless: And Revisions and Signatures would be fulltexts?02:36
lifelessrevision would be an object02:36
lifelesssignatures are the bytes of the signature as in install_revisions02:36
abentleylifeless: So is the "deltas" parameter really an iterable of tuples?02:37
lifelessyah02:38
lifelesseach tuple contains all the data for an individual revision - revision, signature, tree, basis_rev, inventory_delta02:38
lifelessan alternative signature Iw as thinking off02:39
lifeless*of*02:39
lifelesswas to pass in the source repo02:40
abentleylifeless: It seems like you could calculate the delta from the tree itself, no?02:40
lifelessand not pass the tree object in02:40
lifelessabentley: you can, and I have an install_revisions version that does this, but its not as efficient, because as its currently structured we check everything in the tree, and do the delta against the target repo not the source02:41
lifelessabentley: I'm wary of changing the behaviour of install_revisions, I'd rather add a new method that is explicitly delta based than find someone depends on a corner case of install revisions02:41
abentleylifeless: There's no Tree method that can calculate a delta efficiently (at least under ideal conditions)?02:42
lifelessabentley: there are two issues; one is that the ideal tree to calculate the delta against may not be present in the set being copied02:43
lifelessabentley: secondly is that the idea tree to calculate against may be representation dependent - that is:02:43
lifelesstime(make_delta(Tree-rev1-repoA, Tree-rev2-repoA)) may be much smaller than02:43
lifelesstime(make_delta(Tree-rev1-repoB, Tree-rev2-repoA))02:44
lifelessless abstractly02:44
lifelessfor xml inventories, doing a iteritems on the _byid attribute is very fast; for CHK inventories, doing that is very slow (because you page in all the pages of the two inventories)02:45
lifelessfor chk inventories, walking to common pointers is very fast02:45
abentleylifeless: If you take a source repository, it seems a lot like Repository.fetch02:46
lifelessfor xml_inventory <-> chk_inventory its worst case of all - you have to load the entirety of both inventories, and chk inventories require more IO to load a full single inventory (because its fragmented)02:46
lifelessabentley: (optionally taking a source repo) it does start to look a lot like fetch; thats why I decided against doing that02:46
lifelessabentley: on the other hand, perhaps I should just doing fetch-cleanups so that this can happen more totally within the normal fetch structure. (I'm looking at this for fetch from pack-0.92->chkinventory)02:48
abentleylifeless: I think that might be better.  Interfaces with iterables of tuples make me nervous, for some reason.02:49
lifelessabentley: well, install_revisions() takes a iterable of tuples02:50
lifelessabentley: I was patterning off that in that respect02:50
abentleyThat's true.  I was actually thinking of iter_changes.02:51
abentleylifeless: The fetch API doesn't care what two consenting repositories do behind closed doors, so I think it's a good way to achieve flexibility.02:52
lifelessabentley: right; note that fetch() is already involved here02:52
lifelessabentley: fetch -> InterDifferingSerializer -> install_revisions02:53
lifelessabentley: what was in my head was to change that to fetch -> InterDifferingSerializer -> install_revision_deltas02:53
lifelessabentley: the main thing being to move away from size_tree being embedded in the API02:53
abentleylifeless: But you could replace InterDifferingSerializer with InterDeltaLovingRepositories.02:53
lifelessabentley: sure, it still will either have, or want to use, a function/method that operates on deltas02:54
lifelessabentley: and there is no reason for it to only match delta loving repositories IMO02:55
abentleylifeless: Sure, but it has the option of doing *all* the file texts, then *all* the inventories, etc.02:55
lifelessabentley: well, InterDifferingSerializer has that option too doesn't it ?02:56
abentleylifeless: Yes, and it would look much cleaner if install_revisions wasn't involved.02:58
lifelessabentley: right; so thats what I'm proposing to do: to change IDS to not use install_revisions; and to use a new method that focuses on deltas instead02:59
lifelessabentley: another approach is to start working on the repository level streaming stuff again02:59
abentleyI don't understand why you want to do it that way, instead of implementing it directly on IDS.02:59
lifelessabentley: I think I'm assuming that there may be some repo centric code involved to get best performance03:01
lifelessabentley: so putting that on repo lets it be interface tested easilly03:01
lifelessI may be drawing the lines early/wrng03:02
lifelessabentley: also for reuse03:03
lifelesssomething embedded in the inter-object is harder for e.g. importers, bundles, etc to use03:04
=== kiko-fud is now known as kiko-zzz
abentleylifeless: If Repo is an input, it's similarly difficult for importers, bundles, etc.03:04
lifelessabentley: right; note that I didn't include Repo as an input03:05
lifelessabentley: I *considered* it03:05
abentleylifeless: Yeah, and we were discussing that option, weren't we?03:09
lifelessabentley: oh, I didn't click that it was a sub-discussion :P03:09
lifelessabentley: anyhow, the discussion has been great03:10
abentleyI guess, you know, a 5-tuple makes me uneasy.03:10
lifelessyah03:10
lifelessits close to an object is definitely better03:10
abentleyYup.03:11
lifelessits one-per-rev, so object creation count is bounded by history03:11
lifelessI'm comfortable making this objects03:11
abentleyOr perhaps a dict with namespaces?03:11
lifelessa dict would be faster than an object03:11
abentleylifeless: Yeah, object creation isn't that expensive here.03:12
lifelesslets say a dict for now, and a private-but-tested method03:12
lifelessonce it stabilises a bit, we can go for an object if we want to03:12
abentleylifeless: You'll lose ordering, and lose the ability to take a generator as input.  Is that okay?03:13
lifelessabentley: oh uhm clarity: I was proposing an iterator of dicts03:14
lifelesseach dict has the data for a single revision03:14
lifelessthe transform being (5-tuple -> dict)03:14
abentleylifeless: I mean that the dict would hold the entire input.03:15
lifelessabentley: oh03:15
abentleyThat's why I said "namespaced".03:15
lifelessabentley: I think that will not work due to memory03:15
abentleyBut your approach sounds fine.03:15
lifelessabentley: ok cool; yay compromise03:15
lifelessthanks03:16
abentleylifeless: np03:16
poolie_lifeless, spiv, i'm going to read https://code.edge.launchpad.net/~spiv/bzr-usertest/exit_codes/+merge/1309 unless you're already on it04:02
lifelesspoolie_: thanks, that would be useful04:03
lifelesspoolie_: if you're in a reviewing mood04:03
lifelessI have a commit-uses-delta patch needs review too04:03
poolie_lp reviews have more reasonable urls than BB04:03
poolie_spiv, are you around?04:13
spivI am.04:17
poolie_nm, i'm replying in launchpad04:29
poolie_spiv, it's approved with mumblings04:37
poolie_lifeless, orcadas may be better now; i'd changed the script to separate out stderr and i think it was not getting into the right file04:55
poolie_let me know04:55
poolie_the pulls are still pretty slow04:55
lifelesspoolie_: yes, thts why I'm working on pull :P05:41
poolie_:)05:42
spivpoolie_: could you merge http://people.ubuntu.com/~andrew/bzr/push-unlock-1.8 to 1.8 for 1.8 final?  I sent a mail to the list a while back asking for someone with permission to merge it, and I just realised it hasn't happened yet.06:09
poolie_sure06:09
spivpoolie_: thanks06:10
vilahi all06:39
poolie_hi vila06:49
vilapoolie_: ping06:59
lifelessgnight all07:10
gournight07:13
poolie_hi09:05
poolie_lifeless, nice explanation of formats09:17
lifelesspoolie_: thanks; felt compelled to reply to s turnbull09:28
vilapoolie_: ping09:29
poolie_hi vila09:30
vilalifeless: One thing worth mentioning on the subject is that everything changes09:30
vilaBeing able to handle these changes is what matters09:30
vilabut overall, very nice summary, thanks for that :)09:30
jmllifeless: hi09:31
poolie_that's a good way to put it vila09:32
jmllifeless: would now be a good time to get subunit and testresources into pyunit-friends?09:32
poolie_i think the experience of upgrades and ui could be better09:32
poolie_i think the bug about it is 9030209:32
poolie_not sure when we'll get to it though09:32
poolie_btw http://benchmark.bazaar-vcs.org/ now shows the machine load09:32
vilapoolie_: You couldn't even dream of making such a comment if bzr haven't already experienceS in upgrades... and really, *by default* nobody *has* to care about our formats most of the time09:34
jmlvila: I have to care about formats most of the time.09:34
vilajml: You're not the average bzr user :-)09:34
jml:)09:34
vilajml: Of course *you* have to care, but aren't you happy that 'bzr upgrade' exists ?09:35
jmlvila: very happy, actually.09:35
vilaMan, when bzr-1.6 begun to warn me about all my old branches still using old formats, I was just surprised there was so many, but none of the upgrades (like in None) has a single problem09:36
a_c_mis it possable to commit a "nothing changed" revision? We have several repro's and we want their revision id's to stay in sync09:36
jmla_c_m: it is possible (bzr commit --unchanged) but that sounds like a strange thing to want.09:37
jmla_c_m: why do you want the revnos to be the same?09:37
vilaubottu: bug #9030209:39
ubottuLaunchpad bug 90302 in bzr "Improve help-formats" [Medium,Confirmed] https://launchpad.net/bugs/9030209:39
a_c_mjml: we have 3 repro's for each project, /code /files and /database09:39
a_c_mjml: dev's only have commit access to /code, but the dev server pushes out to /files /code /database09:40
a_c_mjml: were still trying to work out the best process for what we need to do...09:42
jmla_c_m: *nod*09:42
jmla_c_m: what do you hope to gain from synchronizing revnos?09:43
a_c_mjml: being able to pull a full site (code, files and db) by knowing the revision number09:43
a_c_mjml: else they will get out of sync, and it will be harder to get a stapshot09:44
a_c_mno?09:44
poolie_a_c_m, hm, interesnting09:44
poolie_there is commit --unchanged which will do this09:45
poolie_you should probably also set append_revisions_only=True in the branch conf to stop people pushing over the branches and getting them out of sync09:45
a_c_mwow, i've just tested... i didnt think bzr could do partial commits ie from sub folders. That might solve the problem no?09:47
a_c_mif we just dont give write access to the /database and /files folders...09:48
a_c_mif they try to commit, from / it will just fail. but if they commit from /code - all will be well ?09:49
poolie_a_c_m, you can do this in the working copy09:52
poolie_the server can't enforce those permissions09:52
a_c_mahh09:52
poolie_though it would be feasible to write a server side hook that does check it09:52
poolie_not so hard but you would need to learn a little bit about the bzrlib api09:52
a_c_mpoolie_: it think its going to be simpler to use multi-repositories.09:54
a_c_mpoolie_: ugg...09:54
poolie_hm09:56
poolie_how strong do you need the security to be? how about a shell hook in the non-developer checkouts that just makes sure they've only changed the files they're meant to?09:57
a_c_mpoolie_: humm, could be but it needs to be really simple and cross system (mac, linux and windowS)09:58
poolie_so just to back up a bit09:59
poolie_if people are committing to these things independently, how do you know which version of the code goes with which version of the db?09:59
a_c_mlet me back up and explain the situation10:00
a_c_mugg its quite intricate... bear with me10:04
a_c_m3 repro's - code, database and files. Developers need to check out all 3, but only every update code, the dev server can be triggered to sync, which means, pulling in code and committing database and files. Developers should never be able to commit to files and database, except to keep the revision numbers in sync.10:08
a_c_mlooking at it, your solution of a single repro with a server side hook is probably my favorite, how long might that take someone who knows what they are doing?10:09
matkorhmmm how long bzr reconciel may work ? It's 10min already at and of bar ....10:12
AfCmatkor: (is the CPU still being used, or is it idle?)10:13
poolie_a_c_m, so what does the server do when it commits to the database and files?10:14
poolie_i guess i'm wondering: if there's no strict dependency between them10:14
poolie_why not just have say a 'deployment' branch of all three, and push to that when it's ready to go out10:15
poolie_similarly for 'staging' and whatever10:15
matkorAfC: CPU still used10:22
a_c_mso after a quick chat with poolie_ (many thanks) i'm going to try to clarify my problem again10:30
poolie_a_c_m, so the content in the database that's committed by the server - where does that come from?10:32
poolie_do people also log in to the server running the master db and make changes there?10:32
a_c_myes10:32
a_c_mvia drupal's main interface10:32
a_c_mthen we hope to have a sync.php script which dumps the db and performs the sync with the various repro's/folders10:33
a_c_mok, apologies for re-iterating what i'm trying to achieve, but i think i have it in a understandable format now :)10:38
a_c_mWere building out the development process for a new Drupal site. We want the DEV server to only ever be updated by a script which pulls from BZR, so no manual editing ever happens.10:39
a_c_mDrupal is brilliant but has a challenges, it stores a lot of config information in its database, so this needs to be backed up as well. For this reason we are thinking we need 3 repros (or folders), CODE, DATABSE and FILES.10:39
a_c_mThe developers should be able to check out all 3, but only every COMMIT to CODE. The DEV server will have a script on it which will dump the database and then COMMIT the user generate files to FILES and the database dump to DATABASE, after that it pulls in the CODE from bzr.10:39
a_c_mWith their code now on the DEV server, they log onto it and perform any of the db changes they need via the main drupal interface, once done, they commit thier chagnes again by re-running the sync script.10:39
a_c_mQuestion is, how can i best achive this with BZR?10:40
poolie_i think you should start by just having 3 branches, and committing to each of them either when you change the master db or whatever10:44
poolie_it's possible that the code will get out of sync with the drupal config, but i don't think that problem is actually technically soluble10:44
a_c_myeah, i'm starting to see that...10:45
a_c_moh, how about a post commit hook on the CODE repro ? which fires off a --unchanged commit on the other 2?10:45
a_c_m(to keep the revisions in sync)10:45
a_c_mi think, it might be ok to just have CODE and FILES (and store the db in FILES)10:46
a_c_mso there would need to be the corresponding hook on FILES to trigger a --unchanged on CODE...10:47
a_c_mbut that might do it ?10:47
vilamatkor: repository size is the main factor (overly simplifying), what is yours ?10:58
matkorvila: 121 [MB] .. it's now 1h of cpu time but progressbar is back in middle after "Inventory regenerated." message ...11:10
vilamatkor: it can take far longer than 1 hour, feel free to kill it and run it at night11:11
vilaguilhembi_: ping13:27
guilhembi_vila: pong13:28
uwsjelmer: pulling from webkit svn into my bzr branch using bzr-svn 0.4.13 icw bzr 1.8rc1 is very slow14:04
uwsjelmer: I remember to have had performance issues before.14:04
jelmeruws, can you run with -Dtransport and see which steps are slow (by looking at ~/.bzr.log) ?14:19
jelmeror perhaps, just pastebin ~/.bzr.log somewhere?14:19
uwsjelmer: running with -Dtransport now14:21
uwsdetermining changes 23541/3760214:21
uws^^ takes as while as well...14:21
uwsjelmer: each "svn update" takes time, and it's mostly cpu bound14:24
uws260.253  svn update -r36507:3650814:24
uws267.228  svn update -r36508:3650914:24
uwsjelmer: Aii... if I cancel and retry (as I did with -Dtransport) previously pulled revisions from the interrupted "bzr pull" are lost it seems... :S14:25
jelmeruws, yes, that's right because of the way bzr works14:28
jelmeruws, bzr-svn stores revisions in groups of 100 I think14:29
uwsjelmer: Ok, I'll just leave it running for a while then :)14:31
uwsjelmer: I'm running   "bzr -Dtransport pull"  right now, but there's not much debug info in .bzr.log, just the "svn update" lines and a few "XYZ copied from ABC" messages.14:32
jelmeruws, and that's the step that's slow?14:35
glade88hello.. If I have pushed a code once to a branch and I add a component to one of the subfolders of the code on my hard drive, how do I make the new change?14:36
glade88I have done: bzr commit -m "Added plugin"14:37
uwsjelmer: between 5 and 15 seconds in between each svn update line14:37
glade88and the bzr push <branch>14:37
jelmeruws, could it be that the server is just slow?14:37
uwsjelmer: sometimes even a lot more, ~30s14:37
uwsjelmer: could as well be... it has been faster before ;)14:38
=== kiko-zzz is now known as kiko
uwsjelmer: But if it's the SVN server being slow, why is bzr eating all my cpu :)14:48
jelmeruws, ah, hmm14:53
jelmeruws, I guess you'd better wait for 0.5 in that case, that should be a lot faster14:54
=== kiko is now known as kiko-phone
=== kiko-phone is now known as kiko
abentleyvila: Is there an SSH smart server we can use for testing?16:47
vilaI don't think so16:48
abentleyvila: Drat.  Makes it hard to test what user bzr+ssh is using...16:49
vilaabentley: I know the feeling :-/16:49
a_c_mhey all16:49
vilaI ahve vague plans to add some in the lp:~vila/bzr/local_test_server plugin but didn't find the time so far16:50
a_c_manyone know why 'bzr ci -m "test" ' wouldnt work in a php exec() statment, but 'bzr status' does?16:50
vilajam: ping16:55
=== kiko is now known as kiko-fud
=== cprov is now known as cprov-lunch
abentleyvila: OTOH, maybe I don't need a successful bzr+ssh operation...17:15
vilaas in whitebox testing that will attempt to connect with the right user ?17:16
vilas/that/& you/17:17
abentleyvila: right.17:17
vilaabentley: ha ! I just re-read the FIXME at the end of test_config.py :-/17:21
jelmerjames_w, I can reproduce Ted's problem now as well17:21
abentleyvila: Agreed :-/17:22
james_wjelmer: do you know what the cause is?17:28
james_wjelmer: did you also see the bug about the notification icon not being a notification?17:29
jelmerit's only started appearing recently so I suspect it's indeed some upstream change17:29
vilaabentley: I suppose your need is urgent ? Because I have less vague plans to implement http auth servers in lp:~vila/bzr/local-test-server and bzr+http, I never thought about ssh but that may be possible (but beware of the caveats I encoutered when trying to do ftp servers)17:30
jelmerjames_w, Yes, I saw it but I'm not sure I agree with the submitter17:30
james_wI kind of do17:30
james_wI think there will be more complaints about it17:30
vilaabentley: May be you can just plug an *existing*, running bzr+ssh server like I do in this plugin17:31
abentleyvila: not deadly urgent, but Launchpad developers have been barking their shins on it.17:31
* vila search for barking their shins...17:32
abentleybarking-their-shins~=banging-their-shins17:32
vilaHu hu, should be the rough equivalent of the french "pleurer leur mere" :)17:33
abentleyRaining their mother?17:34
vilacrying :)17:34
jelmer(-:17:34
jelmerjames_w: it's not just there for notification, also to allow you to e.g. enable gateway to LAN17:34
vilaraining is pleuvoir17:34
jelmerjames_w, perhaps it should just be disabled by default17:35
abentleyvila: Right.17:35
james_wjelmer: yeah, I think that would be better.17:35
vilaWoohoo ! Fixing bug #277537 with bzr reconcile requires 20 h, I was down to 2h10 last night with a dedicated plugin, and now I'm down to 312 *seconds*17:45
ubottuLaunchpad bug 277537 in bzr "annotate says revision modified file, "bzr diff -c" widly contradicts" [High,Triaged] https://launchpad.net/bugs/27753717:45
* vila had to share :)17:46
vilajam: ping ping ^17:46
LarstiQwoh17:48
LarstiQvila: it's fair to say it wasn't entirely optimized? :)17:48
vilaLarstiQ: Hold on ! I didn't optimize reconcile, I did a specific reconciliation17:48
vilafor a specific bug applicable only on specific repos based on results acquired with a bzr check that needded 32 hours17:49
vilabut yet... :)17:49
LarstiQvila: seeing as I have repositories with the exact same problem, I'm still interested :)17:50
a_c_manyone know what the return status of 3 means (or ideally where i can find a list of what the return status numbers mean?)18:03
LarstiQa_c_m: the same as diff(1), iirc 3 is modified18:04
LarstiQhmm, maybe not18:05
LarstiQa_c_m: right, 1 is modifications present in `bzr diff`, and 3 in general for bzr is an error occurred18:06
a_c_mLarstiQ: i'm trying to call bzr from php via exec... and getting that...18:06
a_c_many ideas?18:06
LarstiQa_c_m: I'd look at the output of bzr18:06
vilaif bzr returns 3 you should find something in stderr (or the php equivalent)18:07
a_c_mvila: LarstiQ: bzr --version works... bzr status ... returns nothing, but when i run the same command in a shell, it works fine18:07
LarstiQa_c_m: bzrlib/errors.py, EXIT_OK=0, EXIT_ERROR=3, EXIT_INTERNAL_ERROR=418:08
a_c_mLarstiQ: humm ok.18:08
LarstiQa_c_m: common causes, running `bzr st` while not in a branch18:09
vilaa_c_m: I don't know php but you need to get back the output from stderr and stdout, that's where bzr will explain why it fails18:09
a_c_mLarstiQ: humm ok will do some exsautive testing... thanks18:09
a_c_mvila: thanks too18:09
LarstiQa_c_m: which makes sense in an exec context. Are you sure the cwd is what it is supposed to be? (In other cases, the environment might not be what you think it is)18:10
a_c_mLarstiQ: thats the thing i've tried full urls e.g. /usr/bin/bzr st /home/me/foo/dir/18:12
a_c_mLarstiQ: still exists with 318:12
LarstiQa_c_m: and /home/me/foo/dir/ is actually a branch?18:13
LarstiQa_c_m: if that works in the shell, I'm not sure what is different with php18:14
a_c_mLarstiQ: yeah works in shell18:14
a_c_m:(18:14
LarstiQa_c_m: you could also check ~/.bzr.log18:14
a_c_mLarstiQ: aaah looking18:14
a_c_mLarstiQ: the plot thickens! bzr info work...18:25
=== cprov-lunch is now known as cprov
a_c_mLarstiQ: worked it out19:25
LarstiQa_c_m: what was it?19:25
a_c_mLarstiQ: it was due to the www-data user (who was doing the exec())19:25
a_c_mthier home dir was /var/www19:25
a_c_mwhich www-data doesnt have write access to, so couldnt make the .bazzar folder19:26
LarstiQ~/.bazaar/ you mean?19:27
a_c_myeah19:27
LarstiQah yes19:27
a_c_mas www-data is homed to /var/www19:27
LarstiQa_c_m: how did you figure this out?19:31
a_c_mexec('whoami')19:37
a_c_mthen su www-data19:38
a_c_mand then tried doing the same commands19:38
a_c_mi also get "No handlers could be found for logger "bzr"" message19:38
a_c_mbut it doesnt seems to matter19:38
jelmerw00t21:38
jelmer"bzr svn-serve" can now natively provide svn checkouts from bzr branches21:39
jelmerand it's *fast*21:39
jelmernot as fast as svn itself obviously, but < 15 seconds locally for bzr.dev21:40
Odd_Blokejelmer: So I do 'bzr svn-serve my_branch' and then can 'svn checkout' that branch?21:40
jelmerOdd_Bloke, yes21:40
jelmere.g.  svn co svn://145.97.197.14/trunk bzr.dev-trunk21:40
jelmer(that's running with bzr.dev now)21:40
jelmerIt's not as quick as locally as I haven't added zlib support yet21:41
Odd_Bloke21:41:58 < lamby> Has it been tested with git-svn? *g*21:43
jelmerIt provides only a subset of the svn smart server commands, but there's no reason why that shouldn't work :-)21:44
jelmerin particular, it can't do incremental updates yet, only full checkouts21:44
jelmerwhich would be a bit of an obstacle for git-svn ;-)21:44
thumperjelmer: why is this good?21:45
thumperjelmer: I'm just wondering who is going to use this functionality21:45
jelmerthumper: It means being able to provide svn access to users while migrating to bzr21:46
thumperdoes git offer this?21:46
jelmerthumper: E.g. you can use the netbeans svn plugin with a bzr repository21:46
thumperah, that's kinda nice21:47
LarstiQthumper: ie, leverage all of the 3rd party svn tools (but I guess you already got that)21:47
* thumper nods21:47
jelmerthumper, also, it allows users who are already familiar with svn a way to check out the source code of a project in bzr without having to install or learn bzr21:47
thumperand we all know there are lots of svn users out there21:48
jelmerthis last bit was one of the concerns within the Samba team while we were considering various DVCSes21:48
jelmerthumper, Git doesn't have anything like this as far as I know21:48
Verterokjelmer: WOW! that's awesome!21:50
jelmerit's also a bit faster than "bzr co --lightweight", 1m11 vs 3m07 here21:55
LarstiQjelmer: have you analysed what makes the difference?21:59
jelmerno, but I suspect it's because bzr co --lightweight hasn't been optimised yet22:01
jelmerLarstiQ, svn co basically means sending all the tree contents without requiring acks from the client until everything is received22:02
LarstiQjelmer: right, so I was wondering if it's over the wire roundtrips/fileformat, or perhaps that svn_serve does less work client side, or what22:03
jelmerLarstiQ, both22:06
jelmerthe number of round trips is far less with svnserve (4)22:06
jelmerand there's no dedicated verb for Repository.revision_tree() in the bzr smart server22:07
mwhudsonjelmer: wow, cool22:07
wingo-tpgood day bzr hackers!22:08
wingo-tplifeless.22:09
wingo-tpcan i interest you in a bug22:09
wingo-tpbugs are a good source of protein22:09
wingo-tphttps://bugs.launchpad.net/bzr/+bug/23949922:09
ubottuLaunchpad bug 239499 in bzr "corrupt knit index on an old arch-imported bzr repo" [Medium,Confirmed]22:09
LeoNerdHrm... bzr doesn't seem to like ControlMaster shared ssh22:11
LeoNerdControl socket connect(/home/leo/var/run/ssh-master-leo@cel.leo:22.sock): Connection refused22:11
LeoNerdsrw------- 1 leo leo 0 2008-10-13 00:42 ssh-master-leo@cel.leo:22.sock22:11
LarstiQLeoNerd: I did use the combination in the past22:12
LeoNerdYa.. I'm sure it has worked22:12
LeoNerd28109 connect(3, {sa_family=AF_FILE, path="/home/leo/var/run/ssh-master-leo@cel.leo:22.sock"...}, 51) = -1 ECONNREFUSED (Connection refused)22:13
jamLarstiQ: 'bzr co --lightweight' still does all the work locally (so it has to read the indexes, request the deltas, etc.)22:15
jamI believe spiv was going to implement a smart verb for "get_record_stream()" which would allow us to stream the texts directly to the client22:16
jamalong with other benefits22:16
LarstiQjam: yet it doesn't store any of those?22:16
LarstiQthat's ... suboptimal22:16
jam"store any of those" ?22:16
jamthe deltas, yeah22:16
LarstiQsorry, too broad22:17
LarstiQjam: in delta form, or just deflated?22:17
jamLarstiQ: I think it can depend on the parameters for 'get_record_stream()'22:18
jambut for building a working tree, it would set the "give me fulltexts".22:20
jamAs yet, we don't have a habit of having the bzr:// protocol do deflate22:21
jamit *could*, but if you are tunneling over ssh, it typically does it for you22:21
=== cody-somerville_ is now known as cody-somerville
james_wjelmer: hey, only just got round to looking at the bzr-gtk changes, sorry.22:28
james_wjelmer: does the change require that bzr-stats be installed during the build?22:28
james_wjelmer: or is that the "is_versioned" thing?22:29
jelmerjames_w, It's required while creating the .orig.tar.gz22:30
james_wok22:31
james_wI was going to re-use the 0.95 .orig.tar.gz22:31
jelmeryou should be able to just add a patch that adds the pickle file22:32
james_wis the pickle file binary?22:33
jelmernope22:34
james_wthere is a credits.pickle file already22:34
james_wdoes it just need installing?22:34
jelmeryeah22:34
jelmerthe changes I mentioned yesterday should take care of that22:34
james_whttp://paste.ubuntu.com/58061/22:36
james_wthat'd the diff I extracted from what you said22:36
james_wsorry for being slow22:36
=== fta_ is now known as fta
jelmerdid I include r607 ?22:37
james_wah, just got the range wrong, I'm sure22:38
james_wah, much better, thanks22:40
poolie_hi22:45
james_wthanks jelmer, I've just uploaded the change to install what's there, I'll sync up after release22:45
james_whi poolie_22:45
wingo-tpgoing to sleep -- but lifeless, i really would appreciate a look at that repo corruption bug -- I've had it for months at this point22:48
Peng_jelmer: ping?22:49
jelmerPeng_, pong22:49
Peng_jelmer: Hi. I have a bzr-svn 0.4 issue: if I 'bzr branch' from an svn checkout, it builds the branch, but tracebacks when building the working tree with "AttributeError: 'SvnWorkingTree' object has no attribute '_transport'".22:51
awilkinsjelmer: bzr svn-serve ooh22:51
Peng_I should file a bug, right? :P22:51
jelmerPeng_: There's already a bug open about it - it's fixed in trunk22:51
Peng_jelmer: Ah, OK. :)22:52
jelmer'morning poolie_22:52
Peng_jelmer: Should I use the trunk with bzr.dev? Is it fairly stable?22:52
poolie_hi jelmer22:53
jelmerPeng_, no, trunk is still unstable at this point. it will eat your cat, etc22:53
Peng_OK. I like my cat.22:53
Peng_I totally didn't think to search the bug database. Whoops.22:53
* awilkins thinks your cat is nice. With ketchup and fries.22:54
fullermdYou're crazy.  Ketchup is all wrong for cat.  Need something mayo-based.23:08
woeyehi all23:11
awilkinsStep 1: Gut, clean, and defur cat  2) Rub skin with salt, cumin, and oil  3) Spitroast on fire.23:11
fullermdThere's certainly room for a variety of opinions.  There is, after all, more than one way to skin a cat.23:11
fullermdWay #28: Krazy Glue and an electric toothbrush.23:12
awilkinsWay #79: Tie a pot magnet to it's tail and throw it into the Large Hadron Collider23:14
davidstraussIs it possible/sane to checkout from another checkout?23:18
fullermdI doubt it would be sane, whatever else it may be.23:19
davidstraussfullermd: What would you recommend for running a dev -> staging -> production flow?23:21
fullermdWay too broad   :)23:21
davidstraussmake dex and production both checkout of staging?23:21
davidstraussdev*23:22
fullermdIn MY flows, dev is local thing to the developer in whatever fashion, staging (well, doesn't exist, but the closest analog) and production are just different places that the files are copied by a developer.23:22
fullermdBut I don't have any of the three being branches or anything.  Version control doesn't touch deployment.23:23
fullermdIf they were, presumably they'd be different branches, and changes were moved up the tree as they were considered to advance.23:24
fullermde.g., devs would have whatever dev stuff they were dev'ing, staging would be a branch presumed-cooked dev bits were merged into, and production would be periodically pull'd staging.23:25
fullermdBut the best (or even 5th-best) answer depends pretty directly on exactly what and how you're dev'ing, what your deployment mechanism and schedule look like, yada yada.23:26
davidstraussfullermd: thanks anyway :-)23:35
lifelessdavidstrauss: if you want a waterfall of sucessively more tested locations23:38
lifelessdavidstrauss: I would use pull and branches23:39
davidstraussthanks23:39
lifelessbecause you may wish temporary divergence, for cherrypicking/emergency bugfixes in e.g. prod23:39
davidstraussEasier question: how can I get a listing of the pending updates? In svn, I use svn status --show-updates.23:50
bob2bzr missing23:51
bob2oh, for a checkout?23:51
davidstraussbob2: yes, for a checkout23:51
awilkinsdavidstrauss: bzr missing --theirs23:55
awilkinsdavidstrauss: THat's just reviiosn logs though23:55
spivHmm, bzr missing probably should work in checkouts.23:55
awilkinsyou can do status netween 2 branches, that should work23:55
davidstraussspiv: when i run it in a checkout, i get "bzr: ERROR: No peer location known or specified."23:55
spivawilkins: that doesn't appear to report revisions in the branch that aren't yet in the checkout23:55
spivdavidstrauss: sorry, I meant "it ought to be fixed to work", not that "it should already work for you" :)23:56
spivdavidstrauss: you can do "bzr missing --theirs BRANCH", where BRANCH is the path or url of the branch the checkout is of.23:59
spivI thought there was an easier way, but I can't remember what it is.23:59

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