[01:06] Good morning. [02:17] jelmer: hi? [02:17] spiv, hi === Ursinha-afk is now known as Ursinha === Ursinha is now known as Ursinha-afk [04:36] I've setup bzr on a box that's behind a fairly tight firewall. I thought bzr+ssh:// just needs port22 access -- apparently not sufficient. Are the required ports doc'd somewhere? I'm digging, not finding :-/ [04:36] bendj: it should just require 22 [04:38] mwhudson: Hm. getting, "ssh: connect to host bazaar.launchpad.net port 22: Connection timed out. bzr: ERROR: Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist. " [04:40] 'normal ssh' from the box works fine. [04:41] gremlins. sigh ... [04:41] bendj: can you run 'ssh bazaar.launchpad.net' from the command line? [04:42] mwhudson: I get "No shells on this server. Connection to bazaar.launchpad.net closed." [04:42] ok that's good [04:43] bendj: if you look in the ~/.bzr.log file i think you'll see the command line bzr is launching ssh wiht [04:43] *with [04:43] maybe there's something obviously funny in there [04:45] mwhudson: hm. that's full of non-ascii garbage. not good. uninstall/rebuild/reinstall, i s'pose? [04:46] bendj: what platform/bzr version? [04:46] bendj: maybe just delete .bzr.log to start with [04:47] opensuse 11.3, x86_64, Bazaar (bzr) 2.3.0dev1 (r5361) [04:47] mwhudson: hey, deleting the log file wokred! [04:47] er, worked [04:48] 1st time i've seen that :-| [04:48] odd [04:48] thx! [04:50] tt4n [05:28] is there anyway to tell where the bzr twisted impl of ssh is going to look for ssh keys? [05:28] * mtaylor is battling a windows machine at the moment [05:31] mtaylor: i think it prefers to look in the putty agent "pageant" if that's installed [05:32] i don't know of a way to say "what directory are you looking in" beyond boking into the source [05:32] poolie: nevermind actually - the wiki saved me [05:33] poolie: http://wiki.bazaar.canonical.com/Bzr_and_SSH ... it llooks in %USERPROFILE% apparently [05:40] mtaylor: actually, bzr doesn't use a Twisted client for SSH, I think that's a paramiko bug (it logs the server's name as the client's) [05:40] spiv: hehe [05:41] I guess because paramiko uses the same class for the client and server, but didn't parameterise that bit of the logging... [05:55] (I just filed a bug on paramiko about it.) [07:35] hi [07:35] .join #dorkbotpdx [07:35] oops [07:40] i created a new user and tried to push a new revision to a existing branch. unfortunately i get this error [07:40] http://pastebin.org/444166 [07:41] creating a new branch on the server is no problem, so the new user has write permissions [07:42] Having permissions to write a new branch doesn't mean they have write permissions in the existing branch. [07:42] was it the wrong to just commit the changes? do i have to do something like merge? [07:46] fullermd: how can I give a user permissions to write to an existing branch? [07:46] * fullermd shrugs. [07:47] chmod as appropriate. [07:48] As a first approximation, whatever perms are up a level that let the user create a new branch. [08:17] * spiv is done for the day [10:00] what data model uses bzr to store history? i.e. how is history recorded, and _what_ is recorded? [10:01] git uses commit/tree/blob, mercurial uses revlogs (changelog, manifest, filelog) [10:01] I'm not sure the question makes much sense... [10:02] bzr has its own names for these things, yes... but that doesn't really help answer the question [10:02] LeoNerd: i wasn't able to find documentation for this in bzr terms [10:02] and git and hg were just given to have examples, it's not easy to describe what i want [10:04] bzr branches contain revisions... if that answers your question? [10:04] you want a description of the models and datastructure used in the current achive format? [10:04] no, it doesn't [10:04] ddaa: yes! [10:04] I'm not familiar enough to give a good answer, but I know it would be pretty long. [10:05] i take pointers to documentation [10:05] First, unlike git, and probably hg, bzr has a layered design. [10:05] but i wasn't able to find proper docs [10:05] not even in bzr.bzr/docs/developers/… [10:05] There's a model layer, that deals with trees, branches, repositories, revisions, bzrdir, file revisions, etc. [10:06] i'm interested in how revisions go together with trees and files [10:06] and there are various transport/storage layers that translate that into actual storage/protocols [10:06] those involve things like indexes, packs, weaves, etc. [10:06] Then there is the tree format, with things like dirstate. [10:07] all those things are pretty much orthogonal [10:07] and most have multiple implementations [10:07] mostly historical [10:08] let me try explain what i want :D [10:08] if i do bzr commit (locally) [10:08] knitti, on the model level, a revision has some commit information, and an inventory [10:08] inventory = tree? [10:09] an inventory is a tree-like model that maps file ids to names, parent ids, and file revisons. [10:09] but i'm really wondering why there is no documentation? [10:09] (and probably a number of other metadata) [10:09] where/how are files stored? [10:10] The repository is a model that (among other things) store file contents addressed by file revision ids. [10:10] (other things include commit/revisions, inventories, and metadata such as tags) [10:10] why is there no documentation? [10:11] probably because nobody has bothered to write it. [10:11] Also, the source code is relatively well document. [10:11] documented [10:11] there is documentation on repository storage format [10:11] when packs was introduced [10:11] bialix: where? [10:11] bialix: I think he's more interested in the API model than in a specific storage format. [10:12] in docs/developers/ [10:12] the latter is not going to help much without the former, anyway. [10:12] ah [10:12] ddaa: no, i'm not interested in api [10:13] then, there is no docs because all devs have this knowledge implanted in their brains? [10:13] bialix: yes, it seems so [10:13] well, if you are interested in "the bzr storage format", know that there are number of them, and it's subject to change. [10:14] why would you want to access the on-disk storage format w/o bzrlib anyway? [10:14] That's an actual question. [10:14] I would like to [10:14] i know bzr changes format quite often, but i'm only interested in the current implementation/format [10:14] 2a? [10:14] knittl: it doesn't change much at all [10:14] and i don't want to access it, i am comparing various dvcss [10:15] write about advantages/disadvantages [10:15] lifeless knows everything [10:15] heh [10:15] knittl: the formats are documented in bzrlib.repofmts.* [10:15] and that includes describing on-disk storage format and relations between different types of objects [10:15] knittl: yes and no [10:15] relations are covered by the model stuff ddaa spoke about [10:15] knittl: and what it will say? [10:16] on disk format for individual things is determined by the classes the repo format uses - e.g. btree vs a linear index vs no index [10:16] what you are asking is kind of like asking 'what is the drizzle disk format' [10:16] where the answer is 'well, it depends. What plugin are you using?' [10:17] (or the mysql, or the postgresql, or oracle etc) [10:17] let my try again … [10:17] * ddaa gestures over at the svn repository format [10:17] git hashes every object [10:17] commit points to tree, tree points to trees and blobs [10:18] every object is stored in .git/objects/xx/xxxxx… [10:18] well you were right up to the last point [10:18] knitti wants to know how the bzr2 repository stores commits and trees, specifically [10:18] when you become wrong. [10:18] where xx/xxxxx… is the sha1 [10:18] hg has changelog, manifest and filelog (all a form of revlog) [10:19] you're conflating different layers [10:19] revlog stores sha1, 2 parents, length, base revision for delta and finally id of changeset (quasi a backreference) [10:20] so there's: 1 changelog, 1 manifest and for each file a filelog. in .hg/store/data/$filename [10:20] he's not really interested in all the nice layering in bzrlib, just in the current storage strategy [10:20] git has an object model and a storage model; the object model uses hashes as keys and has commit, tree and blob object types (and more these days). The storage model can have loose objects or packed objects, and they are indexed either by fs path or by a page based index. [10:21] is it really so much i'm asking for or am i being uncleaar what i actually want? [10:21] ddaa: I can see that, but he is confusing him self by analysing two wholly independent layers as one. So when we answer either question, we get told we're answering the wrong thing. [10:21] lifeless: i'm more interested in the object model (references between types) [10:21] but storage is also important. and storage models change often in bzr [10:22] knittl: bzr object model has commit -> inventory -> blobs [10:22] weave, knitpack, etc. [10:22] knittl: and commit -> signature [10:22] knittl: maybe this helps: http://doc.bazaar.canonical.com/bzr.2.1/developers/packrepo.html#technical-notes [10:22] knittl: this is documented in the developer docs in the very entry point under 'basic concepts' or something like that. [10:23] lifeless: i've read that page [10:23] what i took from it so far: knitpack is superior to older formats [10:23] knittl: I think you're answering bialix [10:24] hm? [10:24] http://doc.bazaar.canonical.com/bzr.dev/developers/overview.html - 'core concepts' [10:24] bah, 'core classes' [10:24] i think i can only understand on-disk after i've fully understood object model [10:25] core classes are workingtree/branch/repository? [10:25] where's commit? where are blobs? [10:25] yeah, there is less there than I thought :) its handwaved at under repository [10:25] sorry [10:26] knittl: there is no "blobs" in your understanding [10:26] you're using wrong terms [10:26] bialix: 11:24 < lifeless> knittl: bzr object model has commit -> inventory -> blobs [10:26] okay, but we call them differently [10:26] commit is revision object [10:27] blobs are file objects [10:27] something like that [10:27] (also there is a formatting issue on that page: the list under repository) [10:27] bialix: ok, revision. i use git a lot, so i'm used to the term 'commit' [10:30] and storage and object model go hand in hand. at least in hg and git [10:30] *grin* [10:32] it depends how you're looking at things [10:33] knittl: they don't go that hand in hand [10:33] knittl: google have a bigtable implementation of hg, which has _very little_ to do with the revlog implementation in the public code, from what I hear. [10:33] and git has multiple storage engines too (loose vs packed) [10:35] but somewhat [10:35] so, how are revision objects, inventory objects and file objects in bzr linked together? [10:36] with references, of course [10:36] and they reference what? revnos? hashes? [10:36] [12:26] bialix: 11:24 < lifeless> knittl: bzr object model has commit -> inventory -> blobs [10:36] GUID [10:36] bialix: yep. but how? [10:36] guid. good [10:37] what's that signature object you talked about earlier? [10:39] signature? I guess you're asking about revision signature. This is gpg signature for revision object [10:40] something similar exists in git too [10:40] A signature's ID is the ID of the revision it is a signature of. [10:41] * bialix bbl [10:50] but that would mean signature -> revision [10:50] ? [10:51] What does the "->" denote, precisely? [10:51] That a signature references a particular revision via the revision ID? Yes. [10:52] spiv: yes [10:52] the example/explanation i was given before was »and revision -> signature« [10:52] which made no sense for gpg signatures [10:53] Well, if you have a revision, you can use it's ID to lookup the signature. [10:53] (And perhaps find that there is no signature for that revision) [10:53] s/it's/its/ [10:54] So, in that sense, "revision -> signature" is also correct. [11:01] but revision has no pointer to signature id [11:02] It has exactly as much as a pointer as signature has to revision. [11:03] kind of, a revision has a revision id. This one is not strictly a reference, it's an association. Like two relational tables with matching primary keys. [11:04] revision id is stored with signature [11:04] and signature can be looked up if revid is given [11:04] but revision does _not_ store the id of the signature [11:04] yes it does, the id of the signature in the revid [11:04] Let's say you have a revision ID 'xyz'. You can retrieve the revision record from the repository's revisions store with the key 'xyz'. You can also retrieve the corresponding signature from the repository's signatures store with the key 'xyz'. [11:04] s/in/is/ [11:05] That is to say, having the revision ID means you have the signature's ID (and vice versa). [11:06] If you like, you can represent the keyspace for bzr's internal storage as tuples that look like (store_name, key_part_1 [, key_part_2, ...]) [11:06] revid and signature id are the same? [11:06] yes they are [11:07] different namespaces, I guess [11:07] ok [11:07] In that unified keyspace that revision's key would be ('revisions', 'xyz') and the signature's key would be ('signatures', 'xyz'). [11:08] Obviously it is trivial to determine one from the other. [11:08] that means forging signatures is possible? [11:08] No. [11:08] or is this prevented somehow? [11:08] signatures are GPG signatures [11:08] The ID of the signature is not the content of the signature. [11:09] spiv: yes [11:09] so how can i verify the gpg-signature is the original? [11:09] what do you mean by original? [11:09] i create a new revision [11:10] i sign it [11:10] You have a revision. You have a signature. You can determine with GPG if that signature is a valid signature for the revision, and you can then decide how much you trust the signer. [11:10] spiv thank you [11:10] knitti, then I sign it too [11:10] ok, trusting the signer. thanks spiv, makes sense [11:10] ddaa: why do you always write knitti with an i? xD [11:11] knittl:because my typing skills are better than my eyesight. [11:12] knittl: you need to be a bit familiar with how gpg is used for this stuff to make sense. The GPG notion of "trust" is a bit peculiar. [11:17] ddaa: i understand now [11:17] i was only a bit confused [11:19] public key is tricksy stuff ;) [11:30] poolie: pong [11:49] spiv: ping, if you still around [11:49] spiv: question about smart server aka `bzr serve`. [11:50] * bialix waves at GaryvdM [11:50] Hi bialix. [11:51] GaryvdM: thanks for bzrw [11:51] \o/ [11:51] \o/ [11:57] bialix: slightly around [11:58] spiv: bzr serve uses port 4155 (IIRC). when client connects to this port server creates separate thread for this client, is it correct? [11:59] if that correct does server creates new socket pair for particular client? or this is wrong question? [12:00] I mean it won't be possible to another client re-use the previous connection and server states [12:01] The server creates a new thread, yes. [12:02] The server doesn't create a socket pair, it just calls accept on the listening socket, and that returns the socket object for the new connection. [12:02] (See the Python docs for socket.listen and the accept() method of socket objects) [12:03] Er, actually, they are both methods of socket objects, but you know what I meant I'm sure :) [12:05] ok [12:06] spiv: what is state of VFS calls? [12:20] bialix: no recent changes. They are still used by many common operations. [12:21] ok, I wonder is it possible to create new hpss protocol version via plugin to address Bug #126911 [12:21] Launchpad bug 126911 in Bazaar "Smart server has no built in authentication (affected: 2, heat: 34)" [Medium,Confirmed] https://launchpad.net/bugs/126911 [12:21] at least as experiment [12:21] I'm not spending much time on improving that at the moment. I occasionally fix one more case, but there's still lots to do... [12:22] I think that would be possible. [12:22] it should be fixed at client side first? [12:22] The VFS calls? [12:22] yes [12:22] Well, most remaining cases need a new verb to fix, so both sides. [12:23] verb are not documented? [12:23] The SmartServerRequest subclasses have docstrings. [12:24] I found network-protocol.txt and it has some gaps about requests and errors with XXX contributions welcome [12:24] And the complete list of verbs (and what classes are used to implement them) can be seen at the bottom of bzrlib/smart/request.py [12:24] ok [12:24] Contributions certainly are welcome! :) [12:24] Currently for anything not in that document the code is the best (and only) reference. [12:25] I may try to add this to docs as part of my learning of hpss [12:25] yes, that's right [12:25] That would be lovely, thanks! [12:26] request_handlers.register_lazy( [12:26] 'Branch.set_tags_bytes', 'bzrlib.smart.branch', [12:26] 'SmartServerBranchSetTagsBytes') [12:26] what is the verb here? the first? [12:27] yes [12:28] so idea is to have verb similar to python expression used to do the work on local objects? [12:29] and IIUC things like request_handlers.register_lazy('list_dir', 'bzrlib.smart.vfs', 'ListDirRequest') are VFS calls [12:48] Yes, the VFS verbs are the ones implemented in bzrlib.smart.vfs [12:48] hi [12:48] how to revert changeset in bzr? with git I would do "git revert REVISION" but how in bzr? [12:49] And we do try to keep the network API matching the Python one where possible, unless there's a good reason not to. [12:50] hrw: merge the reverse of the revision, and commit that [12:50] "bzr help revert" mentions the recipe: 'For example, "merge . --revision -2..-3" will remove the changes introduced by -2' [12:51] (-2 is the notation for "2nd most recent commit") [12:51] spiv: like in cvs then [12:51] See also "bzr uncommit". [12:52] I want to remove HEAD~3 so uncommit is not a solution [12:52] will export patch, revert it etc [12:52] You don't need to export a patch. [12:53] Simply do "bzr merge . -r -3..-4 && bzr commit" [12:54] (Exporting a patch has basically the same effect, except it isn't as good at undoing deletes or changes to binary files) [12:55] (Or at undoing renames of directories...) [12:56] thx [13:23] Huh, I think I just found a cheap way to shrink the size of inventory file instances by about 20%. === Ursinha-afk is now known as Ursinha [14:03] GaryvdM: ping [14:25] bialix: Pong [14:26] GaryvdM: I need your expertise on http://groups.google.com/group/qbzr/browse_thread/thread/af4d21e4f6cd2a79 (last mnessage) [14:27] GaryvdM: and we need tree name for 0.19 final, something related to meerkats maybe [14:28] bialix: Looks good. [14:28] okay, I will land it [14:29] GaryvdM: I've decided to prepare 0.18.7, to get me in the qbzr-dev mindset [14:59] I'm getting this crash when trying to clone a git repo on github with bzr-git. http://pastebin.com/DMXFS1ds [14:59] I'm using the ppa stable version for lucid if that makes a difference [15:00] I can just download the source, the history isn't really that important. [15:01] rubbs: Hi [15:01] rubbs: This is a known issue, fixed in newer versions of bzr-git [15:01] rubbs: What PPA are you using? I don't think there is one... [15:02] jelmer: sorry didn't know it was fixed. I just have the bzr ppa, I guess I for some reason thought bzr-git was packaged in that, but now that I think about it, it doesn't make sense [15:02] I installed bzr-git with aptitude [15:02] I'll do a manual install with the newest git. [15:03] rubbs: You probably want to add this PPA that packags the latest bzr-git: [15:03] jelmer: awesome will do thanks. [15:04] https://edge.launchpad.net/~mathiaz/+archive/bzr-git [15:04] (well, not recent but recent enough) [15:10] jelmer: that worked perfectly thank you. I guess I should have googled before bothering you ;) [15:20] rubbs, no worries. we should proball [15:20] ly upload this newer version to lucid as well, but I haven't found time to do that yet. [15:21] understandable. I'm only barely starting to get some free time left. I am hoping to get back into helping the bzr-doc team again. I've been busy with a new job so I've had to cut back a little. === deryck is now known as deryck[lunch] [17:11] i get a traceback when running 'bzr status': http://paste.ubuntu.com/472713/ [17:11] any idea of what's wrong? === beuno is now known as beuno-lunch [17:17] on a related note, why is the latest upload to the bzr-nightly ppa two months old, and the latest beta isn't in the bzr-beta ppa? [17:17] james_w: ^^^ [17:24] They've not been very well maintained [17:25] Maybe I should volunteer [17:25] I'm already managing PPAs of svn and mercurial :-) [17:25] maxb: that would be excellent :) [17:25] and tortoisehg [17:25] Then I'd just need git to complete the set [17:27] I wonder how many people actually care about bzr-nightly - wouldn't you just run bzr from a branch? [17:30] maxb: well, it's quite handy letting apt handle the updating, and being able to easily revert back to older released versions, if needed. [17:33] maxb: also, not having to bother about building it properly is also a plus (considering 'make' just failed to build the C extensions :) ) [17:33] heh [17:39] https://bugs.edge.launchpad.net/bzr/+bug/613066 [17:39] Launchpad bug 613066 in Bazaar "IndexError when running bzr status (affected: 1, heat: 6)" [Undecided,New] === oubiwann is now known as oubiwann-away === oubiwann-away is now known as oubiwann === beuno-lunch is now known as beuno === andreaa is now known as andreaa`afk === khmarbaise_ is now known as khmarbaise [23:01] jam, hi [23:03] hi Ursinha [23:03] jam, I just submitted the mp for the bzr-pqm changes: https://code.edge.launchpad.net/~ursinha/bzr-pqm/add-noqa-incr-lpland/+merge/31703 [23:04] Ursinha: I see it, and it showed up for review normally (though there are 2 review requests) [23:05] jam, ah, please, ignore the first one, trigger happy here and I submitted before I should [23:12] Anyone else using bzr 2.2 and finding it has a regression in clearing progress messages from the terminal? === Ursinha is now known as Ursinha-brb [23:17] bug 611127 [23:17] Launchpad bug 611127 in Bazaar "progress bar does not clear correctly (affected: 2, heat: 12)" [Medium,Confirmed] https://launchpad.net/bugs/611127 [23:19] ah :-/ === andreaa`afk is now known as andreaa [23:51] hi mgz, maxb === Ursinha-brb is now known as Ursinha-afk [23:53] hey poolie. just getting back to working out what breaks with python 2.7 [23:56] poolie: hey Martin. Hope all is well with you. Is there a trick to getting companies behind a proxied firewall to speak lp: (bzr to LP)?? [23:57] poolie: if it's documented, you could point me there. Still haven't found it [23:58] mrjazzcat: http_proxy and https_proxy both need to be set, and you need bzr 2.2 [23:58] mrjazzcat: also, if you're logged in, you need port 22 - ssh - open [23:59] hey lifeless: thanks. I'll go mess with that. Yes, I was thinking it should go through ssh. Thank you!