[01:18] <_habnabit> Is there a way to have a directory in a bzr repo link to another repo, like svn can?
[03:22] <nprasath002> where can i download a netbeans plugin for bazaar??
[03:24] <nprasath002> does netbeans have a bzr plugin?
[14:30] <SuperBrain> Hello
[14:31] <SuperBrain> I have just installed Bazaar on Windows (7) ad I have a question.
[14:31] <SuperBrain> The "Configuration" button on the "Setup and personalize Bazaar" part of the Bazaar Explorer application is not working at all.
[14:32] <SuperBrain> Has anyone had the same problem and can anyone tell me what to do to "activate" this option?
[14:34] <SuperBrain> To be more exact, nothing is happening when I press the mentioned button.
[14:35] <GaryvdM> SuperBrain: Yes - That is a known bug with bzr 2.2
[14:35] <GaryvdM> SuperBrain: well to be exact, an incompatibilty with qbzr and bzr.
[14:36] <SuperBrain> Is there a solution or a workaround?
[14:36] <GaryvdM> SuperBrain: Fix 1: from console run bzr whoami "Name <email>"
[14:36] <GaryvdM> SuperBrain: Fix 2: Install qbzr 0.19.1
[14:37] <GaryvdM> SuperBrain: http://launchpad.net/qbzr/0.19/0.19.1/+download/qbzr-setup-0.19.1.exe
[14:37] <SuperBrain> Ok. Thanks a lot. I will try that.
[14:38] <SuperBrain> Fix 1 solved the problem :)
[14:38] <GaryvdM> SuperBrain: It's Bug 622336 if you are interested.
[14:38] <ubot5`> Launchpad bug 622336 in QBzr 0.19 "qconfig: Can't open if whoami not set with bzr 2.2 (affected: 2, heat: 13)" [Critical,Fix released] https://launchpad.net/bugs/622336
[14:50] <SuperBrain> I have another question which may sound a bit strange.
[14:51] <SuperBrain> I would like to set up a Bazaar "server" on the Windows Server machine which will hold the central repositories.
[14:52] <SuperBrain> Can someone point me to a site where it is explained how to do something like this?
[14:52] <GaryvdM> SuperBrain: Bazaar is very flexable as to how one can share branches. You can just create a file share.
[14:53] <GaryvdM> SuperBrain: As to how to create a smart server, I'm not exactly sure.
[14:54] <GaryvdM> SuperBrain: I've never done this, so YMMV - set up openssh server and then use bzr+ssh url.
[14:54] <rubbs> SuperBrain: I have used Bzr's offical docs to set up our server, but I'm using Linux, I'm not sure the best way to do it with Windows.
[14:54] <SuperBrain> Is it possible to set it up using Apache for example (WEBDAV or something)?
[14:55] <SuperBrain> I would like to be able to access my repositories over the internet using http or https urls, not by using shared folders.
[14:55] <GaryvdM> SuperBrain: Yes - http (read only) or bzr+http (smart server) or webdav
[14:55] <GaryvdM> I think webdav needs a plugin
[14:56] <SuperBrain> Is smart server a separate component of Bazaar or is it integrated?
[14:56] <rubbs> integrated basically
[14:56] <GaryvdM> I would recommend trying to setup the smart server
[14:56] <rubbs> http://doc.bazaar.canonical.com/bzr.2.2/en/admin-guide/index.html
[14:56] <rubbs> This link shows how to set up various bzr servers
[14:56] <rubbs> most are for Linux, but somewill work with windows too IIRC
[14:57] <GaryvdM> SuperBrain: http://doc.bazaar.canonical.com/latest/en/user-guide/http_smart_server.html
 maxb: I think this is a qbzr issue since everything works fine using plain bzr
 that seems rather odd. Possible, but odd
 maxb: Yeah, maybe it's something to do with canonicalization of links or something like that. Anyway I'm off for now, I'll check the differences between the commands I'm running and the ones qbzr is running tomorrow. Bye, and thanks for the help!
[18:05] <JoshBrown> maxb: Turns out my Bash shell is expanding `~` to `/home/josh`, whereas qbzr doesn't. Is this a bug?
[18:23] <GaryvdM> JoshBrown: Yes - I would call that a bug. Where in qbzr is this?
[19:12]  * jelmer waves
[19:13] <jelmer> GaryvdM: happy birthday :-)
[19:14] <GaryvdM> Thanks jelmer.
[19:34] <GaryvdM> Any TDD experts here? How should one test that a piece of code dose something that is important for the performance of the code, but does not affect the output.
[19:35] <GaryvdM> e.g. qlog tries to load data from the local repos before it tries to load data from remote repos.
[19:35] <GaryvdM> Should the tests check that it is doing this?
[19:36] <jelmer> GaryvdM: ideally, yes
[19:37] <jelmer> GaryvdM: I guess you could create a wrapper repository object that recalls when it is accessed and then use that to check which one was accessed first?
[19:38] <GaryvdM> Ok  - or tells you which revisions were loaded
[20:06] <lifeless> moin
[20:07] <lifeless> jelmer's approach is what I'd do
[20:07] <lifeless> something like:
[20:07] <lifeless> LoggingRepository(output_list)
[20:07] <lifeless> sorry
[20:07] <lifeless> LoggingRepository(wrapped_repo, output_list)
[20:07] <lifeless> if you output tuples (wrapped_repo, method, params) -> output_list
[20:08] <lifeless> you'll have a sequence of both repositories calls in a timeline and can see whats what
[20:08] <lifeless> alternatively, as you're working with a stable API, you could use a stub/mock instead for a lighter test, but I wouldn't actually both here
[20:40] <GaryvdM> lifeless: Thank
[20:40] <lifeless> s/both/bother/
[20:40] <vila> lifeless: and how would you use a matcher to check the results ? (say one where you could say things like this repo before this repo or this revision from this repo)
[20:43] <lifeless> so a mastch is 'repo A is requested rev X before repo B', or thereabouts.
[20:43] <lifeless> I think we're going to need 'getter' adapters for matchers to make them -really-really-reusable.
[20:45] <lifeless> anyhow, 'repo A requested rev X if (pos_repo_A_revX_request > -1 and pos_repo_A_revX_request < pos_repo_B_revX_request) or (pos_repo_B_revX_request == -1)
[20:45] <GaryvdM> I'm having a good time writing tests for qlog. I've written all this in the last while: http://bazaar.launchpad.net/~garyvdm/qbzr/log_refactor/annotate/head:/lib/tests/test_loggraphprovider.py
[20:45] <lifeless> so you could build a composite with LessThan and so on, but I'd just write a specific matcher
[20:46] <GaryvdM> only 18 test so far, but for a wide variety of graph shapes :-)
[20:46] <lifeless> one that takes repo A, repo B and the api call to look for
[20:47] <vila> lifeless: I see
[20:49] <GaryvdM> lifeless: for this, I think it would be good enough to check that rev-x was not load from remote-repo.
[20:49] <vila> GaryvdM: /me drooling on the test names and their easy-to-grasp associated graph representation
[20:49] <GaryvdM> :-)
[20:50] <vila> GaryvdM: but you're still specifying too much IMHO :-P
[20:51] <vila> Ideally the input of your assert should be the drawing you have in comment, with a revno/revid (whatever) for each line where a circle appears
[20:51] <GaryvdM> vila: Ye-
[20:52] <GaryvdM> vila: yes - but to parse that would be difficult.
[20:52] <GaryvdM> btw - most of the numbers you see there are not revnos but column indexes
[20:52] <vila> GaryvdM: you're kidding right ?
[20:53] <vila> GaryvdM: and the column indexes defines where the dash and the circles are as well of their shape ?
[20:53] <GaryvdM> vila: An - no - no kidding
[20:53] <GaryvdM> vila: Yes
[20:54] <GaryvdM> s/An/Ah/
[20:55] <GaryvdM> An some of the numbers indicate the color
[20:55] <GaryvdM> s/an/and/
[20:56] <vila> GaryvdM: well, I see no color in your comments :-D :-P
[20:56] <lifeless> GaryvdM: sure, for that then Not(Contains(<repo B asked for X>)
[20:56] <GaryvdM> vila: Yes - I'm still working on that one...
[20:56] <lifeless> so I'd write a single new matcher 'Repo asked for rev'
[20:56] <lifeless> Not(Contains(AskedForRevision(B, X)))
[20:57] <vila> GaryvdM: is print_lines purpose is to print the comment from the assertComputed input ?
[20:57] <lifeless> and if you want you can wrap that up in a factory object
[20:57] <GaryvdM> vila: Yes
[20:58] <GaryvdM> vila: Oh - no - format_graph_lines is what assertComputed uses
[20:58] <GaryvdM> print_lines is just a debuging helper. It can come out...
[20:59] <vila> GaryvdM: oh, right, the unicode parameter
[20:59] <vila> lifeless: great example, thanks
[21:00] <knittl> hm. did i read this right? bzr stores versions per line which are groupd together into a file?
[21:00] <GaryvdM> vila: I still need to code it to figure out if it is safe to output unicode.
[21:01] <GaryvdM> knittl: Not sure I understand your question correctly. Does it relate to the recent channel topic?
[21:01] <vila> GaryvdM: yeah, right, that function is far too long to survive without associated tests ;)
[21:01] <knittl> GaryvdM: no, to my research ^^
[21:02] <knittl> i wasn't reading along, sorry if i interrupt
[21:02] <lifeless> knittl: some context would be needed to answer that, I think.
[21:02] <GaryvdM> knittl: np
[21:02] <lifeless> knittl: if you are referring to the weave serialisation format, thats obsolete, kept for compat
[21:03] <knittl> lifeless: i'm reading groupcompress (spiv told me yesterday)
[21:03] <lifeless> groupcompress isn't lined based
[21:03] <knittl> it reads like, because of all the add_lines methods
[21:04] <lifeless> the python implementation uses lines rather than bytes for performance reasons, but the C implementation (pyx) matches on bytes
[21:04] <knittl> pyx is c?
[21:04] <lifeless> knittl: thats the VersionedFile contract, you probably want to read it first
[21:04] <lifeless> knittl: pyx is pyrex, which compiles to C and then to a .so
[21:05] <knittl> lifeless: i've read versionedfile, but i wasn't getting any smarter ^^
[21:05] <vila> GaryvdM: can you add a comment in your source describing which is which in that input list ?
[21:05] <vila> GaryvdM: or is there one I missed ?
[21:07] <GaryvdM> vila: Ok - I'll do that.
[21:07] <knittl> any thoughts on http://bazaar.launchpad.net/~knittl/bzr/cat-signature/revision/5434?
[21:07] <GaryvdM> vila: The computed_to_list will give you a hint
[21:10] <vila> knittl: given the current discussion, the most obvious one is: where are the tests ?
[21:11] <knittl> vila: i thought a day about tests (still haven't read the current discussion), but a test would just do the same thing?
[21:11] <knittl> i.e. get the signature
[21:11] <vila> knittl: no, it will call the code that will get the signature and verify that the correct signature is indeed obtained
[21:12] <knittl> so the test stores the signature as plaintext and then compares it?
[21:12] <vila> knittl: and will catch any regression if this code or the code it used is modified
[21:13] <vila> knittl: yes, that's the point
[21:13] <knittl> ok, i can do that
[21:14] <vila> knittl: other tests will verify the behaviour with different arguments (aka branch, format, etc)
[21:14] <knittl> how do i create a branch from the secondlast commit in bzr?
[21:14] <vila> knittl: alos, if you make a merge proposal it will make it easier to view the overall patch you're proposing
[21:15] <vila> bzr branch -r-2 ../new_branch
[21:15] <knittl> but that will copy the whole directory :-/
[21:15] <vila> bzr branch -r-2 ../new_branch --no-tree
[21:15] <knittl> i simply want to ignore the last commit and work starting at the second last
[21:16]  * GaryvdM discovers ghosts in the very early history of bzr.dev, e.g parent 897 -  john@arbash-meinel.com-20050709180338-33e3b5a778df9104
[21:16] <vila> ha, that would be: bzr uncommit ; bzr revert
[21:16] <vila> GaryvdM: hehe, preciously kept as real-life test data ;-)
[21:17] <GaryvdM> ha ha - And the next ghost is a fix for ghosts in log
[21:17] <knittl> not a branch: ~/bzr/new-branch
[21:17] <knittl> bzr uncommit; bzr revert? will that work when i've already made new commits?
[21:17] <GaryvdM> should be bzr branch . -r-2 ../new_branc
[21:18] <knittl> wtf? why is it copying 33k files?
[21:18] <vila> knittl: you said you did only one additional commit (and good catch GaryvdM ;)
[21:18] <lifeless> knittl: why do you think its copying that many files?
[21:19] <knittl> lifeless: because it says inserting stream xxx/336923
[21:19] <knittl> 336k even …
[21:19] <lifeless> thats stored texts
[21:19] <lifeless> not files
[21:19] <lifeless> objects in the system
[21:19] <knittl> why is it copying? i simply wanted to create a new branch
[21:19] <knittl> it's taking forever
[21:19] <GaryvdM> knittl: you should use a shared repo.
[21:20] <GaryvdM> :-( ui fail
[21:20] <knittl> i have a bzr clone
[21:21] <knittl> created a new dir? without files?
[21:21] <knittl> but still 51m?
[21:21] <knittl> mumble mumble … oO
[21:21] <knittl> i'll never understand bzr
[21:22] <vila> knittl: it looks like you didn't create a shared repo. Since it's the default model in git and needs an explicit command for bzr, many people do this mistake which is why GaryvdM said UI fail.
[21:22] <GaryvdM> knittl: I think you ran branch with --no-tree. Not sure why vila mentioned that.
[21:23] <GaryvdM> knittl: To undo --no-tree, run bzr checkout
[21:23] <GaryvdM> (in branch)
[21:23] <knittl> why do i need to tell bzr all that?
[21:23] <lifeless> knittl: 51 minutes ?!
[21:23] <knittl> also that will use twice the space on hd?
[21:23] <lifeless> knittl: eeven a full clone of bzr is only a minute or so
[21:23] <vila> lifeless: MO I suspect
[21:23] <knittl> lifeless: megabytes
[21:24] <vila> knittl: that's the whole history of the project
[21:25] <knittl> i didn't want to clone, i wanted a branch
[21:25] <vila> there are several kind of branches in bzr, you didn't specify which
[21:25] <knittl> a normal branchy branch
[21:26] <GaryvdM> knittl: We call a git branch a colocated branch, which we don't do out of the box
[21:26] <vila> the default one, when you first use bzr is a standalone branch which stores its revisions in its own repo
[21:26] <knittl> why isn't that default?
[21:26] <GaryvdM> knittl: what we call a branch is like a git clone
[21:27] <knittl> WHY?
[21:27] <vila> different point of views leads to different results, you've got all the bzr history available
[21:27] <vila> WHY NOT ?
[21:27] <knittl> because it takes up too much space for my liking
[21:27] <vila> why's questions are not wise...
[21:27] <vila> don't do that then
[21:27] <GaryvdM> knittl: A shared repo allows the history data to be shared between the 2 branches.
[21:27] <vila> use a shared repo
[21:27] <lifeless> hey hey calm
[21:27] <lifeless> its like it is because thats how bzr grew
[21:28] <GaryvdM> or x branches
[21:28] <lifeless> and changing it - may - happen, but it needs to be done with care
[21:28] <lifeless> including having the colocated stuff /really/ polished first.
[21:28] <lifeless> If you're going to break 6 years of doco you want to be prepared
[21:28] <knittl> i don't see any advantage in creating clones and clones and clones
[21:28] <knittl> also shared repo looks really complicated
[21:28] <knittl> creating directories and copying stuff and …
[21:29] <knittl> on an unrelated note
[21:29] <knittl> how can i test my code if the only way to get a signature is my code?
[21:31] <knittl> where should i put the test?
[21:31] <GaryvdM> knittl: Is it a gpg sig? can you not create it with gpg -a?
[21:32] <knittl> GaryvdM: so echo "Hash: SHA1" > file && bzr testament >> file #?
[21:33] <GaryvdM> knittl: But creating it from the code you are testing is not so bad. I dose not verify that it is currently correct, but guards against future regressions
[21:48] <knittl> is a revision able to have multiple signatures?
[21:57] <knittl> and if so, what would be the output of repository.get_signature_text(rev_id)?
[21:58] <knittl> and how can i add new tests? it says: 0 tests OK. but it should run a single test
[22:00] <GaryvdM> knittl: I think you need to add you test module to bzrlib/test/__init__.py - line 3830
[22:01] <knittl> where inside that 5k line file?
[22:01] <GaryvdM> line 3830...
[22:01] <knittl> found it
[22:01] <knittl> yeah ^^
[22:03] <knittl> is there an existing test which accesses bzr.bzr?
[22:04] <GaryvdM> knittl: Not sure about multiple sigs. I guess a person may have multiple keys that they want to sign with, but that would be unlikely. And the fact that the api name in not plural suggest that it is not possible.
[22:04] <GaryvdM> knittl: do you maybe mean bzr.dev?
[22:04] <knittl> multiple people could sign the same revision
[22:04] <knittl> i mean the bzr repo
[22:04] <knittl> because that's where the signature is stored
[22:06] <GaryvdM> knittl: But you would only be interested in the signature of the person that committed the rev.
[22:07] <knittl> why? can only the committer sign a revision?
[22:08] <knittl> but i'm tired, i'm going to bed
[22:09] <knittl> gn8
[22:09] <GaryvdM> knittl: For me the value in a signature is that I can verify that the revision was really committed by the committer, and that it is what they committed...
[22:09] <knittl> well, considering bzr signatures do not sign history that is an argument
[22:10] <knittl> a dev could decide to sign an older revision though, to claim he has verified its contents
[22:10] <knittl> anyway, going to bed
[22:10] <GaryvdM> ok - good night.
[23:06] <_habnabit> So I'm unclear on how you're supposed to configure change_editor.
[23:07] <_habnabit> When you shelve something, it passes you the old file and the new file, you edit the new file, and then it shelves the changes between the new file and what it was?