/srv/irclogs.ubuntu.com/2008/11/17/#bzr.txt

lamalexmwhudson: does it look like an ok bug/patch though?00:00
=== RAOF_298 is now known as RAOF_831
=== RAOF_831 is now known as RAOF_61
slangasekjelmer: any luck?00:00
=== RAOF_61 is now known as RAOF
jelmerslangasek, Yeah, I've managed to reproduce it00:00
jelmerAnd I think I've got a clue as to why it's failing00:01
slangasekjelmer: so did I screw something up? :-)00:22
lexrupyhello all...00:36
lexrupyI read in some documentation that bzr serve "is" an in development feature.....00:36
lexrupybut those docs are outdated I mean.. about version 0.1600:36
lexrupyis this now fullfeatured and functional?00:37
lexrupyI am using 1.9 of course00:37
spivCurrent docs are at http://doc.bazaar-vcs.org/latest/00:37
lifelesslexrupy: its not finished, but then software never is00:37
spivbzr serve is certainly functional, and everything that works with direct file access should work via a bzr server.00:38
lexrupyyes I know, but I can use it in production as well?00:38
spivIt's still in development, but so is the rest of bzr ;)00:38
spivYes, it's ready for production use.00:38
lexrupyspiv: thank you, and, I already read the latest documentation... I use Bazaar since version ~ 0.90 I think00:39
lexrupyI am already using via bzr+ssh... I am asking just because I will write an article about this and I want to make sure that it is "stable"00:40
lexrupyok, I think you can help-me a little bit more00:41
lifelesslexrupy: launchpad hosts bzr using bzr-serve00:42
lexrupyin my tests I got bzr+ssh about 20% faster than sftp... these numbers are reliable or you have more precise numbers?00:42
evarlastwe have been using serve in production at work for months.00:42
spivlexrupy: it depends on a lot of variables, like the latency of your network connection.00:43
lexrupyspiv: ok, in my tests I use my laptop in a LAN environment with server00:43
jelmerslangasek, it seems it's similar to bug 29541600:43
ubottuLaunchpad bug 295416 in bzr-svn "branch root moving breaks missing and push" [Medium,Triaged] https://launchpad.net/bugs/29541600:43
slangasekhmm, ok00:44
spivlexrupy: and also on which operation you're measuring; some operations are optimised more over bzr serve, others will be about the same as SFTP.00:44
jelmeryou didn't have a branch root, but in your case the first revision in svn history is not the first revision in bzr history00:44
lexrupyspiv: humm00:44
jelmerslangasek, it shouldn't be too hard to fix, let me have a look00:44
lexrupyspiv: I tested checkout and branch commands00:44
spivThe optimisations so far have mostly focused on those and on push.00:46
rockstarlifeless, I didn't merge the branch, but it's good to have around.00:46
lexrupyspiv: in a tree with just some files (3.8Mb) with 152 revisions and I take about 11secs to sftp and about 9 secs to bzr+ssh00:46
spiv20% certainly sounds believable, but I can't give you a single number that will be universally true :)00:46
lexrupyok00:46
lifelessrockstar: its in trunk00:48
lifelessrockstar: *someone* merged it00:48
rockstarlifeless, yea, I asked beuno to merge it.00:49
rockstarWas it not ready to be merged?00:49
lifelessit was00:49
lifelessit would be nice not to disable concurrent request processing00:50
lifelessbut I need to know more about the paste contract to do that00:50
lifelessit would also be nice to record the url00:50
lifelesse.g. trunk_changes_foo_bar-1-stats.callgrind00:50
rockstarlifeless, yea, I also think that, now that I've been inspecting results.00:55
rockstarThe number isn't so helpful.00:55
lexrupyI was thinking about how launchpad manage that groups of Developers to have access to a branch00:55
lexrupyBut I cannot spot that... is each launchpad user a Unix User on server?00:56
lifelesslexrupy: no, they are not00:57
rockstarlexrupy, nope.00:57
lifelessrockstar: its a start; better than embedding callgrind data in a .jpg :)00:57
lexrupyhuh, so How can I setup my server to behave like that?00:58
rockstarlifeless, :)00:58
rockstarlexrupy, behave how specifically?00:58
lexrupyI can for example create a branch on server belong my user.... bzr push sftp://myserver/~/mybranch00:59
lexrupyat this poiint mybranch will belong to my user on server...00:59
lexrupyand another user cannot push changesets there if I not..... forget01:00
lexrupyI have pointed that now01:00
lexrupy:)01:00
lifelesslexrupy: you need to use a replacement ssh server to do this; or use bzr+http and use apaches auth support01:00
lexrupyI put my ssh public key on server.... I have forgot that :)01:00
lifelesslexrupy: bzr works fine with groups; just have both users in the same group01:00
lexrupyI in fact can have a bzr user on server and create all repos in that account01:01
lexrupythen authenticate users via ssh public key01:01
lexrupysorry, it was a "stupid" question01:02
rockstarlexrupy, I put my branches in /var/lib/bzr/<project>/<branch-name>01:02
Peng_lifeless: In bzr-search, did you mean to change group_size from 2500 to 50?01:02
lifelessPeng_: yes01:02
Peng_That lowers memory use, right?01:02
rockstarlexrupy, So I make the <project> folder owned by a group called developers, which I am a member of.01:02
lifelessPeng_: yes01:03
Peng_lifeless: Does it affect speed?01:03
Peng_(effect? bah)01:03
lifelessPeng_: somewhat01:03
lexrupyand you have an user for each develpper at yhour server?01:03
Peng_lifeless: How long is it supposed to take to index a copy of bzr.dev?01:03
lifelessPeng_: a few minutes01:03
Peng_lifeless: I've had it running for 20 minutes and it's barely halfway done. :)01:04
lexrupyI already have a setup with asingle bzr user, and each user push and pull from server using something like bzr+ssh://bzr@server/bzr/branch01:04
lifelessPeng_: hmm, roll back the push and try again; I'd like to know if it is faster for you01:04
rockstarlexrupy, yes, each developer on the system is a member of developers.01:05
Peng_You mean waste 20 minutes of work? Heh.01:05
lifelessPeng_: yes01:06
lexrupyrockstar: and I already have public keys there so, users no need to enter bzr password on server, but I was thinking about sftp protocol, but since spiv said me before that launchpad use the Fast Server the launchpad setup seems like my setup01:06
Peng_FWIW, the copy of bzr.dev is using btrees, and I ran it with -Dmemory, but that shouldn't have an impact.01:06
lexrupyrockstar: but in fact I add a public key for each people I want to do access to *all* branches... and launchpad do it "per branch"01:07
lifelessPeng_: if the index time is substantially different for you before/after that patch, I will fix; if its not, then I'll get you to give me a lsprof trace.01:07
lifelessbbs, lunch01:08
Peng_lifeless: Right now the progress bar is on step 2/9 and it's only been running for 1.5 minutes, so I think it is substantially faster.01:09
dryahetzephIs it possible to use bzrlib from a standalone bazaar installation on win32?01:10
=== dryahetzeph is now known as hydrapheetz
Peng_lifeless: Now it's at 4/9. It's definitely much faster.01:11
Peng_Haha, woah, it's using 400 MB of RAM. I like group_size = 50 better. :P01:15
Peng_lifeless: Using the previous revision of bzr-search, it took 7 minutes and 42 seconds to index the whole thing. That's definitely a lot faster.01:16
hydrapheetzHm, I wonder if I can just use the bzrlib module from the sources instead.01:18
Peng_hydrapheetz: Sure, you can. Some things will be a bit slower if you don't compile the extensions, but it'll work.01:18
Peng_(As long as it can find its dependencies.)01:18
hydrapheetzAh01:19
hydrapheetzI tried doing that and importing it, I haven't tried anything else with it yet01:20
lifelessPeng_: ok, there are two possibilities01:25
lifelessPeng_: I bet its the type detection misfiring01:25
lifelessPeng_: put the patch back, then bump the batch size up, if you would01:26
lifelessPeng_: I bet its still slow01:26
kumiIs there any way to update a working tree after a remote client push? The remote client only has bzr+ssh:// access01:28
Peng_kumi: Does it have plain-old-ssh access?01:29
Peng_kumi: Well, anyway, the push-and-update plugin might work.01:29
kuminope, just bzr01:29
Peng_lifeless: Will do01:29
kumipush-and-update require plain old ssh access01:29
lifelessPeng_: thanks - appreciate this01:29
lifelesskumi: bzr+ssh is layered on plain old ssh01:30
kumiyeah but the remote client is limited to the 'bzr' command01:30
Peng_push-and-update just runs "bzr update".01:30
Peng_So unless it's limited to "bzr serve", it should work.01:31
Peng_Anyway, try it out. It only takes 30 seconds.01:31
kumiIt's using the bzr_access script, it won't work01:31
Peng_Oh.01:31
Peng_lifeless: It's running now. I'll get back to you in 7 minutes, I guess.01:32
spivIf it's restricted to "bzr serve", then there's not much you can do.  You could write a plugin to install on the server that installs a post_branch_tip_changed hook to update a working tree.01:32
lifelessPeng_: thanks01:32
kuminot many of the built-in hooks are server side, maybe pre_change_branch_tip01:32
kumipost*01:32
Peng_lifeless: Actually, it's already on step 2/9, so it seems to be going pretty fast.01:32
kumiI'll check that ouut01:32
spivOr you could configure a cron job on the server to run "bzr update".01:32
lifelessPeng_: oh01:32
kumispiv: yeah maybe that too01:32
spivkumi: with new enough client and server (1.7?) post_change_branch_tip (or whatever it's called) will occur server side.01:33
Peng_lifeless: Yeah, it's definitely not going to take 20 minutes.01:33
lifelessPeng_: so tip with batch_group of 50 is slow, with 2500 is fast?01:33
lifelessPeng_: ok. I was hoping to reduce the massive memory spike mysql causes01:33
kumispiv: I've got 1.9 on both ends01:33
Peng_lifeless: group_size, yes.01:33
spivkumi: ok, that's definitely new enough :)01:33
Peng_Too bad. I was hoping to reduce memory usage too!01:34
spivkumi: or tweak the bzr_access script to allow "bzr update"?01:34
kumiI don't think I could handle that (unless I have a 2nd copy associated with a 2nd ssh key). I'll try writing a hook01:40
lifelesskumi: why would you need a 2nd ssh key?01:41
kumiI think that's how it would have to work with authorized_keys01:42
kumiif ssh key #1 logs in, run the bzr_access (bzr serve) script. If ssh key #2 logs in, run the bzr_access (bzr update) script.01:43
lifelesskumi: ah, I see01:45
lifelessI thought it was more like sudoers01:45
kumithe authorized_keys command parameter only accepts one argument01:45
Odd_BlokeIt wouldn't take much hacking to allow the script to optionally call 'bzr update' after the 'serve' was done.01:45
lifelessOdd_Bloke: it won't know what path to update01:46
lifelessa plugin is the best option01:46
kumiIt might work if the branch directory is the same as the working tree directory01:47
=== jamesh__ is now known as jamesh
=== tchan1 is now known as tchan
=== mark1 is now known as markh
grettkeHi folks. I've got a shared repository of format "rich-root-pack". I would like to upgrade it to the 1.9 equivelant, but I'm not sure if that is "1.9-rich-root" or if, in fact, there is nothing to upgrade path at all.04:04
lifelessgrettke: its 1.9-rich-root04:05
grettkelifeless: Understood. Thanks.04:05
Peng_lifeless: BTW, do you have any use for the search indexes I created while timing it, or can I delete them?04:18
lifelessPeng_: unless you suspect a bug, no04:22
lifelessPeng_: but you could keep them, to use :P04:22
Peng_Wait.. it creates a new pack each time it hits the group_size? When the group_size is really low, that means it'll do a bunch of autopacks, right?04:24
Peng_That wouldn't help performance.04:24
Peng_What does bzr-search do if not all of the revisions in a branch are indexed? (E.g. I hit Ctrl+C halfway through the indexing.)04:28
lifelessPeng_: autopacking is small; only 10% hit or so04:30
abentleyspiv: around?04:38
lifelessPeng_: also search has a different autopack trigger than bzr04:40
lifelessPeng_: because of slightly different uses04:40
spivabentley: yeah04:43
abentleyspiv: So I tracked down a cause of stacked push over HPSS slowness: RemoteRepository.get_parent_map wasn't stacking.04:45
spivabentley: ah!04:46
abentleyspiv: Yeah, that caused it to try to push ~ the whole history.04:46
spivSo the walk_to_common_revisions would walk a *long* way...04:46
spivHmm.04:46
abentleyspiv: I have a fix that does the stacking on the client side in RemoteRepository.04:47
Hydrogenwalk five thousand miles...04:47
spivYou mean the server-side is doing the wrong thing, or the client?04:47
abentleyspiv: Server-side doesn't have fallback repositories, so it can't be expected to do the right thing.04:47
* spiv nods04:48
abentleySo I figure this has to be done client-side, which is pretty in-tune with lifeless' choices.04:48
abentleyi.e. that we don't want to require stacking on the server side.04:49
abentleyspiv: I'm looking at RemoteRepository.get_parents, and I don't understand why it's implemented that way.04:49
spivRemoteRepository.get_parent_map, you mean?04:50
abentleyspiv: yes.04:50
spivThere's a bit of ugliness there to handle falling back to less optimal methods, but I'm not sure if that's what you're referring to.04:50
abentleyIt's doing caching itself instead of using CachingParentsProvider.04:51
spivI suppose it could, although it'd require a bit of mucking about to create a suitable object to construct it with.04:52
abentleyIs there a reason for that?  Or a reason not to do it in _make_parents_provider?04:52
spivIf I implement a RemoteVersionedFiles class to handle the .revisions (and .texts/.inventories/.signatures) I could just pass that I guess.04:53
abentleyspiv: Oh, it's because the caching is happening at a tuple level?04:54
abentleyThere's nothing about CachingParentsProvider that requires the keys to be strings.  Tuples should work just fine.04:55
spivShort answer: no particular reason.04:55
abentleyspiv: Okay, I'll hack on it tomorrow and there should be a patch on the ML when you wake up.04:56
spivAlthough I don't think any other Repository uses CachingParentsProvider in its implementation of get_parent_map.04:56
spivIt seems to be used via _make_parents_provider by get_graph.  And get_parent_map is the primitive that that is built on.04:57
abentleyspiv: Nothing should be using get_parent_map directly.  They should be using get_graph, and other repos use it for that.04:57
spivHmm.04:58
spivI don't think that's actually what's happening, even if that's what should be done.04:58
spivThere's places like Repository.has_revision and InterPackRepo.fetch that call it directly.04:59
abentleyspiv: Doing it directly kills opportunities for optimization.05:00
spivWhy not allow get_parent_map to cache automatically, rather than forcing things to go via get_graph?  Because that gives us more room to tweak the caching policy in future?05:00
abentleyBecause you get a really easy way to manage the lifetime of the cache.05:01
lifelessabentley: OTOH you have to manage the lifetime, or else differnet parts of bzrlib end up using different caches05:02
spivget_graph() strikes me as a bit weird, basically because of what lifeless just said.05:03
pooliehello friends05:04
abentleylifeless: This is a memo, not a true cache, so we can't keep using it for the whole bzrlib lifetime.05:04
abentleypoolie: hi.05:04
lifelesshi poolie05:05
spivThere's only one graph per repository object (or should be...), because the data should be cached just once.  So it's not a very separate object.05:05
lifelessabentley: because it will grow too big?05:05
abentleyspiv: There are as many graphs as you create.05:05
abentleylifeless: yes.05:05
lifelessabentley: so I think there are two separate things here; the cache does reset when the lock count drops to 0, so its not entirely a memo, but as you say there is no ejection policy05:06
spivHmm, I thought I'd seen a get_graph somewhere that returned the same graph object, or at least effectively the same one.05:06
abentleylifeless: I am talking about CachingParentsProvider, not the cache in RemoteRepository.05:06
lifelessabentley: oh right05:06
abentleyspiv: No, and it's impossible, because get_graph takes a repo parameter.05:07
spivThere's other, related caching that happens in repository that is managed by lock lifetimes, i.e. index caching.05:08
spivHmm.  The other thing with RemoteRepository.get_graph is that it expects to receive more results than it asked for.05:10
abentleyspiv: The parents provider for an individual repo *could* be always the same, but isn't because the client was meant to manage that object's lifetime.05:10
spivI suspect that returning those extra results, rather than just filling a cache with them, would break some callers in surprising ways.05:10
spivIt's too easy to assume that "if len(foo.get_parent_map(keys)) != len(keys): # something must be missing" will work.05:11
abentleyget_graph just returns a Graph.05:11
spivBut if those extra results sent by the server aren't cached, then RemoteRepository is going to be unnecessarily slow.05:12
spivSo, if the question is "why change RemoteRepository.get_parent_map to reuse the cache logic in CachingParentsProvider?", then sure, we can do that.  (it's not a huge amount of code duplication, but reuse is typically a good thing)05:14
spivBut if the question is "can we make RemoteRepository.get_parent_map not do any caching?", then I think the answer has to be no.05:14
abentleyspiv: So this means that RemoteRepository can't be its own parents provider.05:15
abentleyAnd the original reason that repositories had get_parent_map was so that they could act as parents providers.05:15
spivOr at least, "not yet, and changing that will need some careful thought."05:16
lifelessabentley: why can't it be its own parents provider?05:17
spivWhy do you say that?  I'm not sure what part of the contract it doesn't satisfy?05:17
spiv(Is there a written description somewhere?  A quick grep isn't finding one for me.)05:17
abentleyspiv: In order for RemoteRepository.get_parent_map to use CachingParentsProvider, there must be an object that provides uncached access to parents via a get_parent_map method.  Which means it can't be RemoteRepository.get_parent_map.05:18
spivI can see that it would be redundant to use CachingParentsProvider with RemoteRepository.get_parents_map, but I don't see why it *can't* use it.05:19
lifelesswhat spiv said05:19
abentleyspiv: Calling get_parents_map would give infinite recursion.05:19
spivHuh?05:20
lifelessabentley: cached provider -> rr -> cached provider (remote content only)05:20
abentleyRemoteRepository.get_parents_map -> CachingParentsProvider.get_parents_map -> RemoteRepository.get_parents_map.05:20
spivBut there is no "RemoteRepository.get_parents_map -> CachingParentsProvider.get_parents_map".05:21
lifelessabentley: ah I see05:21
lifelessspiv: abentley is saying that the CPP needs a callable to get the backend data over the wire, and that that can't be RR.gpm05:21
abentleyspiv: If we use CachingParentsProvider to implement RemoteRepository.get_parents_map, there will be.05:21
spivabentley: sure.  But if we write "def f(): f()" there will be infinite recursion too, and we don't do that either ;)05:23
spivI mean, obviously we can't make RemoteRepository.get_parent_map use a CachingParentsProvider(self).05:24
spivBut there are other ways to reuse that caching logic without doing that infinite recursion.05:24
abentleyspiv: in other words, it can't be its own parents provider.05:24
spiv(refactor CachingParentsProvider slightly, or provide another object than self to CachingParentsProvider that will fetch the data)05:25
abentleyThe other object will be the parents provider.05:25
spivWell, it is its own parents provider at the moment, as the implementation of RemoteRepository._make_parents_provider hopefully demonstrates :)05:26
abentleyBut it is upsetting to me that I need the other object, since the purpose of sticking get_parents_map on repos was to allow the repos to be parents providers.05:27
spivBut RemoteRepository already is a parents provider, as I understand the term.05:28
abentleyspiv: Yes, but it's one that doesn't stack.05:28
spivIt is an object that implements get_parents_map, what else is there?05:28
abentleyAnd adding stacking would ideally be done using _StackingParentsProvider05:28
abentleyBut it's the same story as CachingParentsProvider.05:28
lifelessabentley: huh? lost me05:29
lifelessabentley: why can't you use SPP with a RR and its fallback repositories05:29
abentleylifeless: I thought we weren't supposed to do server-side stacking.05:30
lifelessabentley: on the client05:30
abentleylifeless: Misunderstood.05:30
spivWhy wouldn't _StackedParentsProvider([remote_repo, other_repo]) work?05:30
abentleylifeless: You can't do SSP with a RR and its fallback repositories, because that will give infinite recursion.05:30
abentleyspiv: The StackedParentsProvider must be used in the implementation of RR.get_parent_map05:31
spivI think there is a lot of confusion because you're talking about a hypothetical version of RemoteRepository, and we're talking about the current actual RemoteRepository.05:31
spivOk.05:32
abentleyspiv: I'm talking about one where we have fixed this problem.05:32
abentleyThat stacking is broken.05:32
spivUntil the patch is published, it's hypothetical ;)05:32
abentleyAnd ideally, killed the duplicate code.05:32
abentleyspiv: Are you saying you don't want me to discuss how to fix this problem?05:33
lifelessabentley: so it seems to me that caching in RR is unrelated ot the core issue which is that RR.get_parent_map doesn't know how to retrieve data from fallback repo's05:33
spivSo it seems to me that it's unnecessarily inconvenient to construct a FooParentsProvider from a callable.05:33
abentleylifeless: The common thread is a lack of use of existing ParentsProvider code.05:33
spivWhich means that you can't do e.g. _StackedParentsProvider([remote_repo._private_get_parent_map, ...]), you have to create an object with a get_parent_map attribute.05:34
abentleyspiv: It's an interface.05:34
lifelessabentley: what I'd be inclined to do is consider the current get_parent_map as the binding to the remote server, and rename it to _get_parent_map, then have get_parent_map which is built on a self._pp, which is a SPP([self._get_parent_map, fallback1.get_parent_map, ...])05:34
spivWhich seems more like a flaw in the *ParentsProvider(...) APIs than RemoteRepository.05:34
spivThat said, it's easy to construct a helper to adapt a callable to an object with that attribute.05:35
spivRobert's suggestion sounds fine as well.05:35
spivWell, I guess lifeless's suggestion still needs to address the "there needs to be an object with a 'get_parent_map' attribute that is the underlying non-stacked get_parent_map"05:38
abentleyspiv: You wouldn't consider the commit code flawed because it expects a branch to have a last_revision_info method.  Why would StackedParentsProvider be flawed because it expects a parents provider to have a get_parent_map method?05:38
spivBut that's easily solved either by making a new class to hold it, or by making an alternative constructor for SPP that takes callables rather than objects with get_parent_map.05:39
spivBecause it only demands a single attribute of the object, a callable one.  So it could just as well take the callable directly, which makes problems like this one less messy.05:40
abentleyI was responding to "it's unnecessarily inconvenient to construct a FooParentsProvider from a callable", and the suggestion that StackedParentsProvider take a callable instead.05:41
lifelessspiv: its easy enough to write CallableParentsProvider, to adapt; though as get_parents_map is critical path for log and other deep history operations that may be problematic05:42
spivMan, I make a lot of typos sometimes.  "it seems to me that it's unnecessarily inconvenient to construct a FooParentsProvider from *an object when all it needs is a* callable"05:42
spivlifeless: right05:42
spiv(If it's that much of a critical path those classes would be holding references to callables rather than parents providers already, though...)05:43
jmlhi05:47
jmligc:  hello :)05:47
igchi jml05:47
jmllifeless, abentley: I have a loom problem.05:47
jmlI just did combine-thread on the wrong thread05:47
jmlhow can I undo this?05:47
lifelessjml: is your loom recorded?05:48
jmllifeless: I probably hit record some time in the distant past05:48
lifelessjml: ok then thats not so easy05:48
lifelessjml: plan b, create-thread to recreate the thread you deleted05:49
lifelessand use pull -r to reinstate its top05:49
spivYou could use "bzr heads" to find the old tip of that thread.  The head with a nick of the old thread's name is probably the one you want.05:49
lifeless*tip*05:49
spivWow, lifeless's accent is now leaking on to IRC ;)05:49
jmlspiv: heads doesn't find it.05:50
lifelessspiv: its not a head05:50
lifelessjml: log --show-ids on the thread above05:50
jmllifeless: it was the top thread.05:51
lifelessjml: if it was the top thread it will be a dead head05:51
spivlifeless: oh right, he probably had it merged into the parent loom05:51
spivs/loom/thread/05:51
jmlahh there we go.05:51
spivs/parent/higher/05:51
jmlthanks05:54
jmllifeless: incidentally, how would you feel about a loom patch that aliased up-thread to "up" and down-thread to "down"?05:55
lifelessjml: fine05:57
=== abentley1 is now known as abentley
spivabentley: did you have any thoughts on http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C20081114060525.GJ31377%40steerpike.home.puzzling.org%3E ?06:09
=== abentley1 is now known as abentley
spivabentley: did you have any thoughts on http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C20081114060525.GJ31377%40steerpike.home.puzzling.org%3E ?06:21
gourigc: hello. have you seen the latest activity in bug #232177 ?06:24
ubottuLaunchpad bug 232177 in bzr-fastimport "Better darcs support needed" [Undecided,New] https://launchpad.net/bugs/23217706:24
gourdarcs-fast-export makes bzr's fast-import really slow in comparison with git's :-(06:25
igchi gour06:27
gourigc: how are you?06:27
igcgour: so bzr-fast-import is working, just slow, is that it?06:28
igcgour: not too bad at the moment thanks06:28
gourigc: yes, i tried it with smaller repo, cause it took too long for e.g. darcs-unstable06:28
gour*repos06:28
igcgour: almost recovered from one lot of surgery with another lot coming later this week06:29
gourigc: i'd like that LP people add darcs import to LP06:29
gourigc: i'm glad you are doing fine. we pray that everything will be good06:29
igcgour: be sure to raise that then as a bug against LP06:29
igcgour: thanks06:29
gourigc: i added comments to https://answers.launchpad.net/launchpad-bazaar/+question/41438 if some of You (bzr devs) think it is good thing, it would be nice to comment06:30
gourigc: is question enough or better to create a bug?06:30
igcgour: create a bug please06:31
gourigc: ok06:32
gourigc: done. bug #29893306:40
ubottuLaunchpad bug 298933 in malone "support for darcs import" [Undecided,New] https://launchpad.net/bugs/29893306:40
igcgour: thanks06:40
gourigc: do you take care about your diet?06:41
igcgour: very much so06:41
gourigc: good boy ;) that's VERY important...06:42
armybazaar 1.9 bzr-svn 1.45 , macosx 10.5 macports;  bzr checkout from a svn trunk(bzr co http://www.prestashop.com/publicsvn/trunk);error occured ;bzr: ERROR: footer.php is already versioned08:24
armyis it a bzr-svn's bug?08:25
asabilhi all09:46
asabilis there a way to get bzr-git work over http ?09:48
visik7I need to remove some files that lives in my history that are HUGE and when I mean huge I mean 600mb  that is not anymore in the tree, they are introduced at revision 4 and removed at revision 8,  hmeland told me to use rebase but I really dunno how to do it09:50
=== jszakmeister|awa is now known as jszakmeister
Odd_Blokeasabil: I suspect it involves writing the code to do that.  jelmer will know more.09:56
asabiloki thanks09:56
hmelandvisik7: I haven't use rebase much myself, but I think something like this should work: "bzr branch -r 3 big-branch new-branch; cd big-branch; bzr rebase -r 5..7 ../new-branch; bzr rebase -r 9.. ../new-branch"11:03
hmelandIf revisions 4 and/or 8 do anything else than add/remove the now-unwarranted files, you'll have to do some manual merge-trickery to retain those interesting bits.11:04
asabilvisik7: I think you can also use bzr replay11:11
vilahi all11:27
=== jszakmeister is now known as jszakmeister|awa
lifelesshi vila, was your flight back pleasant?11:40
tetha_oh dear. someone pushed me into really crazy ideas -- extending literate programming to large software using event streams and dotfiles to chain things together11:56
=== sabdfl1 is now known as sabdfl
=== tetha_ is now known as tetha
=== verterok_ is now known as verterok
vilalifeless: Pleasant may too strong a word :) Delayed 7h at Brisbane broke all connections adding a day in Singapore... luckily I avoided French pilots strike13:00
vilalifeless: be careful what you wish for... I should not have wish to stay longer in Australia :)13:01
spivvila: heh13:03
spivvila: bad weather at Brisbane?13:03
vilalifeless: so, pleasant... yes, but having only slept ~12h (cumulated) since last Friday ...13:03
spivOuch!13:03
spivGo to bed :P13:03
vilaspiv: not even, some "noremal" delay of 2 or 3 hours at first. but then a verification requiring some pieces to come from Sidney13:04
spivThat's pretty crummy.  I'm glad you eventually made it home!13:05
vilaIt was interesting to see how they were able to find an hotel for the ~300 people concerned and re-book all the flights  (with the same numbers 24 hours later)13:05
* spiv -> bed13:06
vilaI arrived a couple of hours ago, but my I doubt I will work today (or produce anything deserving to be called work :)13:06
vilaspiv: I hesitate to do the same :) I'd like to find back the right schedule :)13:07
asabilwould it be possible to have the bzr-svn in the bzr PPA usable ?13:24
=== lamont` is now known as lamont
jelmerasabil, see bug 29300913:43
ubottuLaunchpad bug 293009 in bzr-svn "Bzr-svn conflicts with bzr in the PPA" [Undecided,New] https://launchpad.net/bugs/29300913:43
asabiljelmer: ok thanks, but what about a fix ?13:45
asabilit is just an13:45
asabilorganization issue13:46
jelmerasabil, not sure, John is doing most of the PPA uploads13:46
asabilI guess it would make everyones life easier if the uploads were made in sync13:46
jelmerasabil: The releases of bzr and bzr-svn aren't made in sync13:46
asabilhmm ok13:47
fullermdIt's all a sneaky underhanded method of tracking how many people the the PPA.13:48
fullermdWTF?  s/the/use/.  Who stole my typing fingers?13:51
jelmerPerhaps we should pull bzr-svn from the PPA unless somebody volunteers to maintain it13:51
jelmers/unless/until/13:51
=== mw|out is now known as mw__
asabilis it that hard to maintain ?13:55
jelmerIt means 4 uploads to the PPA13:58
jelmer*per package*13:58
jelmerI maintain ~10 bzr-related packages in Debian, so uploading to PPA as well would be quite some overhead13:59
cprovjelmer: have you tried auto-ppa (from jkakar) ?14:02
jelmercprov, Yes, but it has several issues that would need to be fixed first14:03
cprovjelmer: uhm, are they *hard* ? maybe I could help you guys.14:03
cprovjelmer: also, are you absolutely sure you need rebuilds in all ubuntu series ?14:04
jelmercprov, Yeah, it's a nontrivial amount of work to fix autoppa14:05
jelmercprov, the bzr PPA itself has builds for all Ubuntu series14:05
cprovjelmer: yes, I know we do build for all series, my question was if you know that you need to or it was done just because it was easier.14:07
jelmercprov, I'm not sure, I know we do still get complaints if e.g. something breaks or is out of date for dapper14:08
cprovjelmer: it's not easier to answer (I'd not be able to do that myself) it requires inspecting the evolution of the build-depedencies.14:08
cprovjelmer: right, dapper is quite old compared to hardy14:08
cprovjelmer: maybe we would be good building for dapper and hardy only and copying binaries to intrepid & jaunty14:09
cprovjelmer: we could do the test in a separate PPA, I'm sure users would spot problems very quickly if they exist.14:10
jelmeryeah, that would certainly help, but still means it's a nontrivial amount of work14:10
johnccHello folks.  Just to let you know, I think the bzr-bash-completion plugin on the site is rather broken. You may want to move it to the obsolete section14:11
johnccIt doesn't work with the current format of the help output14:11
johnccIt's pretty hideous anyway :)14:12
cprovjelmer: half of the non-trivial work if we don't need to rebuild for intrepid & jaunty.14:12
cprovjelmer: also consider that the debian source can be uploaded as it is to hardy.14:12
cprovjelmer: leaving the non-triavial work only for the dapper packages.14:13
jelmercprov: Doesn't the version string have to be fixed?14:13
cprovjelmer: no, if you are not rebuilding14:13
cprovre-upload debian source to hardy, wait it to build, copy source and binary to intrepid & jaunty.14:14
jelmercprov: Ah, ok - that's new?14:14
jelmercprov, How does PPA know what series an upload is targetted?14:14
cprovjelmer: dput upload path14:14
cprovjelmer: the changelog will be target to 'unstable' but you would upload to ~jelmer/ubuntu/hardy/14:15
cprovjelmer: then oddness would be isolated in the dapper packages, which would probably need tweak in python-central/python-support, anyway.14:16
jelmercprov: I think I'll leave dapper alone for now, uploading hardy and friends should already make a lot of people happy14:17
jelmercprov, Thanks!14:17
cprovjelmer: great, ping me if you have problems, i'm more than happy to help you solving those issues with bzr-ppa.14:18
=== cprov is now known as cprov-lunch
jelmercprov-lunch, It seems if I upload a source package to hardy I can no longer upload it to intrepid?14:43
james_wjelmer: correct. you can copy it, but that requires copying the binaries as well.14:54
jelmerjames_w: ah, ok - thanks14:57
jelmerseems like a silly restriction to me though...15:00
james_wjelmer: it's a requirement of the pool structure, which is vital for real archives. PPAs don't have to use that structure though.15:08
jelmerjames_w, ah, makes sense15:10
* jelmer isn't a big fan of web interfaces, would be nice to see that be a bit more flexible for PPAs15:10
jelmerjames_w, while you're here... :-)15:11
jelmerjames_w, any bzr-builddeb news ? :-P15:11
james_whave you looked at the launchpad API?15:11
james_wit's not there yet, but will satisfy all your needs eventually I expect15:11
james_wnot yet, sorry. I should have the time to do all the merges this week.15:11
jelmerah, cool15:12
jelmerjames_w, It would be nice if ubuntu-dev-tools had a tool for that sort of thing, using the Launchpad API15:13
james_wI'm sure it will in time15:13
* jelmer wonders how politically complicated it would be to upload ubuntu-dev-tools to Sid15:14
james_whmm15:15
=== thekorn_ is now known as thekorn
derekShello all. i have a really n00b question. I am looking through this and _something_ doesn't look right. is it true that i don't need a true bazaar server, i can just use my sftp server?15:59
derekSit will only be me checking in and out...15:59
derekSso i don't care _that_ much about permissions15:59
lamalexderekS: that is true16:00
derekSlamalex: is there any downside to it?16:00
lamalexdownside to what16:00
derekSto only using an sftp server?16:00
lamalexno..? I mean, there's no such thing as a "true bazaar server"16:01
lamalexthat's the whole point of dvcs16:01
lamalexif more people are working on it, then having a centralized location can be handy, but it's not required16:01
jdongderekS: if there's a "downside" it's that it's not quite as fast for network operations.16:02
lamalexso the only downside to using sftp is it's a little bit slow iirc16:02
jdongbut that's a really minor downside compared to the convenience16:02
jdongbzr is really one of the last VCSes that support serverless operation well16:02
jdongand that's one of the things that makes it my favorite VCS16:02
=== kiko is now known as kiko-fud
derekSlamalex, jdong: sweet!16:03
derekSnow, i guess kinda important, i use windows for home, linux for work, how well is windows support? i have the cygwin version, is there a gui type client16:04
lamalexhttp://bazaar-vcs.org/WindowsDownloads16:06
thropeare you supposed to be able to add files with tortoisebzr? I only have a very few options on existing files (diff) - no option to add a new file16:09
derekSlamalex: thanks!16:11
derekSlamalex: 2 last questions... i use tortoisesvn, how does tortoisebzr compare? is it as stable? Also, is there an easy svn to bzr conversion?16:15
lamalexderekS: you can use bzr to talk to svn via the bzr-svn tool, I also think you can convert svn to bzr easily, but im not sure16:19
lamalexi have no idea how tortoisebzr is, I don't use windows16:20
jelmerderekS, you should be able to convert from svn to bzr with bzr-svn's "bzr svn-import" command16:20
derekSlamalex: thanks :)16:20
derekSjelmer: i assume i have to install a plugin?16:20
jelmerderekS, yes, the bzr-svn plugin16:20
jelmerit's included with the bzr setup on windows16:21
thropederekS: I haven't had much luck with tortoisebzr16:27
thropeI was hoping to use it to collaborate with some windows users, but I don't think it is in a usable state16:27
thropeit looks very promising - not trying to be negative - just saying its not there yet16:28
Sidneihello there, i remember seeing a tutorial about how to keep your main branch in bzr and mirror it to subversion, but google can't find it, anyone remembers where that is?16:30
derekSthrope: i might try it out, i will let you know :)16:36
jelmerSidnei, It should be very simple - just "bzr push <svn-location>"16:41
Sidneijelmer: i get "bzr: ERROR: These branches have diverged.  Try using "merge" and then "push".16:42
Sidnei'16:42
jelmerSidnei: You can't push to the repository root, only to /trunk16:42
jelmerSidnei: For the first push, use 'svn-push'16:42
jelmerbzr svn-push, that is16:42
* Sidnei tries16:42
=== sdboyer is now known as sdboyer|class
Sidneijelmer: great, i re-did it and it worked this time. i think i had messed up some command before.17:01
jelmercool17:02
Sidneifwiw, what i did: bzr branch <svn>; bzr merge <bzr-main-branch>; resolve conflicts; bzr svn-push <svn>17:03
Sidneimay or may not be the right way, but achieved what i wanted to do :)17:05
=== kiko-fud is now known as kiko
=== bac is now known as bac_lunch
rockstarbeuno, now it's leaking about 4 mb/request17:55
bkuhnIs it ok to show up and ask newbie questions here?17:55
beunorockstar, so caching isn't to blame?17:55
beunobkuhn, it absolutely is!17:55
beunowe love easy questions17:55
rockstarbeuno, this is a vanilla checkout.  No changes at all, except my implementation of the MemoryMiddleware17:56
* Sidnei doesn't want to know what's leaking 4mb/request 17:56
bkuhnI am trying to set up a bzr instance that many developers can push and pull from.  I have it working so that zr branch bzr+ssh://user@HOST/PROJECT works.17:56
rockstarSidnei, loggerhead17:56
bkuhnbut I cannot get it to push17:56
bkuhnIt says: "Transport operation not possible: readonly transport"17:56
rockstarbkuhn, do you have write permissions in the folder?17:56
bkuhnI find conflicting information online about whether or not bzr+ssh can be used for pushing.... it seems like it can.17:56
bkuhnyes.17:56
rockstarbkuhn, it can be used for push, yes.17:57
bkuhnI'm using a single uid currently.17:57
bkuhnBTW, it's bzr 1.3.1-1ubuntu0.117:57
bkuhn(on both client and server)17:57
beunorockstar, it went from 100kb to 4mb?17:57
kumithat's a pretty old version17:57
beunobkuhn, that should work17:57
bkuhnkumi: it's what's in hardy. :)17:57
beunobzr+ssh isn't a readonly transport17:57
beunounless the user can't write17:58
bkuhn ah, this may be pertinent:  Cannot lock LockDir(chroot-140973836:///PROJECT/.bzr/branch/lock)17:58
bkuhnthe appropriate UID has write on that dir though17:58
beunobkuhn, right, so it can't write17:58
bkuhn(in fact, it's the owner)17:58
rockstarbeuno, well, I think the 400k was the kernel doing some clever things to change reporting, but the RSS increases 4 megs every request.17:58
beunobkuhn, can you ssh into it and try to write that exact same fil?17:58
rockstarbeuno, it'd be nicer if I could read directly form /proc/<pid>/mem17:58
bkuhnbeuno: I don't want the user to be able to get a shell generally, so I was having it call the bzr command directly with command=.  I should have mentioned that.17:59
bkuhnI will try it without the command=17:59
kumiare you using bzr_access?17:59
bkuhnkumi: not yet, but I want to.  Is there a package that builds easily for hardy for it?18:00
kumibzr_access is just a python script18:00
bkuhnkumi: URL?  (net.search doesn't seem to give a canonical place in the first few hits...)18:01
Sidneirockstar: if you are using some sort of caching there, making sure your cache key is computed correctly would be my guess. i've been bitten before by computing a cache key that would change for every request.18:01
bkuhnbeuno: ok, so I turned off command= ... if I log in, these commands work fine:18:02
bkuhntouch /path/to/project/.bzr/branch/lock/test18:02
kumiI'm just using bzr_access from the bzr.dev branch. In the contrib/ folder18:02
bkuhn 18:02
bkuhnrm /path/to/project/.bzr/branch/lock/test18:02
bkuhnkumi: thanks18:02
beunobkuhn, maybe it's trying to write to the wrong paths?18:03
kumibkuhn: maybe try "bzr break-lock"18:03
jelmerbkuhn: The path in the URL is interpreted relative to the fs root18:03
rockstarSidnei, I don't think it's a cache issue now.  I see the kernel doing its best to clean up memory, so, while the number is generally climbing, it drops now and then.18:03
bkuhnjelmer: yeah, I tried to fix that by using bzr serve --directory /path/to in the command= in authorized_keys18:03
rockstarThere's a leak somewhere.18:03
visik7anyone who know how to use rebase ?18:04
bkuhnI wish there were a tutorial somewhere about setting up one's own server.18:04
rockstarUsually, the kernel cleans it up after a jump of 32Mb in one request.18:04
jelmerbkuhn, I suspect that bit just works if you make it run on a specific TCP/IP port18:05
Sidneirockstar: maybe you have some sort of cycle that is preventing objects from being garbage collected? that's common with in-memory caching too.18:05
bkuhnjelmer: how does it do auth in that case?18:05
jelmerbkuhn, It doesn't, that's usually just used for readonly access18:06
jelmerbkuhn: Are you specifying --allow-writes ?18:06
jelmerbkuhn, that may actually be it18:06
bkuhnjelmer: yeah, it seems to work, now, actually, but I still get this error: his transport does not update the working tree of: bzr+ssh://USER@HOST/PROJECT/. See 'bzr help working-trees' for more information.18:08
lamalexbkuhn: because you're pushing to a working tree vs. a repo18:08
beunobkuhn, that is correct18:08
kumiI don't think that's an error18:08
beunoremote trees don't get updated18:09
beunoremote _working_ trees that is18:09
bkuhnlamalex: ah, how do I make it a repo on the server?  I just bzr init...18:09
beunobkuhn, just pushing it18:09
beunoit won't create a working tree18:09
beunocreate it locally, and push it18:09
lamalexindeed18:09
lamalexbzr rules :)18:09
bkuhnbeuno: so you are saying, do a bzr init on the client side, then push it?18:10
jelmerbkuhn, or on the server, run "bzr remove-tree" toi remove the working tree18:10
derekShi guys, another question, is it possible to branch subfolders/files, but not a whole checkout?18:11
jelmerderekS, not yet18:11
Sidneiis there any kind of caching on the client-side of bzr? i moved a branch around in my remote server to the location of another branch i just deleted and now trying to branch on my local machine I get 'ERROR: no such file' for one of the files18:11
derekSjelmer: hmm ok, is that coming in the near future?18:12
kumiSidnei: bzr info -v will show you the cached locations18:12
bkuhnjelmer: thanks, remove-tree worked great!18:13
jelmerderekS, it is planned, not sure how soon though18:13
derekSjelmer: thanks!18:13
visik7hmeland: hi I'm still digging with rebase18:15
kumiHm... BzrLog is a cute little app18:16
visik7hmeland: I've followed your advice:"bzr branch -r 3 big-branch new-branch; cd big-branch; bzr rebase -r 5..7 ../new-branch; bzr rebase -r 9.. ../new-branch"18:16
visik7hmeland: but on the last command I get bzr: ERROR: Requested revision: u'12' does not exist in branch: BzrBranch6('file:///home/visi/Desktop/big-branch/')18:17
visik7hmeland: don't worry I've backups but I can't get forward18:17
bkuhnThanks everyone, I have things working now well with bzr+ssh:// using bzr_access.  Now, to figure out how to give anonymous http:// access w/ apache.  If anyone has a tutorial URL handy, I would appreciate it. :)18:24
beunobkuhn, use loggerhead18:24
beunolaunchpad.net/loggerhead18:24
jelmerbkuhn, If you mean anonymous access to clone the bzr branch, just make sure the branch is accessible over http somehow, no special configuration required18:25
beunoah, right18:25
bkuhnjelmer: yes, perfect!18:25
beunothat's probably what he meant  :)18:25
bkuhnbeuno: loggerhead looks interesting, but I'm already working with Trac and am used to it.  I've been looking at the Trac Bzr plugin.18:26
bkuhnThanks again for all your help.  You got me up and running: http://code.softwarefreedom.org/projects/podjango/wiki/WikiStart18:45
bkuhnlater18:45
Sidneinot good. i think i messed up my repo :(18:50
Sidneiis there a way to clean up all bzr:xxx properties from an svn repo and start fresh?18:50
rockstarbeuno, do you find that much of loggerhead is overly complicated?19:16
beunorockstar, sometimes, but I guess I don't get as lost now19:17
beunoI really had a hard time at first19:17
beunoit's not so much complicated as it is a bit spread around19:17
=== thumper_laptop is now known as thumper
=== bac_lunch is now known as bac
=== mw__ is now known as mw|food
visik7hmeland: if you would help me I'm here :)20:28
lifelessjelmer: ping20:31
jelmerlifeless, pong20:31
lifelessI'm making changes to commit again20:31
lifelessI'd like to know what will work better and worse for you, from my options20:31
lifelessSidnei: I don't know, jelmer may know.20:32
lifelessjelmer: so, the change I'm starting is to stop touching all paths20:32
lifelessjelmer: and instead have an entirely delta orientated interface20:32
jelmerSidnei: the bzr: properties are used by bzr-svn20:33
jelmerlifeless: Cool20:33
lifelessjelmer: internally, xml inventory commit builders will need to touch all paths20:33
jelmerlifeless,  if the interface is designed properly, bzr-svn won't have to20:33
lifelessjelmer: I don't know what bzr-svn will need to do20:33
lifelessjelmer: the reason xml ones have to, is to set last-changed fields during merges.20:34
jelmerso that could be a nice performance improvement for large trees20:34
lifelessconceptually they don't actually touch every path, rather its delta(p1, p2) and delta(p1,p3) etc, and then for every different path do a ancestry check20:35
lifelessjelmer: would getting an iterator in the builder be better for you than having the builder called once for every altered path ?20:36
jelmerlifeless: What exactly do you mean by having an iterator in the builder?20:37
jelmerproviding an iterator with the changes to the builder?20:38
jelmerIt's easiest for me if I can discover the changed paths20:38
lifelessjelmer: builder.here_is_a_delta(tree.last_revision(), tree.iter_changes(tree.basis_tree())20:41
lifelessvs20:41
lifelessfor change in tree.iter_changes(tree.basis_tree()): builder.changed_path(change)20:42
jelmerthe first would be preferred20:43
jelmersince the order in which I have to report changes to SVN is somewhat strict20:43
lifelessso you'll have to buffer either way I guess20:44
lifelessas iter_changes can jump around20:44
mwhudsonlifeless: so what did you want to say about paste?20:56
lifelessmwhudson: s/say/know/20:56
mwhudson'talk about'20:56
lifelessmwhudson: lsprof seems to be working fine on single requests20:56
lifelessbut we miss the top of the stack because we profile a bit of middleware; and we have to exhaust the generate from the app below us20:57
lifelessif we take a single thread lock and define close, it seems to me that we could let the generator be20:57
lifelessbut what would the framework do20:58
lifelesswould it try to reenter a new request in the same thread20:58
lifelessetc20:58
lifelessetc20:58
mwhudsonpaste's httpserver is a one-thread per request with a threadpool thingy20:58
jelmerlifeless, if "delta" is not the full delta at once, I'll indeed have to buffer either way20:59
mwhudsonlifeless: so i guess you'd mess up the ability to be processing more than one request at once, but hey, cpu bound anyway21:00
lifelessjelmer: iter_changes(selected=foo) will give you foo, but then jump to bar, or in corner cases even jump to to the root21:01
lifelessjelmer: it is the full delta at once, but its an iterator not a list21:02
lifelessmwhudson: the debug middleware uses a lock21:02
jelmerlifeless: right, so that means buffering21:02
lifelessmwhudson: so its single threaded21:02
mwhudsonlifeless: i guess another fun thing is that loggerhead doesn't return a generator anyway, it calls the 'write' function returned from start_response21:05
lifelessmwhudson: uggle. Ok, I'll leave it as-is.21:06
Sidneilifeless: it was a small repo, just stomped-fixed it: svn export; svn rm; svn import21:16
=== dryahetzeph is now known as hydrapheetz
=== mw|food is now known as mw______
jelmerSidnei, if the properties are a problem, use "bzr dpush" to import the changes21:35
derekSdoes anyone have bzr installed throuhg cygwin21:42
Sidneijelmer: don't quite get what that means. the problem was that i had some ghosts and missing parents due to trying different things, so i could checkout or branch from the svn repo but trying to branch from that branch would complain about missing files or revisions21:43
jelmerSidnei, Was this with bzr-svn >= 0.4.15 ?21:44
Sidneijelmer: latest from ppa, so i guess yes21:45
jelmerSidnei, latest from PPA from a couple of hours ago?21:45
jelmerotherwise it's a much older version21:45
Sidneijelmer: about 6 hours ago i think21:46
Sidneisvn 0.4.15dev021:46
Sidnei    Support for Subversion branches21:46
jelmerSidnei, Can you be a bit more specific wrt to  the errors you were getting? What errors after which commands, etc?21:46
Sidneijelmer: let me see if i can get it back into failing, hold on21:47
markhSidnei: hi! :)21:47
Sidneihey markh !!21:47
lifelessderekS: I think that that is a 'no'21:57
derekSlifeless: i take it you are right :)21:57
Sidneijelmer: will you be around in 30?21:58
jelmerSidnei, not in 30, but probably in about an hour from now21:59
Sidneijelmer: ok. i will try to get some more info for you21:59
jelmerSidnei, cool, thanks22:00
derekSlifeless: when i try to do a push to my sftp server i get: bzr: ERROR: exceptions.IOError: [Errno 0] Error22:01
lifelessderekS: interesting; please file a bug, you can get a backtrace from the end of ~/.bzr.log22:02
derekSlifeless: let me look around a little more :) then i can file a bug AND fix it22:02
lifelessok22:04
derekSlifeless: i am wondering if it is the format of my sftp statement. I have bzr push "sftp://[user]@[domain]/[directory]"22:04
derekSthat _should_ work22:04
lifelessderekS: that looks fine22:04
derekSshould the directory be relative?22:04
derekSbecause it is relative to my home22:04
lifelessyes, thats fine22:04
lifelesserm no22:05
lifeless/~/ is relative to home22:05
derekSsame error with that :)22:05
thrope_does anywhere other than launchpad offer bazaar hosting?22:09
LarstiQthrope_: anything where you can upload files in principal22:10
thrope_LarstiQ: I mean with a nice interface for diffs etc. as well22:10
thrope_LarstiQ: anything like these nice services, github, bitbucket etc (other than launchpad)22:11
LarstiQthrope_: I'd assume so, but I don't know.22:12
LarstiQmaybe I should start one if they don't exist, hmm22:12
* LarstiQ goes to bed now though22:12
lifelesssavannah has bzr support22:22
lifelessthough they seem, odd, about actually embracing loggerhead etc22:22
mwhudsonspiv: something has gone wrong here, right? http://pastebin.ubuntu.com/73525/22:25
visik7anybody knows how to remove a file inside the bzr repo ?22:25
visik7a plugin ? I'm not able to do it using rebase ( probably I dunno how to use it)22:26
dobeybzr delete file?22:27
spivmwhudson: sure looks like it22:27
spivmwhudson: please file a bug22:27
visik7dobey: no I mean from the repository22:27
mwhudsonspiv: any chance of a fix today?22:27
mwhudson(this is blocking 1.9 getting into the next release of lp :()22:28
spivmwhudson: It's probably easy to fix, although that said the code looks correct at a glance...22:29
mwhudsonhm, i think launchpad is probably constructing permissiondenieds a bit strangely22:29
spivmwhudson: ah, hmm22:29
spivmwhudson: the code expects ('PermissionDenied', 'path', 'extra info in English') on the wire22:30
mwhudsonalso...22:30
mwhudsonmwh@grond:a$ bzr -Dhpss push bzr+ssh://localhost/hope22:30
mwhudsonbzr: ERROR: Permission denied: "None": : [Errno 13] Permission denied: '/hope'22:30
spivYou seem to be sending the last two parts reversed.22:30
spivRight.22:30
mwhudsonthat isn't striking in it's beauty22:30
spivThe serialisation and deserialisation in 1.9 seem to agree that the order should be ('PermissionDenied', path, extra).22:32
* mwhudson tries some things22:32
spivAre you sure you're constructing your PermissionDenied exception correctly?22:33
mwhudsonno22:33
visik7jelmer: where is your bzr-remove-revisons plugin ? I can't find it on your samba.org22:33
jelmervisik7, http://people.samba.org/bzr/jelmer/bzr-remove-revisions/trunk/22:34
spivmwhudson: I'm pretty sure the code in bzr is correct, so at this point I think the confusion is in your code.22:35
mwhudsonspiv: the Permission denied: "None" think is odd though22:35
mwhudson(and that doesn't require launchpad to be involved)22:35
visik7jelmer: is empty22:37
visik7jelmer: and branching from it return an error22:37
jelmervisik7, it's a bzr branch22:37
visik7oh22:37
jelmervisik7, works fine here22:37
visik7in another branch there was the log so I thought that was the same for this22:37
visik7jelmer: does remove-revision clean up my .bzr ?22:38
jelmervisik7, no, it allows you to remove explicitly mentioned revisions from your repository22:38
visik7yes, I mean: I've a huge file erroneously committed22:39
spivmwhudson: hmm, that is odd.22:39
jelmervisik7: You don't want to use it on a revision that's still part of branch history, since bzr's ghost handling has some issues atm22:39
mwhudsonspiv: where is the deserialization code?22:40
jamspiv, lifeless, poolie: Sorry I missed the standup. Today was mostly about catching back up with mail, etc after getting back home.22:40
visik7jelmer: :(22:40
spivmwhudson: bzrlib/remote.py22:40
spivmwhudson: apparently a "if len(err.error_args) >= 2" needs to be "... >= 1".22:40
* spiv goes off to find the gap in the multiple unit tests that already exist for this code path22:41
mwhudsonspiv: well, no?22:41
mwhudsondepending on what get_path() does22:41
spivmwhudson: get_path is an independent issue to the optional extra info.22:43
visik7jelmer: could you suggest me a way to remove a huge commit of files introduced at revno x and removed at revision x+7 ? the whole commit includes only the files I want to remove the are no changes at other files22:43
spivmwhudson: the server may return just a ('PermissionDenied', path), or a ('PermissionDenied', path, extra).22:43
jelmervisik7: Simply uncommit those revisions?22:43
visik7jelmer: but I'm at revizion x+8422:44
visik7revision22:44
Sidneijelmer: sent via email22:44
mwhudsonspiv: it seems that context in _translate_error is {'path': None}22:44
spivmwhudson: and the client deserialiser might ignore the path if it already knows it from the context passed to _translate_error (which should be most of the time now, except when PermissionDenied happens very unexpectedly)22:44
mwhudsonspiv: which doesn't seem rightr22:45
spivAh, so it is.  That seems to be a bug in RemoteTransport22:46
jelmerSidnei, thanks22:46
visik7jelmer: and if I run bzr uncommit -r x it will uncommit from now to x-122:46
spivRemoteTransport didn't exactly handle PermissionDenied gracefully before 1.9 either...22:46
mwhudsonspiv: yes, that's what i'm finding22:47
mwhudsonmkdir calls _call2 calls _translate_error without passing on relpath22:48
jelmervisik7, you can use rebase or replay to replay all revisions except for the problematic ones22:48
mwhudsonspiv: anyway, clearly a client problem, SEP field activated :)22:48
mwhudsonspiv: want me to file a bug though?22:49
spivmwhudson: please do, but your server is still sending crack22:49
mwhudsonspiv: not in my local copy it's not :)22:49
visik7jelmer: I'd try but I don't understand how I've tried to run this sets of commands suggested by hmeland " bzr branch -r 3 big-branch new-branch; cd big-branch; bzr rebase -r 5..7 ../new-branch; bzr rebase -r 9.. ../new-branch"22:50
jelmervisik7, I would suggest something like:22:51
jelmerbzr branch -r3 big-branch new-branchj22:51
visik7jelmer: but on the last command I get the error saing that big-bransh has no revno 922:51
jelmercd new-branch && bzr replay -r9.. ../big-branch22:51
mwhudsonspiv: https://bugs.edge.launchpad.net/bzr/+bug/29925422:53
ubottuLaunchpad bug 299254 in bzr "when RemoteTransport.mkdir raised PermissionDenied, the path is always None" [Undecided,New]22:53
spivmwhudson: thanks22:54
* spiv heads off to the dentist22:56
visik7jelmer: how could be possible that there's a confilt on a file that isn't touched in the 2 commits ?22:59
jelmervisik7, hard to say without looking at the specifics23:00
visik7mmm23:01
jelmervisik7: you'd want different revisions than in my example though if you want to exlucde just two commits23:02
visik7sure23:02
jfroy|workjelmer: I was hoping a clean checkout (with clean caches) of a svn branch I could not branch from would fix the problem, but unfortunately not. I still get a missing revision exception.23:02
jfroy|workbzr: ERROR: Revision {<user email>-20081015184449-6l6y2bc2tjkl22dg} not present in "6604@be02940b-5f7b-422b-ba6c-1eb93f4884eb:<path>".23:03
jelmerjfroy|work, also in a new repository ?23:03
jfroy|workThis occurs when I try to push the branch into a different repository, or when I try to use qbrowse from bzr-qt23:03
jfroy|workjelmer: yes, brand new everything, pretty much23:03
jelmerjfroy|work, and directly branched from svn ?23:03
jfroy|workcorrect23:03
jelmerjfroy|work, what's the full backtrace?23:04
* jfroy|work pasted http://pastie.textmate.org/31731023:07
jelmerjfroy|work, was that particular revision perhaps pushed with a bzr-svn prior to 0.4.15 ?23:08
jfroy|workPossibly23:09
* Sidnei detects a possible pattern :)23:09
visik7jelmer: but should I reply also revisions from after the introduction of big files until removed and then after the commit where I remove them ?23:10
jelmerjfroy|work, does the branch path perhaps have bzr:text-parents set but not bzr:test-revisions ?23:11
jfroy|workNo idea what those are -- I wouldn't have set those manually, in any case.23:11
jelmerjfroy|work, they should be file properties set by bzr-svn on the branch root23:12
jelmervisik7, yes23:12
jfroy|workjelmer: interesting, flushed the svn-cache directory, subversion.conf file, and made a new checkout without a repository.23:13
jfroy|worke.g. a standalone branch23:13
Sidneijelmer: that seems to be the case on my repo23:13
jfroy|workTrying to push that also failed, but the bad revision is different23:13
jelmerSidnei, and that particular revision was pushed with pre-0.4.15 bzr-svn ?23:14
jfroy|workActually no, I take that back.23:14
jfroy|workThe revision number (the number before the @) is the same, and so is the UUID (or is it a checksum?)23:14
jfroy|workThe <path> component of it is different however23:15
Sidneijelmer: 0.4.15dev0 afaict23:15
jfroy|workBut the left-hand side is different23:15
jfroy|workIt says {svn-v4:be02940b-5f7b-422b-ba6c-1eb93f4884eb:<path>:7882} instead of {<email>-20081015184449-6l6y2bc2tjkl22dg}23:16
jelmerSidnei, ah, "bzr diff" broke for you?23:18
jelmerjfroy|work, It looks like you're using bzr-svn trunk again23:18
jfroy|workjelmer: bzr:text-revisions is set to an empty string23:18
visik7I can't get rid of those commits23:18
jfroy|workjelmer: I am not, using 0.423:18
visik7I'm going mad23:18
jelmerjfroy|work, only trunk will write svn-v4:.. style commits23:18
jfroy|workThat may have been in the past23:19
jfroy|workI did make a few pushes / commits with bzr-svn trunk a month ago or so23:19
igcmorning all23:19
Sidneijelmer: bzr branch from a bzr branch broke for me23:20
jelmerHey Ian :-)23:20
jelmerjfroy|work: That's most likely the cause of this :-(23:21
jfroy|workjelmer: best option would be to wipe all bzr:* properties from the repository23:21
jfroy|work*would probably be to23:21
jelmerjfroy|work, Yeah23:22
jfroy|workBut yes, also bzr:text-parents is set, while bzr:text-revisions is empty (but present)23:22
Sidneijelmer: i *might* have checked in with 0.4.14 on that revision23:23
Sidneijelmer: but im mostly confident it was 0.4.15dev023:23
jelmerSidnei, The issue with "bzr diff" is a known bug in bzr23:24
jelmerSidnei, does that particular revision have bzr:text-parents set but not bzr:text-revisions?23:24
Sidneijelmer: yes23:24
Sidneihttp://paste.plone.org/2499923:24
rockstarabentley, is there a test class in the bzrlib test suite that will give me a branch with more than a few revisions?23:26
jelmerSidnei, so bzr:text-revisions is set but empty?23:27
Sidneijelmer: yup23:27
visik7jelmer: no way .bzr becomes huge despite reply23:28
visik7replay23:28
Sidneiwas about to say that23:28
jfroy|workjelmer: I'm seeing that too23:28
jelmervisik7: After you've run this, you need to clone the branch to get rid of any unreferenced revisions23:28
jfroy|workIf that's of any help :p23:28
visik7jelmer: oh23:28
jelmerjfroy|work, Sidnei: Thanks23:29
visik7anyway I can't understand why I get the conflict23:29
jelmervisik7, it's hard to say anything about it without looking at specifics23:30
jelmerjfroy|work, Sidnei: does either of you perhaps have an easy way to reproduce this problem?23:31
visik7jelmer: how could I do ?23:31
jfroy|workjelmer: I don't even know what the problem is :p23:31
visik7jelmer: how could I show you the repo ?23:31
Sidneijelmer: not easy no23:31
visik7jelmer: I even can't give you a branch becouse of the size of the repo23:34
jelmervisik7, well, what sort of file is ending up in a conflict? When is it changed, etc?23:38
visik7jelmer: it exists from revision 1 and wasn't change until the conflict23:39
jelmerSidnei, this particular file (models.py), what happened to it during that particular revision? was it changed in some way, merged from another location?23:40
Sidneijelmer: i believe i did a reverse merge to revert it to a previous revision23:41
visik7jelmer: and the conflict edit the source like that : http://dpaste.com/91601/23:45
visik7jelmer: and the diff of the revision that produce the confilct is: http://dpaste.com/91602/23:46
jelmervisik7, and the revisions you're skipping don't touch *any* of the other files in any way ?23:47
jelmer(bzr log -v on those revisions shows *only* those files?)23:48
visik7jelmer: let me check for the 4th time :)23:49
visik7I was using diff , log -v is much better23:49
visik7yes there is a modification23:49
visik7any way to import it ?23:49
jelmervisik7, only manually23:50
visik7:\23:50
visik7so23:50
jelmer(this particular modification, that is)23:51
jelmerafter you've applied that modification manually on top of r3, you should be able to replay the rest23:51
visik7so I make a commit before the reply from X+1 Y-1 ?23:51
jelmeryes23:51
visik7ok23:51
visik7I try23:52
jelmerif not, you should be able to resolve the conflict manually and run "bzr rebase-continue". Hopefully there aren't too many conflicts23:54

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