/srv/irclogs.ubuntu.com/2009/05/12/#bzr.txt

RaimI understand the first two about the protocol version, but the third sounds like server and client can't communicate00:00
Peng_If the server doesn't support protocol v2, it is far older than 1.5.00:01
Raimoh wait00:02
Raimgah, the network I am connecting to is not homogenous, this is actually an older Debian box with 0.11.000:03
Peng_Wow, that's *ancient*.00:04
Peng_Raim: You'd have to use sftp; modern clients dropped support for smart servers that old.00:05
Peng_0.11? What disk format would that use? I didn't even use bzr back then...00:05
RaimPeng_: nah, I just have to use another server which also has access to the NFS share where the repo lives00:06
RaimPeng_: works fine now. I just made a bad assumption and did not check the versions properly00:06
Peng_OK, that works too.00:07
igcmorning00:16
Peng_Good morning.00:19
igchi Peng_00:23
lifelesshi igc00:23
igchi lifeless00:23
abentleylifeless: Thanks for the review.00:26
lifelessabentley: no probs00:28
lifelessabentley: you registered it with the new hooks registry; all was good in the world00:28
* igc out for a few hours - chemo day - bbl00:36
pooliehello all00:36
pooliegood luck igc00:36
igcthanks poolie00:36
abentleypoolie: hi there.00:42
abentleyigc: good luck.00:42
pooliehi abentley00:42
poolieabentley: i heard you made me the reviewer for the nested trees doc00:43
pooliei'll do something on it today00:43
abentleypoolie: Maybe we could have a quick chat?00:43
poolieabentley: sure, can you wait 5m?00:44
abentleypoolie: sure.00:44
lifelessjelmer: so did you upload subunit? or should I01:26
jelmerlifeless: I did some work on it (fixing lintian warnings and the like)01:26
lifelessoh noes01:27
jelmers/warnings/issues pointed out by lintian/01:27
jelmerI also sent in a merge request for a shell bug01:27
jelmerdid you see that one?01:27
lifelessno01:27
jelmerlp:~jelmer/subunit/merge01:28
lifelessnice, https://code.edge.launchpad.net/~subunit/  shows package branches now01:28
jmllifeless: it's shown package branches forever :)01:28
lifelessjml: oh cool01:28
jmllifeless: drop the tilde and they'll disappear01:29
lifelessjelmer: I can see the reviews, but I didn't et mail01:29
jmllifeless: they are also very badly sorted.01:29
lifelessjml: how can I debug this01:29
lifelessjml: I don't get notification on merge proposals to subunit trunk01:29
lifelessI'm subscribed01:29
thumperlifeless: how did ~subunit get 1 registered branch?01:30
lifelessI checked my subscription and it says all code review stuff01:30
thumpernm01:30
jmllifeless: https://code.edge.launchpad.net/~subunit/subunit/trunk says you aren't subscribed.01:30
thumperit is old01:30
jmloh subunit developers01:30
jmlwait no01:30
lifelessI can't tell whats going on01:31
lifelessjelmer: land it01:33
jelmerlifeless: ack01:34
lifelessthumper: what do you mean by 'it is old'?01:36
lifelessjml: so even though subunit-developers is the default review team, they are not notified?01:36
thumperlifeless: before we had a registrant for branches01:36
lifelessthumper: I would like a clear thing saying whether I will get notified about a given branch01:37
lifelessthumper: at the moment I can't tell01:37
* lifeless files a few bugs01:38
thumperif you are not subscribed, you don't get anything01:38
thumperlifeless: assign to beuno :)01:38
lifelessthumper: I'll let you decide01:40
BasicOSXlifeless:  tracking down the 1.13.2 == 1.14.xx, I introduced the issue into the 1.13 branch when I merged ~spiv/bzr/stacking-inventory  into 1.1.13 branch as part of the fix to Bug 35403601:41
ubottuLaunchpad bug 354036 in bzr "ErrorFromSmartServer - AbsentContentFactory object has no attribute 'get_bytes_as' exception while pulling from Launchpad" [Undecided,Confirmed] https://launchpad.net/bugs/35403601:41
BasicOSXThere was a bug task for 1.13, assigned to me. I need help understanding what I should have done, since a flatout merge of spiv's branch was not the right thing to do01:42
BasicOSXrevno: 4112.1.1 [merge] is the offending revno01:43
BasicOSXI can post to the ML if that is better01:43
lifelessBasicOSX: you should done a cherrypick into your local branch01:43
lifelessBasicOSX: the easiest way to make this happen is to:01:44
lifeless - get the branch you want merged to trunk if it isn't already01:44
lifeless - bzr merge -c <trunkrevno> bzr.dev in your release branch01:44
lifeless - bzr commit01:44
lifeless - submit to pqm for that release branch01:44
BasicOSXmaking notes01:45
lifeless'bzr merge' should never be used from a feature branch to a release branch, unless the feature branch is intended specifically for that release01:46
BasicOSXI see that now. In the past someone has done the cherrypicking for me (not an excuse)01:47
BasicOSXTo fix the mess, do I issue bzr uncommits?01:48
lifelessmail the list re the mess01:49
BasicOSXok01:49
lifelesswe need to consider who may have 1.13.1401:49
poolieabentley: i reviewed the docs and posted a comment01:52
poolielooking at the other threads now01:52
abentleypoolie: thanks.01:57
kvanderwRunning 'bzr' on my /home/me directory. Also, /home/me/fw02/root.  When in /home/me/fw02/root it is referencing the .bazaar/bazaar.conf file in /home/me and not the one in /home/me/fw02/root. Is that the way it should be?02:27
kvanderwsolo mode if it makes any difference.02:28
spivkvanderw: the .bazaar/bazaar.conf file has user-wide configuration, so bzr always looks it up in your home directory.02:29
spivkvanderw: so yes, that's expected behaviour.02:29
spivkvanderw: perhaps you are getting confused with the .bzr directory that is part of branches, repositories and working trees?02:30
kvanderwspiv: Thanks... just making me wonder... The subdir is an rsync copy of a firewall. I had forgotten that I had installed bzr over my home directory.02:31
kvanderwJust bad management from a noob :)02:31
kvanderwspiv: though, it sounds like, even if I put it outside that dir structure, it still always looks to my 'home' dir for the conf.  No prob... Just trying to learn the ropes.02:32
kvanderwspiv: Thanks!02:32
spivkvanderw: right02:33
lifelessspiv: is this a TODO?02:33
lifeless+    # Also, perf tests:02:33
lifeless+    # - if all invs present, then no texts are checked02:33
spivlifeless: oops, yes.02:34
spivlifeless: actually, I was intending to not bother as it seemed too much hassle for minimal benefit...02:35
lifelesshave you done a user level perf test02:35
lifelesssay to people?02:35
spivNot explicitly, I have done a bit of branching locally to confirm that the final form of the fix really did fix the original issue and didn't notice any slowdown in branching all of bzr.dev locally.02:37
lifelessI'll let you make the call02:37
spivI'll run another quick experiment.02:38
lifelesswhat do you think of my -Dhpss backtrace patch?02:38
spivI don't think I've seen it... where is it?02:42
spivOh, something to do with getting backtraces from _ensure_real?02:43
spivlifeless: I like the idea of making the remaining VFS causes easier to identify, but I'm fairly sure I haven't seen an actual patch for it.02:47
lifelessspiv: yes02:52
lifelessspiv: no idea where it went02:54
lifelessresending02:54
lifelessspiv: its hit the list03:04
spivCool, I'll take a look.03:04
spivlifeless: thanks for the review, btw03:04
jamlifeless or spiv: PendingAncestryResult.get_keys() returns ghosts, is it supposed to?03:13
jamThe StreamSource code then calls Graph.iter_topological_order(keys)03:14
jamwhich strips ghosts03:14
jamso StreamSource works03:14
jambut it is causing stacking w/ bbc to fail03:14
jamspiv: also, why in your new code did you create 1 set per key, rather than having a single set?03:17
jamI'm a bit concerned about having 100k sets in memory03:17
jam(unlikely to be intentional for something which is stacked, though)03:17
spivjam: heh03:17
jamI just don't see what it gets you03:17
jamversus 1 big set03:17
spivjam: I just sent mail on this :)03:17
jamsince you only call stuff like 'get_referrers()'03:18
spivjam: before I saw that you were on IRC03:18
jamspiv: :) I just got the email03:18
jamspiv: are there direct tests of PendingAncestryResult?03:19
spivjam: there are some in test_graph03:19
jamyeah, I just found it03:20
jamno tests for ghosts03:20
lifelessjam: PAR returning ghosts is sarguably a bug03:20
jamI guess that leaves it open for me to interpret :)03:20
lifelessjam: I see no reason to keep that03:20
jamlifeless: agreed, just wanted to make sure everyone else thought so, too03:20
lifelessjam: IDS breaks streaming push cross-format :(03:21
lifelesswhich I knew03:21
lifelessbut jelmer filed a bug saying 'it go sloweth'03:22
jamlifeless: does it go 'slowether' than doing it any other way?03:22
lifelessjam: much03:22
jaminteresting, considering it goes *much* faster locally03:23
lifelessspiv: inventory deltas top of the pile now?03:23
jamit doesn't really query the target03:23
lifelessjam: latency03:23
jamI suppose this is a 'pull' issue?03:23
jamI would assume it is faster for 'push'03:23
lifelessjam: push03:23
spivlifeless: theoretically yes, but I'm on leave from tomorrow till All Hands03:23
lifelessjam: no, every write is a round trip03:23
lifelessspiv: oh, I didn't know.03:23
jamlifeless: well, isn't that just NewPack.set_buffer_size() ?03:24
lifelessspiv: I will see if I can squeeze it in; please ensure you have it pushed and a mail to me with the url of the current state03:24
jamConsidering we hold a write group for 100 revisions at a time03:24
spivCrap, I haven't mailed the about that yet... I'll do that now.03:24
jamAnd we transfer texts 'in bulk' as well03:24
lifelessjam: even so, its still many round trips rather than streaming03:24
lifelessand each commit is about 10 round trips03:24
lifelessand then a re-read to refresh data03:24
lifelessjam: I can pretty much guarantee that disabling IDS over the network will be faster in all cases03:25
lifelessjam: particularly if we do what I propose and set the fetch order to gc-optimal03:25
jamwell, other than the 4-5 things I listed, sure...03:26
jamIDS wasn't specifically tuned for remote ops03:26
lifelessI realise IDS is fast locally03:28
lifelessAFAICT there are two specific issues; long conversion times, and writing many small chk pages meaning we can't really do gc-optimal cross-format03:28
lifelessbecause we'll get optimal texts but not optimal chk pages03:28
lifelessI don't want to delete IDS until there is a better option; if thats even possible. However I also want network ops to be fast03:29
lifelessI'd like to see IDS split into a sink and stream pair and just hooked into the generic paths03:29
jamlifeless: so other than wanting to trigger commit_write_group on the target03:30
jamI'm pretty sure all the work is done in the source03:30
jamand there isn't specific chatter between both sides03:30
lifelessI suggest we add a stream flag saying 'the data from start to here is topologically consistent'03:32
lifelesswe should design this next week/sprint week03:32
jamI guess it switches from texts => inventories => revisions03:32
lifelessI have a few things I want to include03:32
jamoh, and it wants 'add_inventory_by_delta'03:32
jamwhich requires 'streaming inventory deltas'03:33
lifelessjam: network deltas will cover that03:33
jamwhich you keep claiming exists somewhere :)03:33
lifelessyes, spivs laptop03:33
spivThe delta serialisation is already in bzr.dev03:35
spivIt just isn't hooked up to anything yet.03:35
lifelessspiv: oh you landed that?03:35
spivlifeless: we did :P03:35
lifelessspiv: sweet, I hadn't noticed.03:35
lifelessspiv: there's no other outstading branch then is there03:35
spivYeah, I forgot too until I went over my old branches looking for half-done work :)03:36
spivRight, no other outstanding branch.03:36
lifelessok03:36
lifelessjam: ^03:36
jamspiv: where is it?03:36
lifelessjam: small amount of glue left; get_delta(); serialise(); yield;03:36
spivjam: bzrlib/inventory_delta.py03:38
jamspiv: .... PendingAncestryResult.get_recipe() does not return ghosts as 'exclude_keys'03:39
jamWhich makes 'bzr branch from-stacked' search all the chk pages, and want to copy all texts that are referenced from the stacked branch...03:40
spivjam: PendingAncestryResult doesn't have any exclude keys03:40
lifelessjam: par is a full-history grab03:41
spivit's just "get me the ancestry for <heads>"03:41
jamlifeless: but on a Stacked location, *without* fallbacks set03:41
jam...03:41
jamwhich is how the stacking code works03:41
spivIf you want "get me the keys from <heads> to <stop_keys>", that's SearchResult03:41
lifelessjam: so I think you still have a bug :)03:41
lifelessjam: here is how it is meant to work03:41
lifelessthe server gets a par for the branch tip03:42
lifelessit then finds all the revisions it actually has03:42
lifelessit then calculates a delta for the new content in all those revisions and sends that03:42
lifelessit should have enough data in the inventories to do that, *because* we include the adjacent inventories03:42
jamspiv: so the idea was that if we have 'exclude_keys' *already* computed from the search result, why should I compute them *again*03:42
jamnow, PAR may never have excluded_keys03:43
lifelessin this situation note that there are no exclude keys03:43
lifelessand cannot be, because we're always grabbing all the history if we have a par03:43
jamso... can I just never trust the recipe?03:43
lifelessits never used if we have a shared repo03:43
jamor should I trust it, unless it is empty?03:43
lifelessjam: the recipe is completely accurate03:43
jamnote that PAR without stacking03:43
jamwill have no exclude keys03:43
jamand require searching the *entier* graph to find that it is correct03:43
lifelessjam: I don't understand why you think you can't trust it03:44
spivwhat do you mean "find that it is correct"?03:44
jamlifeless: I want to transmit all revisions from the stacked branch03:44
lifelessjam: yes, which the par will have found03:44
jamAnd all inventories for only those revisions, and no chk pages for previous revisions03:44
jamI was using the 'exclude_keys' to figure out what inventories *not* to transmit03:44
jamrather than doing another get_parent_map call03:44
lifelessexclude_keys is wrong wrong tool to use03:44
jambecause it is redundant with SearchKey03:44
jamSearchResult03:45
jamsorry03:45
jamlifeless: except SearchResult has already done that sort of get_parent_map for me03:45
jamand avoids having to do double duty03:45
jamespecially on a 'branch everything from a non stacked branch' case03:45
lifelessjam: you want to send search.get_keys()03:45
jamlifeless: and *not* send get_parent_map(search.get_keys()).itervalues().discard(search.get_keys())03:46
jamyse03:46
jamyes03:46
jamI just didn't want to have to re-compute 'exclude_keys' for the case when SearchResult has already *done* that.03:46
lifelessso, feel free to improve PAR is perhaps the right answer03:46
jamwell, I don't like doing:         _, _, exclude_keys, _ = search.get_recipe()03:47
lifelessits sketchy, it was created to avoid the 'billion round trips to find graph' case03:47
jamso I would rather do it a different way03:47
jamlike "search.get_tails()" (get_exclude_keys(), etc)03:48
jamand PAR could compute that when it computes get_keys()03:48
lifelessI don't think andrew or I are tightly attached to any of these internals03:48
jamthough I notice that the Result objects often don't actually cache anything03:48
jamso it seems a bit off to assume that get_keys() is called before get_tails()03:48
jamlifeless: I'm trying to understand what you *do* like, so I can not make a mess03:49
jamIn the short term, I can just do another get_parent_map()03:49
jamit just seemed redundant03:49
jam(not that we don't do that *all the time* already...)03:49
lifelessjam: Whats wrong with _, _, exclude_keys, _ = search.get_recipe()03:49
lifelessis it doing more work03:49
lifelessor is it ignore the variables you don't want that you don't like?03:49
jamlifeless: get_recipe() seems like it should really be opaque03:49
spivjam: I think our graph search stuff is pretty primitive at the moment, so I'm definitely in favour of improving it.03:50
lifelessjam: unfortunately, and I sighed when I realised, we messed up PAR and its not as opaque as it could be03:50
lifelessjam: that said, if you want to add methods that you'll like that would be fine.03:50
lifelessjam: caching should be done with care, obviously.03:50
jamlifeless: well, you cache 'heads'... I suppose caching 'self.tails' if we have encountered them?03:51
lifelessjam: right03:51
lifelessjam: you actually want to cache ghosts in this case03:52
jamright03:52
jamand really only ghosts, since PAR is 'everything that you can reach'03:52
spivYeah, the step from generalising SearchResult to SearchResult+PendingAncestryResult wasn't perfect.03:52
* igc back - chemo delayed for a week03:54
jamhey igc, glad to hear you feel well today, sorry to hear it is because of delayed chemo03:56
igchi jam! yeah - I feel fine fwiw03:56
zirodayHi, when branching from https://code.launchpad.net/~breathe-dev/breathe-icon-set/trunk I got http://pastebin.com/m6ad0445703:59
zirodayerr http://pastebin.com/m64c5c70a sorry03:59
lifelessziroday: I suspect a broken http proxy at your ISP04:04
lifelessziroday: can you try using bzr+ssh please04:04
zirodaylifeless: doing so now04:04
lifelessok04:05
SamBmaybe something should be added to the smart protocol to help diagnose buggy http proxies ?04:10
lifelessSamB: patches considered helpful :)04:11
lifeless(in general its hard to tell 'bad proxy' from 'data attack'04:11
SamBsome kind of handshake to be used after that kind of error to check for typical bugs, maybe?04:11
SamBlifeless: data attack?04:11
lifelessSamB: that error isnt from the smart protocol though04:11
lifelessSamB: a bad proxy gives bad bytes that it claims where what you asked for, but aren't.04:12
SamBoh, you mean it doesn't just get confused ?04:12
SamBor munge data ... or something like that?04:12
lifelessthere are all sorts of things which may be causing it04:14
lifelessbut we haven't detected an http protocol issue if we get the errror that ziroday saw04:14
lifelessbut if it is (and ssh working says it is) the http proxy, then the proxy is effectively hostile04:14
zirodaywell it appears to be working via bzr+ssh, I'll just advise the loco to use that04:15
SamBlifeless: yeah, what I'm saying is that if you get something like that, it might be a good time to check for such bugs in any proxy ;-)04:15
spivSamB: yes, but exactly which bugs, and how?  There are an infinite number of ways a proxy can screw up your data...04:16
lifelessziroday: cool04:16
zirodaylifeless: spiv SamB: thanks for all the help, you've made my day :)04:17
SamBspiv: frequently seen bugs, I guess04:17
lifelessSamB: I agree with the sentiment, I'm not smart enough to see how to do it though04:17
lifelessSamB: because the symptoms are 'sometimes, when you ask for data you get different data'04:18
SamByeah, me neither!04:18
SamBwell, mostly because I don't know what any of those bugs are04:18
lifelessSamB: many of these intercepting proxies are proprietary04:18
lifelessso very few people will know exactly what the bug i04:19
lifelesss04:19
SamBwell, I mean, what kind of corruptions they create04:19
SamBor at least what kind of data they are likely to corrupt04:19
lifelesswho knows ;)04:19
* mwhudson is pretty sure his isp uses good ol' squid04:22
SamBif I knew that, I might be able to cook up an http smart-server handshake protocol that would allow the client to construct a desired HTTP response and see if it comes through unscathed ...04:22
SamBand some probe data to check for common bugs04:22
lifelessSamB: this isn' smart-server related04:23
lifelessSamB: this is simple plain HTTP GET's failing.04:23
SamBwell, yes, I know ... but I figure you'd need cooperation from the remote that plain-old HTTP isn't going to give you04:23
lifelessI think it would be undesirable for bzr to issue arbitrary gets when something goes wrong on HTTP. In some organisations that would get a sysop coming around to your desk to 'talk' to you.04:24
SamBhmm.04:24
SamBa much simpler idea would be to simply point out that that type of exception is often caused by <foo>, where <foo> is derived from the access method in use ...04:25
lifelessthats possible. Which comes back to - corrupt data has a pretty good chance of causing a zlib decompression error04:26
lifelessyou might like to file a bug about that approach04:26
* SamB should file a bug against himself for being too lazy to file a bug ...04:27
LogomachistYou guys know if there are any books on Bazaar?04:33
poolieLogomachist: there's a book in progress, for now the best docs are the user guide on doc.bazaar-vcs.org04:54
pooliehello vila05:18
LogomachistCool. Thanks Poolie05:25
thumperwhat is the difference between:   2645 ghost revisions05:44
thumper  2485 revisions missing parents in ancestry05:44
thumperin bzr check?05:44
thumperI get this after reconcile05:44
lifelessthe former is ghosts, the latter is revisions that are present and should have been fixed up05:45
lifelessI think05:45
thumperlifeless: what, if anything, should or could I do about them?05:49
lifelessif reconcile left it like that, file a bug05:50
lifelessI'm currently overhauling check05:50
lifelessand will make sure its actually a relevant warning05:51
thumperok05:51
thumperlifeless: what information would you like in the bug report?05:51
thumperit is the launchpad branch05:51
thumperI reconciled the 1.6 branch05:51
thumperthen ran check05:51
thumperand that is what it said05:51
lifelesssure that would be fine.05:52
thumperhowever it did fix the 3547 inconsistent parents05:52
lifelessthumper: thats good and will help annotate give better answers06:05
lifelesssadness IllegalUseOfScopeReplacer:06:16
lifelesscan't figure out why I'd get that in bzrlib.smart.medium06:17
Peng_What *are* inconsistent parents?06:23
lifelessPeng_: when the cached index <> the revisions list of parents06:25
lifeless65->61 seconds for check tests06:39
lifelesspoolie: ping06:40
lifelesspoolie: I need a pointer; whats the current idiom for doing 'I have three tasks, they may take varying time each'06:40
poolieone minute06:40
lifelesssure06:41
lifelessI'll just delete progress for now ;)06:41
poolielifeless: and they hppen sequentially?06:42
pooliei guess you should still use phases06:42
pooliei don't think that's quite right06:42
poolieor maybe the api is right and the way they're used is not always optimal06:42
poolieat any rate i don't have a clear better answer06:43
lifelesswell06:45
lifelessgnerators but yes there are some fairly discrete phases06:45
pooliedid that answer your queston? you can call06:48
lifelesssufficiently06:48
lifelessI've spend the whole day on check so far06:48
lifelessit is faster06:48
lifelessbut I'm not done06:48
poolieigc, i sent a response to your doc06:51
poolieabout nested trees06:51
poolieit was good, but it opened up some questions for me06:52
igcpoolie: thanks06:52
igcpoolie: that's good - that was the point of writing it :-)06:52
poolieindeed :)06:53
Peng_lifeless: OK, thanks. :) How's that fixed? Change the index?06:53
* Peng_ goes to bed. I shouldn't ask questions right before leaving. :\06:55
vilahi all07:07
lifelesspoolie: there appears to be significant overlap between the _render stuff in progress view, and progressbar07:15
lifelesspoolie: I'd like to encourage you to delete a bunch of stuff07:15
mwhudsoni owe poolie a patch in this area too07:21
lifelesshmmm07:36
lifelessbzr: ERROR: Server sent an unexpected error: ('error', "'pqm@pqm.ubuntu.com-20090505195559-0qmeyyua7e407sym'")07:36
lifelessnot encouraging07:36
lifelessspiv: you seen that pushing to lp?07:36
spivlifeless: no, I haven't.07:37
spivThat is worrisome.07:37
lifelesslp:~lifeless/bzr/check07:37
spivlifeless: in reply to which verb?07:37
lifelesswhich is a tad ironic07:37
spivHeh.07:38
lifelessoh, I see07:38
lifeless  File "/home/robertc/.bazaar/plugins/branchfeed/branch_feed.py", line 41, in post_change_hook07:38
lifeless    BranchFeed(change.branch).update()07:38
lifelessit doesn't handle ghosts yet.07:38
lifelessmea culpa.07:38
lifelessits odd that its getting a nonstacked repo or whatever is going on07:39
spivbranchfeed?  Does that generate RSS or something?07:39
lifelessyes07:39
lifelesshttps://edge.launchpad.net/bzr-branchfeed07:39
* jml wants 1.15dev on Launchpad08:01
jmlHPSS calls: 72 (23 vfs)08:03
jmlhmm.08:03
jml49 is still a lot.08:04
lifelessjml: doing what08:04
lifelessand is that against 1.15?08:04
jmllifeless: pushing up a new stacked branch. no, it's not against 1.15: from 1.15dev to 1.1408:04
lifelessit'll drop more than just removing the vfs calls08:05
lifelessyou're paying probes to find things that are in 1.15 etc too08:05
jmllifeless: *nod* I saw a few unrecognized method errors in the .bzr.log.08:06
lifelessand other things like ghost handling are more efficient, you won't see that in the log08:06
mwhudsonjml: feel free to ec2test -b bzr=lp:bzr08:17
jmlmwhudson: yeah. I might do that.08:17
jmlI'm reminded that I should also upgrade twisted.08:17
jmlI might go for a walk then write some talks instead.08:19
Demosthenesany pointers to how to make a precommit hook that can change the working tree?08:31
lifelessbzr help hooks08:31
lifelessthere is a hook type documented there that can do that08:31
Demosthenesyep. saw that. it says write a python plugin.08:31
Demosthenesi wasn't planning on becoming a bzr dev. i wanted to run a shellscript to generate a report each time i commit.08:32
lifelessMutableTree.start_commit08:32
lifelessDemosthenes: nothing to do with being a bzr dev08:32
Demosthenesi did find a web page on pre_commit, with a helpful prewritten plugin that'd call $treeroot/precommit for you08:32
lifelessits just the language hooks run in; or you can install jelmer's shell-hooks plugin08:33
Demosthenesbut as i understand it, precommits can't edit the tree08:33
lifelessright08:33
lifelesswhere is this page?08:33
Demostheneshttp://schettino72.wordpress.com/2008/01/20/how-to-execute-tests-on-a-bazaar-pre-commit-hook/08:33
Demosthenesbut i think you gave me the answer, shell-hooks.08:33
Demosthenesoh heck. the shell-hooks doesn't support start_commit08:35
Demosthenesso back to step one.08:35
lifelesshttp://paste.ubuntu.com/170347/08:39
lifelessenjoy08:39
Demostheneshey cool, i'll give it a whirl08:40
Demosthenesyou ought to post that somewhere so others can use it08:40
lifelessoh, the error will fail08:41
lifelesssec08:41
lifelesshttp://paste.ubuntu.com/170351/ updated08:41
Demostheneslook like it works great!08:45
Demosthenesi do appreciate it, i'm just stumped that something simple like that was difficult08:45
lifelesscool08:45
poolielifeless: if you're still here: yes, i know, i really want to delete it too09:15
lifelesshttp://webpagetest.org/ is really quite nice09:16
gcerquantlifeless: nice (based on the screencast). But it couldn't connect to my website09:28
gcerquantnow I am wondering if it's a problem with the test tool or with my server09:28
lifelessgcerquant: I've pointed it a few sites successfully09:28
gcerquantthat is even more worrying :-/09:29
lifelesse.g. http://pagetest.getrpo.com/result/NSB/ most recently09:29
gcerquanti am now trying an other test09:29
* igc diiner09:32
gcerquantlooks like I have a DNS problem: testing from Dulles, VA, I get a DNS lookup failed. and from New Zealand, it works fine09:47
gcerquantlifeless: thanks a lot for this really neat tool (which also let me know about this problem)09:48
lifelessgcerquant: :)09:51
lifelessI only heard abou it today, myself09:51
awilkinsgcerquant: Try setting your DNS to opendns10:23
awilkinsgcerquant: The commonest reason I run into for DNS problems these days is a DNS daemon on the local wireless router crashing10:23
awilkinsUsually fixable by router-reboot10:23
gcerquantIt is (on my personal machine). But the requests are done with a machine I don't have control over... and it shows something is broken somewhere10:24
awilkinsgcerquant: I hate infrastructure that breaks that other people have control over10:24
gcerquantI had similar problem with potential customers that had Verizon as their ISP. Don't know how widespread the problem is10:24
gcerquantme too10:25
LoremHi to all!10:34
Loremi have a question10:34
Loremi need to change my working directory to its parent, what is the best way?10:35
vilacd ..10:40
GaryvdMLorem_: can you maybe explain in more detail?11:01
awilkinsI think he means "I want to move my root to a subfolder of root and commit new content into root"11:02
Lorem_awilkins, vice versa11:04
Lorem_ah!!! no11:05
Lorem_awilkins you are right11:05
Lorem_is exactly what i want to do11:05
awilkinsOne aims to please ...11:06
awilkins:-)11:06
=== krisfree is now known as krisfremen
Mezis there a way to enable a postcommit hook for ANY branch on a system? (an overarching bazaar.conf)11:26
james_w"[/]" in locations.conf?11:28
Lorem_awilkins: i need to do that because i want to devide my project into 2 separete parts11:28
Mezjames_w: It could be ran as different users though.11:28
james_wtrue11:29
Mezjames_w: can you specify a post-commit hook from with the branch config ? (somewhere in .bzr?)11:30
james_wdunno11:30
james_wdepends on the hook11:30
Mezjames_w: basically I wanna setup the system so that it'll send a commit email whenever someone commits to any branch within /home/bzr (no matter who they login as - which is generally done through a bound branch)11:31
andriijashow do i check out a project from launchpad?11:36
awilkinsandriijas: bzr branch lp:projectname11:37
andriijasty11:37
RaceConditionare there any plans to make the bzr command a little bit faster? at least comparable to hg which it is currently not...11:41
lifelessRaceCondition: we're working on performance all the time11:41
RaceConditionbut what's causing the current slowness of bzr?11:41
lifelessRaceCondition: doing what11:42
RaceConditioneven bzr status11:42
lifelesshow long is that taking for you?11:42
RaceConditionwell not much, but still significantly longer than git status/hg status11:42
lifelessall three commands do different things11:43
lifelessso its hard to just compare them; however, bzr st for me is 0.3 seconds11:43
lifelesson my encrypted-disk slowish laptop11:43
RaceCondition0.3 seconds is a lot11:43
lifelessit takes 0.24 seconds to load python and bzrlib11:44
lifelesswe want to reduce that; its the major part of 'bzr status' these days.11:44
RaceConditionwell it's obvious there's some constant overhead to all of the commands11:44
RaceConditionhow come hg loads so fast?11:45
RaceConditionI mean I understand git, but hg is Python just like bzr...11:45
lifelesshg's code is very very lean, this has some advantages and some disadvantages11:45
RaceConditionwhat do you mean by lean?11:45
RaceConditionoptimized?11:45
lifelesssmall11:45
RaceConditionoh11:45
RaceConditionso does the larger code size of bzr somehow result in more/better features?11:46
Mezlifeless: how would I setup a server so that any commit to /home/bzr (or sub branches) would generate a commit email? (these commits are generally though bound brnaches)11:46
lifelessyes, but its not all needed and that is one of the things we're changing11:46
lifelessI have to get back to the regional board emeting though,s orry11:46
lifelessMez: install bzr-email, setup the config in locations.con11:46
Mezlifeless: I've tried that on the server. it doesnt work11:47
lifelessMez: bzr versions? maybe file a bug on bzr-email with your config details and what you tried11:47
Mez1.1411:48
Mezah, oops11:48
GoundyGuys I registred a branch on launchpad.11:49
Meznot the same user11:49
Mezdamnit for different users :(11:49
GoundyThen I did: bzr branch mainline/ myWorkBranche/11:49
GoundyNow I want to push myWorkBranch so I create a new branch on launchpad11:49
GoundyHow to do this ?11:49
RaceConditionlifeless: just how long is it estimated that the feature cleanup will take?11:50
GoundyI tried a push but it says no new revision de push11:50
Mezbut still didn't work :(11:50
lifelessGoundy: bzr push lp:~USERNAME/PROJECT/NEWBRANCHNAME11:59
lifelessMez: file a bug please; bzr version for client and server and bzr-email version/revno11:59
Goundylifeless yea Indeed it worked right now thank you very much dude ;)11:59
lifelessRaceCondition: no specific ETA; removing 0.24 seconds of constant overhead is less important than removing minutes of overhead on slow commands12:00
lifelessRaceCondition: on other machines it can be much lower too12:00
RaceConditionlifeless: I mean, will it be more like 2 months or more like 12 months?12:00
lifelessRaceCondition: I don't know12:01
RaceConditionand can I somehow track the progress you're making on this?12:01
lifelesssure, use bzr :)12:01
lifelessseriously though, the issues are tightly coupled to how python loads code, its not a simple thing to fix.12:02
RaceConditionlifeless: what about keeping a persistent process in memory somehow?12:19
RaceConditionso bzr status would just IPC that persistent process12:19
lukshttps://launchpad.net/bzr-service12:20
RaceConditionhow do I use it? is it a replacement bzr command?12:21
luksI don't know actually, I just remembered seeing someting like that12:24
lifelessRaceCondition: there is a small C binary, bzr-client, that can talk to it12:32
RaceConditionlifeless: so will this change the way I use the bzr command?12:34
lifelessRaceCondition: I'd expect so; I don't know if it is a maintained plugin or not.12:34
RaceConditionwell there's no point in better performance if it kills the usability...12:35
spivRaceCondition: also, hg uses a more aggressive lazy-import module than bzr I think.12:39
RaceConditionspiv: and it's difficult to do the same in bzr?12:39
spivRaceCondition: I'm pretty sure there's probably still some relatively low-hanging fruit in cleaning up our imports, though.12:40
RaceConditionyeah12:40
RaceConditionI have a feeling that performance is currently the main thing keeping bzr back, I myself at least am considering switching to hg because of this...12:40
RaceConditionbut I'll wait if you say it'll be fixed more or less12:41
spivAt the moment it's quite common for all the repo formats to get loaded, for instance.  And perhaps we should break up the bzrlib.errors module and put more of the exception definitions closer to the code that uses them.12:41
lifelessRaceCondition: performance as a whole is really important to us - just look at how much faster network push has gotten, or commit.12:41
luksbzrlib.builtins is pretty huge12:41
spivJust the amount of time for Python to execute that many "class" statements is starting to be noticeable for us, and we always import bzrlib.errors for any command.12:41
RaceConditionspiv: still, what about integrating the bzr-service approach to bzr itself?12:41
lifelessluks: yes it is. I have some work in progress to radically shrink it. Needs details done.12:42
RaceConditionI mean this would mean you won't have to do any refactoring to lose the startup overhead12:42
spivRaceCondition: I'm not very interested in that approach personally, but if someone wants to work on that I wouldn't discourage them.12:42
spivIf I ever get enough spare time I'd rather attack the problem at the source (things bzrlib could do better, things python itself could do better)12:42
RaceConditionwell I'll be waiting :)12:43
spivIt's always a challenge finding the right trade-off with this sort of thing.  For example, in general I've quite liked having lots of fairly fine-grained exceptions in bzrlib.errors, it's pretty convenient for maintainability of the code, but it's turned out to be a minor (and I do stress it's only minor) performance issue.12:45
* awilkins is pretty happy with bzr performance ; no, it's not git, but it's rather faster than SVN and more compatible with win32 than git is12:59
awilkinsMore performance is always welcomed though :-)13:00
lifelessawilkins: have you tried out 1.14 client and server yet?13:04
awilkinslifeless: 1.14 client is pretty nippy, I keep meaning to upgrade the server but it's not heavily used13:05
awilkinsI suppose I use the server when I'm serving from my laptop to share it with my desktop13:06
awilkinsI only ever try git to see if it got less scary on win32 though13:06
awilkinsAlthough ATM most of my actual functioning work is being done on Jaunty because I got tired of the slothware that infests our corporate win32 installs13:08
awilkinsIt's actually faster to work on an external USB laptop drive than it is to use the internal drive with the win32 install13:08
lifelessnice13:09
lifelessyou might like to test the 1.14 http server deployment carefully13:10
awilkinsWhy carefully?13:10
lifelessthere is a bug open that the new jail for hpss servers may break http deployments13:10
lifelessI think its unrelated, but not 100%13:10
lifelessnot 100% sure I mean.13:10
awilkinsThe last time I upgraded it the problem was that it defaulted to logging instead of not logging and the permissions errors were killing it13:10
awilkinsNot your typical server install ; IIS 6 on win2k3 server running in PyISAPIe13:11
lifelessI know :)13:12
awilkinsI have a very small incentive to upgrade it - most of the operations are being done to a file share and the server is only for external use avoiding the VPN13:12
awilkinsAh, yes13:12
lifelesswe've made hpss operations _much_ better in 1.14 and 1.15;but if you're happy - great.13:13
awilkinsMost of our external users are no longer working for us at the moment13:13
lifelessheh13:13
awilkinsI'm really the person who uses it the most ; I can't stand fiddling about with VPN and file-share access sucks across it anyway13:14
awilkinsAnd I only use it when a user has a problem in their branch they need examining13:14
* awilkins feels motivated13:15
awilkinsIt's running.... 1.913:16
lifelessheh13:19
lifelessiz stable13:20
awilkinsOf course, our proxy server is so bad that you can't actually download 4.5 MB without it choking...13:26
awilkinslifeless: Yup, jail break: 'chroot-59278864:///13:41
awilkinsNice.13:41
lifelessawilkins: damn13:43
lifelessawilkins: 1.12 for you then :(13:44
lifeless1.13.2 happens to be == 1.1413:44
* lifeless hunts down the bug to confirm13:44
awilkinshttps://bugs.launchpad.net/bzr/+bug/348308.13:44
ubottuUbuntu bug 348308 in bzr "Smart server jail breaks bzr+http with shared repos" [High,Triaged]13:44
lifelessawilkins: if you could get a backtrace and perhaps put a few details in there that would be awesome13:44
awilkinsIt doesn't seem to emit a backtrace13:46
* awilkins tries again13:46
awilkinsOr maybe I have logging off13:47
lifelessPeng_ has done so I just noticed13:47
lifelessdon't worry, I'll follow up with his log info13:48
awilkinsAha13:48
awilkinsYes13:48
* awilkins is tempted to just drop the resgistration of _pre_open_hook13:52
lifelessyou can do that too13:52
awilkinsCommenting out _install_hook() on lin 75 of request.py is sufficient for the overly trusting13:55
awilkinsIt's running under  user impersonation anyway and the users concerned only have rights for the repo folders13:56
lifelessthe jail is to stop the server making http requests to the world ;)13:58
lifelessyou need write access to make it do that, naturally.13:58
lifelessso its not a panic thing13:58
awilkinsI have assessed the risks (ie - it was unjailed before anyway) and considered them to be manageable13:59
lifeless:)13:59
lifelessdo let me know how it feels otherwise14:00
lifelessshould be noticable snappier14:00
awilkinsWell, quite snappy on a "no revisions to pull" from inside the network14:00
lifeless:)14:00
awilkinsHas some issues with commands that write though14:14
awilkinsI'm running a check on the repo14:14
maxb_What is bzr's equivalent to "update -r NNN" in other VCSes? To temporarily set the working tree back to an earlier state14:27
LeoNerdrevert ?14:28
maxb_huh, ok. My intuition derived from other VCSes led me astray :-)14:34
AmanicAjelmer: do you know of a workaround for that "OperationalError: database is locked" bug?14:42
AmanicAmy branch is locked and it does not seem to go away14:43
AmanicAsould I delete my cache?14:45
jelmerAmanicA: you mean the bzr-svn one?14:46
AmanicAyes14:46
AmanicAsorry14:46
jelmerAmanicA: I pushed a change to bzr-svn 0.6 the other day that allows it to use tdb rather than sqlite14:46
AmanicAI saw stuff like that yes14:47
jelmerAmanicA: tdb allows multiple writers (i.e. no more locking madness)14:47
AmanicAcool14:47
AmanicAhow do I activate that?14:47
jelmerAmanicA: install python-tdb14:47
AmanicAok thx14:47
AmanicAbtw I found a workaround myself14:48
AmanicAlsof |grep svn |less14:48
jelmerAmanicA: ah :-)14:48
AmanicAand kill the nasty processes holding the lock14:48
AmanicAI'll stick that on the bug page14:48
jonnydeehi :) when I revert to an earlier revision, how can I ged rid of the marked changes reportet by "bzr st" ?14:57
jonnydeeAFAIR I have to call another command after invoking "bzr revert -r <revspec>"....14:58
igcnight all15:05
james_wjonnydee: plain "bzr revert" will remove any changes reported by "bzr st"15:09
=== vxnick_ is now known as vxnick
=== vednis is now known as mars
jonnydeejames_W: but I thought a plain 'bzr revert'  will revert to the last revision again...?15:21
=== guilhembi_ is now known as guilhembi
james_wyes15:21
jonnydeeBut I just would like to "travel in time" and go to a specific revision by executing "bzr revert -r <revspec>". Now I want that 'bzr st' doesn't print anything...15:23
jelmerjonnydee: I think "bzr update -r" is supposed to do that, but I'm not sure if it's implemented yet15:23
jonnydeejelmer: OK, I see. That's what I need, thanks :)15:24
maxb_LeoNerd: aha, my intuition wasn't so wrong after all (and bzr revert's help is really misleading)15:26
jelmerYeah, I think we need to fix that..15:27
LeoNerdmaxb_: Oh.. I presumed you'd already tried 'bzr up -r' and failed.. :)15:27
maxb_I did. Per above, it's not implemented15:28
LeoNerdOh..15:28
maxb_jelmer: The bit which really confuses me is why "bzr revert" and "bzr revert ." behave differently15:28
LeoNerdHm? It's it   bzr merge .   ?15:29
* maxb_ has no idea what LeoNerd is talking about :-)15:29
LeoNerdHm.. thatsaid, I'm not sure I do either. perhaps I lost the plot...15:31
jammaxb_: 'bzr revert' revert everything in the tree, 'bzr revert .' revert everything underneath the current working directory15:31
jambzr has a concept about the 'whole tree' which svn doesn't have15:31
jamjonnydee: you could 'bzr pull -r XXX . --overwrite'15:32
jamhowever, you won't have a way to go back to where you were15:32
jamwithout another branch15:32
jamI believe the sticking point for why 'bzr update -r XXX' failed to get implemented15:32
jamwas where to look up 'XXX' in a heavy checkout situation15:32
jamsince you could have a local branch and a remote branch, and XXX means different things in each15:32
maxb_jam: Sorry, I should have been clearer: the bit which confuses me is what the rationale is for "bzr revert" and "bzr revert ." (in the tree root) behave differently - i.e. in respect to merge records15:32
jammaxb_: 'bzr revert .' is only reverting files/dirs, the meta-info isn't under '.'15:33
jamI could certainly agree with having a different flag for that15:33
jelmer+115:33
LeoNerdYa.. revert is getting a little overloaded lately..15:34
LeoNerdbzr revert should be roughly bzr diff | patch -R15:34
maxb_jam: ok, that kind of makes sense. My naive assumption based on using other SCMs was that "resetting merge info" included "resetting the parent of the working tree" - which it actually doesn't, hence my confusion15:34
maxb_Regarding the aforementioned lookup problem in heavy checkouts, surely the only sensible answer is "whatever revert -r XXX" does in that case?15:35
jammaxb_: 'update' things about the master branch, 'revert' never does (IIRC)15:37
jams/things/thinks/15:37
jamfor example, 'bzr revert -r -1' does not do the same thing thing 'bzr update' would do. And I would consider "bzr update" ~= "bzr update -r -1"15:37
maxb_oh. Um15:39
maxb_bzr update is overloaded in the heavy checkout scenario, to mean both "change my local tree's parent" and "get changes from remote branch"15:39
maxb_Ok, I understand the conundrum now15:39
jammaxb_: right15:44
jamand we sort of fell down a "we can't decide so we didn't do anything" pit15:44
maxb_understandable, though regrettable15:45
der|hi, I would like to create a bzr server on my machine, can you please point me to the right direction on doing that ?, thanks....15:57
der|ok never mind, reading the docs :)15:58
SamBder|: well, if you just want to provide read-only access, the simplest thing is to just put a repo up on your HTTP server15:59
cornucopicHi all16:22
cornucopicbzr-email uses its 'own' smtp_connection.py. Whereas that is understood, why are  certain methods not present there, as compared to the bzrlib/smtp_connection.py ?16:24
cornucopiclike, for eg. the code in _authenticate() is different for the two16:25
jelmercornucopic: I think that's mainly for historical reasons16:30
cornucopicjelmer, What about less/wrong functionality ?16:30
cornucopicjelmer, from the looks of it, the former won't look for a username  in authentication.conf , if not specified in bazaar.conf.16:31
cornucopicthat is one.16:31
jelmercornucopic: I think one has just been patched while the other hasn't16:33
jelmercornucopic: ideally they should be the same16:33
cornucopicjelmer, Yes. probably16:34
ronnyjelmer: what are the plans wrt dulwich workdir support?16:40
ronnycurrently i have to deal with the fact that git wont tell me some data below at least 3 subprocess invocations16:41
jelmerronny: it's there16:41
jelmerronny: :-)16:41
ronnyjelmer: did the repo url change at some point?16:41
jelmerronny: well, work dir in the sense that we now have a index writer/reader and a function to commit trees16:41
jelmerronny: http://people.samba.org/bzr/jelmer/dulwich/trunk16:42
jelmerronny: or git://git.samba.org/jelmer/dulwich.git16:42
ronnyjelmer: well, i kinda need something like git status +16:42
ronnyie all status information for all files in a workdir16:43
jelmerronny: what exactly do you need? Something to tell you which files are out of date wrt the index?16:43
ronnyjelmer: i need to know what the vcs thinks about all files in a workdir + what files are missing (and if the index know they are missing)16:44
SamBronny: bzr status ?16:53
jelmerronny: can you perhaps file a bug about what you're looking for (including a suggested API)?16:53
SamBoh, are you working in a git checkout ?16:53
SamBI mean, a native git checkout ?16:53
SamBwith a .git directory, not a .bzr directory?16:54
jelmerronny: API as in what it would return/yield, I guess the arguments would be a base path and an index object16:56
jelmerSamB: this is actually not related to bzr :-)16:56
SamBoh! how confusing.16:56
SamBjelmer: what is it about ?16:57
SamBoh, dulwich ...16:57
jelmerSamB: dulwich (http://samba.org/~jelmer/dulwich)16:57
SamBbzr-git's backend ?16:57
jelmerSamB: yep, but not tied to bzr in any way16:57
SamBI know16:57
SamBoh, that's such a pythonic way to name it :-)16:58
SamBjelmer: hmm ... I can't seem to clone your repository ...17:28
SamBgit doesn't seem to like the nested ".git" directories17:28
jelmerSamB: yes, that's a git bug17:29
SamBjelmer: is it recognized as a bug by the maintainers?17:29
jelmerSamB: not sure, I haven't followed up on it17:29
SamBI have this feeling the behaviour is intentional ...17:30
SamBsince it seems like those directories would be really confusing to work with17:31
SamBfor both humans and tools alike17:31
jelmerSamB: I don't see what the problem is for humans17:32
SamBwell, mostly what the tools would do if invoked from the subdirectory, I guess17:33
jelmeruse the closest .git directory17:34
SamBwell, yes, that could get confusing ;-)17:50
CaMasonis it possible for me to have a 'reference' to an external svn project in my bzr project? I'm using some libs that are hosted on svn18:07
CaMasonnvm I'll use checkout instead18:10
pygiCaMason: not yet18:14
CaMasonpygi, ok no worries. It was a svn tag anyway :)18:15
der|hi, I've created a branch on my computer. A remote user downloaded my branch, he committed the changes, but when trying to push, it gives an error18:36
beunoder|, what error?18:36
der|bzr: ERROR: Cannot lock LockDir(sftp://host/var/bzr/bzr_test/.bzr/branch/lock): Permission denied: "/var/bzr/bzr_test/.bzr/branch/lock/5mc4cplu0h.tmp": [Errno 13] Permission denied18:37
der|I've used bzr with launchpad, haven't tried using my pc as a server though, where the main  branch would be located18:37
pzicoHi, I have registered new launchpad project, but I'm a bit unsure how should I name branches. Should the name of the main branch be linux or ubuntu or dev.. or should I divide different parts in separate branches like python functionality in it's own and C in it's own.18:41
SamBpzico: generally, you put the whole code tree in one branch, and call it something like lp:~pzico/fooproject/trunk18:42
pzicoMaybe I need some practical tutorial. Somehow those launchpad examples only mixed my head.18:42
SamBand then you make other branches for topics and stuff18:42
pzicodoes that mean that the trunk is also a folder on my home directory where I also made bzr init command?18:43
SamBnot exactly18:43
SamBthat's your local repository, where you work18:43
SamByou would push that to the lp url, though18:44
SamBoh, the ~pzico in the launchpad url just means that it's one of your branches18:45
pzicohmm, by taking couple of random examples of existing projects, why can't I see trunk used as a branch name?18:45
SamBthe next bit, fooproject, should be the exact URL name of your launchpad project18:45
SamBpzico: well, often it gets abbreviated to just lp:fooproject18:45
SamBthe third bit is whatever you like ...18:46
pzicoso the trunk is a sensible name for the initial development branch?18:47
SamByup18:47
pzicothanks, I just did my first push :D18:53
pzicoLaunchpad says: A development focus branch hasn't been specified, set it now.18:54
pzicoShould I put here also that same?18:54
pzicoI chose the same. I guess I got it all working.18:57
pzicoIs it a good practice to have a separate branch for documentation or to include in trunk under specific folder name?19:05
der|I've created a bzr server on my machine, and I'm trying to commit the changes to the server, but it gives the following error: This transport does not update the working tree of: bzr://localhost/projects/bzr_test/trunk/. See 'bzr help working-trees' for more information.19:07
der|bzr: ERROR: Cannot lock LockDir(chroot-33399120:///projects/bzr_test/trunk/.bzr/branch/lock): Transport operation not possible: readonly transport19:07
LarstiQpzico: normally, I'd keep everything pertaining to a project in one and the same branch19:07
LarstiQder|: those are two different things19:08
der|LarstiQ, sorry, I'm a little bit confused here :)19:08
LarstiQder|: the readonly mention seems to me like you didn't specify --allow-writes19:09
der|LarstiQ, uhm.... right....19:09
der|LarstiQ, the --allow-writes should be passed when running bzr init right ?19:09
LarstiQder|: to bzr serve19:09
der|LarstiQ, ah, good, let me try that19:09
LarstiQder|: that is how you are running the server, right?19:09
der|LarstiQ, correct19:09
LarstiQok then19:10
der|what's the difference between the checkout and the branch commands ?19:10
LarstiQder|: as to not upating the workingtree, a workingtree is usually not needed on a server hosting bzr branches19:10
der|LarstiQ, and why is that ?19:11
LarstiQder|: checkouts bundle commit/publish and if you branch you decouple those.19:11
LarstiQder|: all the required data for bzr to operate is stored in .bzr/19:11
der|LarstiQ, yes19:11
der|LarstiQ, so, that means that if I'm going to have a server hosting bzr branches, I need working trees or normal trees ?19:13
LarstiQder|: that means you only need branches19:15
LarstiQder|: so on the server, go to /projects/bzr_test/trunk and do `bzr remove-tree`19:15
der|LarstiQ, ok19:15
der|LarstiQ, done19:15
der|LarstiQ, after I remove the working tree, I can push to that tree right ?19:17
LarstiQder|: s/tree/branch/, yes :)19:17
der|LarstiQ, ah, I think I get it, correct me if I'm wrong..... so working trees are good with local branches19:17
LarstiQder|: correct!19:18
der|LarstiQ, so let's say, /var/bzr/stuff19:18
der|LarstiQ, but, when I use a server, working trees are not needed, and we need branches19:18
LarstiQfor editing files, using them, etc.19:18
LarstiQder|: basically.19:18
der|LarstiQ, and, by default, bzr creates working trees with bzr-init right ?19:18
LarstiQder|: yes19:18
der|LarstiQ, ah ok19:18
der|LarstiQ, I'm a 3D artist, and I'm using bzr to keep track of the changes19:18
LarstiQand bzr will not create working trees if you push to a remote server19:18
LarstiQder|: cool :)19:19
der|along with qbzr, I created a small tool to make things faster19:19
der|let me show you19:19
der|LarstiQ, I'm doing this:  http://ernestomendez.wordpress.com19:19
LarstiQder|: so if you do `bzr init; bzr add; bz ci` locally, and then `bzr push to/server`, it will do the right thing19:19
der|LarstiQ, I'm using the qbzr plugin, along with a small gui I did for qbzr, to access stuff fast... Here's the screenshot:  http://imagebin.org/4861719:20
LarstiQder|: so your tool is the list of actions on the right?19:21
der|yeah19:21
LarstiQder|: how does it work, does it call the qcommands from the dir you started the tool from?19:21
der|LarstiQ, and I created a small .desktop file inside the project, with the variable Path= set as the working directory, where the project is located19:21
LarstiQaah19:21
der|:D19:21
der|smart huh :P19:22
LarstiQ:)19:22
der|I had to read the .desktop file specification, was breaking my head19:22
LarstiQder|: have you thought of contributing this to the qbzr plugin?19:23
der|LarstiQ, well, it would be my pleasure :D19:23
der|LarstiQ, I didn't know that would be of some use for you guys19:23
der|LarstiQ, and the cool thing, it doesn't use any .glade file, just pure code19:23
LarstiQder|: you mention .glade, does that mean it uses gtk?19:24
der|LarstiQ, yeah, it's written in python/gtk  (pygtk)19:24
LarstiQah ok19:24
der|but surely the guy can be implemented on qt19:24
LarstiQder|: qbzr is written in pyqt19:24
* LarstiQ nods19:24
LarstiQluks: would something like der|'s http://imagebin.org/48617 be useful to qbzr?19:25
der|LarstiQ, I mean, it's cool since you access all qbzr's commands easily, without having to use the command line19:25
* LarstiQ nods19:26
LarstiQder|: I think there is a use for it, but I'm not a qbzr contributor.19:26
der|LarstiQ, ah, and the cool thing is, when you don't have a .bzr directory in it, the only button it has is 'Initialize Branch' which is bzr qinit19:26
lukshm, I'd rather add nautilus menu items19:26
luksso you don't have to launch any app19:27
der|yeah, nautilus-scripts would do the job too19:27
LarstiQright, but you need to bring the menu up each and every time19:27
der|yeah19:27
der|on this case, you bring up the small app, then you just click, it won't close19:27
der|that way you can see the logs, then add the files,then commit etc19:27
LarstiQqbrowse comes closeish19:28
LarstiQqbrowse \o/19:28
LarstiQluks: thanks for that btw :)19:28
luksthere is (unfinished and dead) bzr qbzr, which had this ambition19:29
der|luks, LarstiQ you can have the code here: http://dpaste.com/43453/19:29
LeoNerdAhah. I think I've found a bug... 'bzr revert' will save an old copy of a file to foo.~1~, unless it was modified by a merge. But now since 'bzr shelve' is implemented using a merge, it won't save one if you shelve/unshelve/revert19:53
jnz_Hi, I'm having a problem supporting sftp into bzr, that is this: https://bugs.launchpad.net/ubuntu/+source/python-crypto/+bug/79519 . But I haven't understool how to resolve it.20:04
ubottuLaunchpad bug 79519 in python-crypto "ImportError: No module named Crypto.Util.randpool" [High,Won't fix]20:04
jnz_*understood20:04
jnz_uh great :D20:04
* LarstiQ looks at the bug20:05
jnz_I'm not using ubuntu20:05
LarstiQjnz_: so the ubuntu bug doesn't apply to you :) Do you have pycrypto installed?20:05
LarstiQwithout paramiko won't work, without which bzr can't support sftp/ssh20:06
LarstiQLeoNerd: ah, good catch20:06
jnz_uhm I have read that was needed only m2crypto, however I don't have it (no module named pycrypto)20:07
LarstiQjnz_: python -c 'import Crypto' ?20:08
jnz_no module named Crypto20:08
LarstiQjnz_: then you don't have it installed20:09
LarstiQjnz_: if your package management doesn't provide it, http://pypi.python.org/pypi/pycrypto20:10
LarstiQhmm, maybe that is old20:10
LarstiQbut no, that is what I've got installed on Debian20:11
jnz_I've installed it, but the problem remains, http://pastebin.com/m1721b456 (localhost is just for the test)20:13
LarstiQjnz_: now it mentions you don't have paramiko installed20:14
jnz_It's strange, if I open the python shell and try with `import paramiko' I get only warning message, but if I run the bzr command no module paramiko is found20:22
LarstiQjnz_: does your bzr use the same python install as `python` from the commandline?20:23
LarstiQjnz_: see `bzr --version`20:23
=== beuno_ is now known as beuno
chrismurfHi - I just performed a merge, and now 'bzr info' shows a 'submit branch' related to my repository.  What is that, and how do I get rid of it?20:45
jnz_ok resolved, thanks LarstiQ20:46
chrismurfnow I have a "public branch" too.  How do I just get rid of the 'related branches' -- they aren't valid locations.20:50
LarstiQchrismurf: just like with pull --remember you can change those lcocations merge sets.21:21
chrismurfLarstiQ, I'm sorry; I don't understand?21:22
LarstiQchrismurf: all the related branches get set by bzr commands if they're empty, or if you pass --remember to the relevant command21:22
chrismurfokay - so given that I now have the related branches, how do I get rid of them?21:23
LarstiQchrismurf: is it your aim to have no related branhces at all, or different ones?21:23
chrismurfI didn't use '--remember' so, I'm not sure where they came from?21:23
chrismurfin this case, none21:24
chrismurfit's pointing at a temporary merge directory I created21:24
chrismurfwhich I doubt does harm, but that directory is going to go away21:24
LarstiQchrismurf: the going away is fine21:24
LarstiQchrismurf: they serve as defaults so you can do `bzr merge` without specifying an argument21:24
LarstiQbut anyway21:24
LarstiQchrismurf: .bzr/branch/branch.conf21:25
chrismurfAh!  Thank you21:25
chrismurfand thank you for explaining their purpose21:25
LarstiQand as useful shorthands21:25
chrismurfbeen using BZR mostly for client-server style interactions for a while now21:25
LarstiQsay, `bzr missing nosmart+:parent/../sibling`21:26
chrismurfbut starting to use it more as a DVCS, and still learning21:26
LarstiQchrismurf: righ21:26
LarstiQchrismurf: main thing to remember, all branches are equal, none is technically special, it's just convenients for us humans :)21:26
chrismurfright :-)21:27
chrismurfso - hand editing branch.conf is a not-awful way to change such things?21:27
chrismurfsince they're just convenience tags for me anyway?21:27
LarstiQchrismurf: I think it's a bit of a ui wart, but yes, that's ok21:27
LarstiQnothing in bzr will miss 'm21:28
chrismurfokay - and there's no "bzr get-rid-of-shortcuts" I should know :-)21:28
LarstiQindeed21:28
chrismurfwell, again, many thanks21:28
LarstiQnp21:29
LarstiQchrismurf: feel free to ask more questions on your path to DVCS nirvana ;)21:31
luke-jr_If I 'bzr commit', and 'bzr uncommit', will that commit be kept in the repository under its 'revid' in case I ever want to dig it out in the future?22:27
lifelessluke-jr_: yes until you garbage collect (there is a plugi to do this), or if you branch to a new repo it won't be copied across22:30
lifelessmoin22:30
luke-jr_I see.22:30
luke-jr_so it wouldn't get sent with a push, either?22:30
luke-jr_is there a good way to save scraps better? ;)22:31
jammorning lifeless22:47
jamluke-jr_: create a branch for them?22:47
luke-jr_jam: by "scraps" I mean "broken and never worked or even compiled" ;)22:48
jamluke-jr_: if you have a commit that you want to save, I recommend creating a branch for them22:48
jamI personally have no qualms committing broken code22:48
jamI just don't merge it to 'trunk'22:48
luke-jr_i c22:49
jamlifeless: I've been working on some slides, they are still pretty rough22:57
jamI was thinking to upload them somewhere if you wanted to then take over22:57
jamwould you prefer a bzr branch?22:57
jam(I'm using .odp)22:57
lifelessjam: branch or mail is fine22:59
lifelessbranch would be the canonical way :P22:59
jamlifeless: yeah, I just feel a little silly uploading a work-in progress to a +junk branch, but that was my original idea23:01
lifelessdoit ;)23:07
lifelesswe can't merge, so lets be careful about handing off23:07
beunoin bbc  :)23:07
lifelessbeuno: ?23:08
beunoin dev6-r-r format23:08
beunodogfoooooood!23:08
bob2congrats on becoming an adaptive vcs23:09
lifelessjam: drop me a mail when you've pushed;23:18
jamlifeless: lp:~jameinel/+junk/karmic_presentations23:19
jamI'm out for the night23:19
AmanicAdam its late if the americans goes to bed before you23:21
jelmerit's not a problem until you go to bed after the Californians ;-)23:22
lifelessAmanicA: the americans always go to bed before me23:33
AmanicA:)23:33
AmanicAlike right after you get up23:34
lifeless:)23:34
mwhudsonactually, not always23:45
mwhudsonsometimes they are still around when i quit work, which is not really right :)23:45
jelmerlifeless: around?23:51
lifelessyes!23:51
jelmerlifeless: CHKMap, is that usable for a single file (like knits are), and could I use it to store arbitrary data?23:51
jelmerI'm using a knit for the file id map in bzr-svn atm, and from what I've seen a CHKMap would both be faster and more efficient23:52
lifelessjelmer: you need a pack repository style container23:52
lifelesssame as bzr-search does23:53
jelmerlifeless: but it can store just arbitrary data (I need path string -> tuple of 3 strings) ?23:53
lifelesschkmap is str->str23:54
lifelessencode as you like on top23:54
lifelessactually I like23:54
jelmerneat, I'll go check that out23:54
lifelessits tuple->str23:54
lifelesss/like/lie23:54
jelmermwhudson: looks like the linux kernel doesn't work with bzr-git yet23:56
jelmermwhudson: they use unusual file modes that aren't mappable to bzr inventory entry properties23:56
lifelessoh?23:56
jelmerthose file modes are forbidden in git these days, but they used to be allowed23:57
jelmer644 and 755 are the only modes set by non-ancient versions of git23:57
jelmerand the linux kernel has e.g. 664 in some places23:57
mwhudsonjelmer: weeeee!23:58

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