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

pooliehello00:04
mwhudsonjam: i'm not sure i understand00:13
lifelessmwhudson: this is for stacking?00:24
mwhudsonlifeless: yeah00:29
mwhudsoni guess i could only change BranchFormat7.open00:34
mwhudsonand do most of what bzrdir.open_branch does myself00:35
=== arjenAU2 is now known as arjenAU
mwhudsonlifeless: i replied to your mail00:52
lifelessmwhudson: a hook to alter is less disruptive than a signature change which will propogate many levels deep01:05
mwhudsonindeed01:06
lifelessbut conceptually01:07
lifelessif you change open I'd rather see a 'transform_fallback' parameter rather than disable/enable01:07
lifelesswith the transform being required to return a url when given a url01:07
mwhudsonfair enough01:08
mwhudsonchanging open appears to be a can of worms though01:08
mwhudsonso i'm going to give a hook a go01:08
mwhudsonlifeless: what do you think the hook should do?01:09
lifelessthat is, you can't disable stacking, but you can change the pointer01:09
mwhudsontake a url, give a url, or take a url, give a repository, or ... ?01:09
lifelessyou need something that takes a url beca use you want to get there before url connection is attempted01:11
mwhudsonindeed01:11
lifelessI think its easier to allow url->url01:11
lifelessbecause then these transforms can stack01:11
mwhudsonpoint01:11
mwhudsonlifeless: something roughly like this? http://pastebin.ubuntu.com/55463/01:17
pooliemwhudson: so will it be acceptable to you that if you can't open the stacked-on branch at all, then you can't deal with the stacked branch at all?01:18
mwhudsonpoolie: yes, i think so01:19
mwhudson(i mean, i _guess_ you could just return the url of an empty branch backed on to a memorytransport as from the hook if you really wanted to be evil)01:19
poolieso i think that means launchpad can't do anything with branches that are stacked on locations not on launchpad?01:19
pooliei don't think that'd be a good idea01:20
mwhudsonif launchpad can't open the branch, what can you do?01:20
mwhudsonpoolie: if people do 'bzr push lp:whatever --stacked-on http://somerandomhost.com/trunk i think it's ok *for now* for this to not work01:21
poolieok01:21
* jml agrees with mwh01:21
pooliei think that's fine, and it's good to be clear about ti01:22
poolieit801:22
poolieit**01:22
lifelessmwhudson: s/should/must/01:22
mwhudsonlifeless: right01:22
lifelessalso please check None is not returned or something like that01:22
mwhudsonlifeless: makes sense01:23
pooliemwhudson: re that hook, it seems like you should perhaps pass the stacked branch url too01:23
mwhudsonpoolie: yes, probably01:23
mwhudsonpoolie: or the stacked branch itself, maybe01:23
pooliemwhudson: there's also external documentation of hooks that should be updated01:23
pooliemaybe, probably, though it deserves a warning that it's half-baked01:24
mwhudsoncertainly01:24
ferringbcurious... anyone looked at long term memory usage of bzr/api consumers?01:47
ferringbnoticed an annoying trend of loggerhead/trac-bzr both developing heavy leaks, wondering if others have seen it for alternative apps01:47
Odd_Blokeferringb: I suspect those are the only long-running consumers that we have.01:51
Odd_BlokeThough I don't know how the Eclipse plugin does it, and there is 'bzr shell' in bzrtools.01:51
lifelessferringb: its likely python memory fragmentation, though it could be a genuine leak01:53
lifelessferringb: I suspect bzr itself isn't leaking, based on previous tests01:54
ferringblifeless: I doubt it's memory fragmentation02:03
ferringbactually I know it's not02:03
ferringbhave at least one reproducible ~18/20MB leak02:04
ferringbif it were fragmentation, it would level off at some point (very least the growth wouldn't stay linear)02:04
lifelessferringb: ok02:04
ferringbeither way, setting up to heappy it, just wondering if anyone else has seen odd behaviour02:04
lifelessloggerhead on launchpad has trouble from time to time02:05
lifelessmuch better since the big overhaul02:05
ferringbyeah, upgraded recently, been happy w/ the results for the most part02:05
ferringblifeless: curious, launchpad allow the misc cralwers to scrape loggerhead pages?02:05
lifelessI think its blocked02:07
lifelessback soon, doofing02:07
spivThere's the utf8 cache in bzrlib.cache_utf8 that bzrlib.osutils.safe_revision_id uses, if an unbounded number of revision IDs get seen by the process that would grow without bound...02:07
ferringbspiv: rough size of utf8 cache entries?02:09
spiv# of revisions * (length of an average revision id + 40 bytes)02:12
spiv(where 40 bytes is a guesstimate of the size of the overhead of a PyString object plus keeping a dict entry or two)02:12
spivHmm, maybe length of a revision id * 2, because I guess the cache keeps the unicode and the str version.02:13
spivBasically, 20MB would be a pretty huge number of entries in that cache!02:13
mwhudsonlifeless, poolie: i just sent a bundle to the list02:18
mwhudsonwith an inappropriate subject, wahoo02:19
* mwhudson resends02:20
jamspiv: by my math with your numbers, it only takes 67K revisions to hit 20MB02:21
spivjam: Well, that's not so impossible.  But if one process is repeatedly leaking 20MB at a time, that still adds up pretty quickly to an unusually huge number of revisions.02:23
lifelesspaths too02:23
markhpoolie: ?02:25
lifelessjam: your abbreviations are unclear to me02:27
lifelessjam: I didn't reply to your first mail about readahead in btree indices because I read your mail as saying you weren't done02:27
jamI'm not, I was asking for comments, though02:27
pooliemarkh: hi02:28
lifelessjam: "seems worth investigating"02:28
lifelessjam: though, please consider with gc repositories02:28
markhpoolie: hi.  Can you think of an example of some "doctest-ish mappings" I could use as a kindof "template"?02:28
lifelessjam: which for text reconstruction, have a radically different read pattern02:28
jamlast I tried gc, performance was pretty abysmal02:28
jamat least for the 'fetch' case02:29
lifelessjam: yes, and we know why :P02:29
jamand it would have the same structure for "log"02:29
jamsince those aren't compressed anyway02:29
lifelessyes02:29
markhI'm not sure what they would look like exactly.  I would have thought normal unittests that use the api would be easier?02:29
markh(but I've never quite drank the doctest kool-aid :)02:30
lifelessdoctest--02:30
markh"doctest == testable documentation" in my book, and its not clear that is what we are doing02:31
markhbut - I'm not trying to argue the merits of that, but if doctests are desired a template would help alot.02:31
lifelessmarkh: whats the context here btw?02:31
markhcase sensitivity02:32
lifelessblackbox tests?02:32
markhthat's what I would have thought.  Poolie suggested "  Maybe a good place to begin would be with a kind of doctest-ish description of what mappings are meant to occur and where."02:32
lifelessmarkh: I would translate that as write some docs about the problem02:33
pooliewrite some docs that have quoted fragments of code02:33
lifelessmarkh: but yeah, I think chat to poolie at this point02:33
pooliei don't mean that they should necessarily be executable, because doctest other than as testable documentation has some drawbacks02:34
pooliedid you read alexander's wiki page?02:34
markhmaybe "black-box doctests"?  ie, quote shell commands using bzr rather than code?02:35
markhI read the wiki page after sending my initial mail.  Its fairly good but a little light on specifics.02:35
markhIt also fails to address that windows isn't truly case-insentitive generally - its closer to "case retaining"02:35
lifelesscase preserving case insensitive is the usual description02:36
markhie, the case of the filename is retained, but any case can be used to access it.02:36
markhright - and the wiki doesn't make that distinction.02:36
poolieso i made that (perhaps too vague) suggestion because i think we need to converge from the somewhat general document on the one hand with actual code on the other02:36
markheg, FAT truly is case-insensitive IIUC02:36
pooliebut i don't know if people genuinely agree where those tests should go02:37
lifelessmarkh: VFAT isn't, and real FAT can store arbitrary bytes, its up the fs layer on top :P02:37
markhlifeless: OK - the FAT FS layer on windows is truly case insensitive IIUC :)02:37
RAOFVFAT is awesomely the worst of both worlds.  You can have both File1 and file1 in the same directory, but windows will only see one. :)02:37
lifelessmarkh: I'm pretty sure that if you put a FAT fs into current windows, it treats it as VFAT just for kicks02:38
markhpoolie: so a reasonable first step would be docs that demonstrate the problem and identify the preferred solution, but doesn't actually identify code that might need changing?02:38
markhthose docs could then be turned into regular black-box tests and then the impl can be determined?02:39
poolieright02:40
markhok cool, thanks.02:41
pooliei think they could possibly actually be run as doctests02:41
poolietreating them as "this is a testable document of how we're generally handling case sensitivity"02:41
lifelessI'd be strongly tempted to just write blackbox tests for specific commands02:41
markhmaybe, but I fear the doctests then get pollued with 'open('foo').close() etc to actually setup the test trees etc, but I haven't looked any many of the existing doctests yet.02:42
lifelessdoctests are viciously harsh to work with when you need filesystem support02:42
lifelessyou can spend days just getting things to work right02:42
markhyeah02:42
poolieright02:42
lifelessby strongly tempted, I actually mean, you couldn't pay me to write this sort of thing as a doctest02:43
poolieso, to be clear, i'm suggesting a document that has some code or command examples, even if they're not actually executable02:43
pooliea pseudocode doctest02:43
pooliedon't worry, you couldn't pay me enough to have me try to make you do it :)02:43
lifeless:P02:43
jelmerhmm, 1.8.1 removes MutableTree.get_file_with_stat() ?02:46
jelmers/1.8.1/1.8rc1/02:46
pooliejelmer, really, i thought it was added?02:47
jelmerI must be too tired to read the traceback right02:48
jelmeryeah, never mind me02:48
lifelessjelmer: thats new, part of commit race closing02:48
jelmerbzr-rebase doesn't provide MapTree.get_file_with_stat() yet02:48
lifelessthats more likely :)02:49
mwhudsonspiv: seen https://bugs.edge.launchpad.net/bzr/+bug/278673 ?02:49
ubottuLaunchpad bug 278673 in launchpad-bazaar "Traceback when uploading to an invalid location" [Undecided,Triaged]02:49
jelmerI'll fix it tomorrow when I'm actually awake...02:50
mwhudsonspiv: i have the feeling it might be fixed in bzr.dev by now02:50
jelmerg'night02:50
spivmwhudson: Actually, I suspect it isn't02:52
mwhudsonspiv: slacker02:53
mwhudson:)02:53
spivNope, I don't think it is.02:53
ferringbspiv: not a process as much as a request via trac-bzr03:16
ferringbspiv: reasonably sure trac-bzr in general has it's own issues, but either way tracing it (finally got my hijacker working again)03:16
jmlI'm doing a merge and getting a contents conflict on a file03:37
jmlthing is, the file doesn't exist in the branch being merged into.03:37
jmlwhat's the deal?\03:38
lifelessjml: it used to exist03:38
lifelessjml: left side change -> delete03:39
lifelessjml: right side change -> modify03:39
jmllifeless: thanks.03:39
spivlifeless: can we turn you into a "bzr explain-conflict" plugin? :)03:39
lifelessspiv: no03:40
lifelessspiv: but you can patch the conflict system to explain itself more03:40
jmllifeless: if I try to get the log for the path, I get: bzr: ERROR: Path does not have any revision history03:42
jmllifeless: AIUI, this conflicts with your theory.03:44
* spiv -> lunch03:47
* jml is perplexed03:48
lifelessjml: deep history is not checked04:07
lifelessjml: try ls -r ancestor:other-branch04:08
jmllifeless: it's in the list.04:09
jmllifeless: but that doesn't help me learn why it was deleted.04:09
lifelesslog -v might04:10
lifelessor log -m '\bbasename\b'04:10
=== jamesh_ is now known as jamesh
jmllifeless: by 'basename', you mean os.path.basename(), right?04:12
jmlno results.04:12
lifelessshame, they didn't mention the file while commiting its delete04:16
lifelessjml: log -v is probably the key04:18
lifelessjml: one possible thing is 'rm foo; add foo; commit;04:19
jmllifeless: log -v doesn't give any results either.04:19
lifelessjml: the file is in the branch?04:19
jmllifeless: no.04:20
lifelessjml: is it in trunk ?04:20
jmllifeless: yes.04:20
jmllifeless: merging trunk into the branch raises the conflict.04:20
lifelessand log -v in the branch doesn't show it being deleted anywhere ?04:20
jmllifeless: that's right. 'bzr log -v path/to/file' says bzr: ERROR: Path does not have any revision history04:21
lifelessthat command is useless for this04:21
lifelessI mean literally 'log -v'04:21
lifelesslog PATH needs PATH to be in the WT, or *the last commit* only.04:21
lifeless2-commits back and the path won't be found04:21
mwhudsoncan i get someone to look at http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C48ED5C67.9020408%40canonical.com%3E please?04:24
jmllifeless: ok, so log -v and grep?04:24
lifelessjml: yes04:24
* jml tries04:24
lifelessjml: btw I would have said 'log FILE' if that was what I meant :)04:24
pooliemwhudson: i'll look04:25
mwhudsonpoolie: thanks04:25
pooliei set up an rdesktop-accessible windows vm for testing and packgaing04:26
pooliemwhudson: +104:26
mwhudsonpoolie: thanks04:27
jmllifeless: is there some way I can do this without generating the log for the entire history of this branch?04:28
lifelessjml: -r -1..ancestor:otherbranch04:28
lifelessjml: but it will take just as long04:28
lifelessjml: so don't interrupt what you are doing04:28
jmllifeless: ok.04:30
lifelessjml: (log incrementally generates output, so the time-to-find-first-reference is identical)04:31
jmllifeless: incidentally, I think Bazaar could handle this use case better.04:31
lifelessindeed04:31
lifelessI'd like bzr search to index changes better04:31
lifelessand the inventory work I'm doing at the moment should help too04:31
jmllifeless: would that make 'bzr log removed_file' do something?04:32
lifelessjml: no more than it does today04:32
jml:(04:32
lifelessjml: searching all the way to the dawn of time is what it doesn't do today04:32
lifelessjml: and its hard to justify that it should do that by default, because that will always be somewhat expensive04:33
lifelessjml: however, a search index could do it fast04:33
jmllifeless: I'd settle for 'bzr log --deleted FILE' or similar04:33
lifelessand if the search tech advances sufficiently we can make it be part of core04:33
jmlor something that gave me the revno of when it was deleted.04:34
jmllearning why a file was deleted seems to be a good thing for a version control to help you do.04:37
lifelesssure04:41
=== abadger19991 is now known as abadger1999
spivabentley: shelf 2 sounds very cool05:40
abentleyspiv: Thanks.05:40
lifelessabentley: hi05:41
pooliejam: thanks for the ppa packaging updates and documentation!05:42
abentleylifeless: Hi.05:42
lifelessabentley: got time to chat about your new tree method?05:42
pooliei have some queries but i guess you may be gone05:42
abentleylifeless: A bit.  Gotta be up early for a chat with sabdfl.05:42
lifelessabentley: ok. well basically I feel like its making things vis-a-vis inventory less clear, without actually reducing inventory usage; I'd rather see things just using inventory directly than via that method. But - I have context for what drove it etc, and I'd like to understand those reasons.05:43
lifelesss/have context/have no context/05:44
abentleylifeless: We haven't officially deprecated inventory, but I hope we'll be able to.05:44
abentleylifeless: PreviewTree doesn't have one, because I thought it would be a good way to push that process along.05:45
abentleylifeless: It's somewhat a cheat to get the InventoryEntry without having an Inventory.05:46
lifelessabentley: right, thats why I think its less clear, without being better in any other way05:46
abentleylifeless: It's better in that I don't have to implement PreviewTree.inventory05:47
abentleylifeless: We talked about this on the list in just the past week.05:47
abentleylifeless: jam was especially in favour of it.05:47
lifelessok05:48
lifelessdo you remember the thread name? I should read it and reply I guess05:48
lifelessshelf2 sounds nice05:48
lifelessand I do want you to get this patch in05:48
lifelessalso05:48
lifelesswoo05:48
lifelessall tests passsing on my split inv format05:48
abentleylifeless: great stuff.05:49
abentleylifeless: Thread was: [MERGE] Enable merging into PreviewTree05:49
abentleylifeless: The other way I can avoid implementing PreviewTree.inventory is to use Tree.iter_entries_by_dir to get single entries.05:50
abentleylifeless: Would you prefer that?  poolie's distaste with that pattern inspired this patch.05:50
lifelesslet me read that thread; at this point I would say implementing a trivial inventory subclass (you only need to override __getitem__ and __iter__ probably) is likely clearer and not much more code05:52
abentleylifeless: Okay, catch you later.05:55
lifelessabentley: I'll reply to the older thread05:56
lifelesspoolie: want a chat?06:39
poolielifeless: yes, but this time i'm really playing squash at 506:39
lifeless:P06:39
lifelesssure whenever then06:40
pooliemarkh: if you're still here, are there any docs on building windows installers/packages?06:40
lifelessgrab me tomorrow morning if you like06:40
poolienow's fine, at least briefly06:40
markhpoolie: in general its usually "setup.py install"06:40
pooliethat's all?06:40
lifelesspoolie: ok ringing asap06:40
markhthat's the theory :)  You will need the appropriate MS compiler installed, but you don't even need to make sure its in your environment06:41
markhpoolie: some packages have extra requirements - eg, bzr-svn needs the apache runtime libs installed somewhere and env vars set to point at it - but setup.py documents that06:44
markh(not to mention the svn libs themselves :)06:45
WyvernySo, I have a basic question. And I can't find the answer around the interwebs. What's the difference between init and init-repo. What's their interaction when both of them are used?06:50
markhWyverny: try 'bzr help repositories'06:51
WyvernyI have that open.06:51
markh"By default just running 'bzr init' will create a repository within the new branch but it is possible to create a shared repository which allows multiple branches to share their information in the same location. When a new branch is created it will first look to see if there is a containing shared repository it can use."06:51
markh"To create a shared repository use the init-repository command"06:52
markhso usually you would create a shared repo in /src/myproject, then use 'bzr init' to create branches *under* /src/myproject06:53
markhall the branches would then share the same repo06:53
WyvernyI see. I get it. Thanks. I knew it was something simple.06:54
WyvernyCan there be only a single .bzrignore? Or can I have one per branch?06:59
bob2it is only per-branch06:59
bob2(as a file in the root of each branch)06:59
WyvernyOh, great.07:00
WyvernySimple questions, simple answers. I'd buy you guys a beer if you were around ;)07:02
markhin an hour I'll have one for you anyway ;)07:04
vilahi all07:05
Mezhey, I want to setup my own system so that I can have multiple devvies access a bzr repo for push, but want to secure it...07:57
MezI don't want to have to setup SSH account for them, and dont want anything that encroaches my security on my system...07:57
Mezany ideas? (I'm looking for something similar to how svn does users over HTTP preferably)07:57
jmlMez: afaik, ssh or ftp are your only options.07:58
Mezwhich means setting up new user accounts :907:59
jmlMez: you can restrict it so that the devs don't get shells on your computer07:59
Mezjml, I know that... but I don't want to have more UNIX accounts that I have to manage and secure08:00
jmlMez: *nod*08:00
jmlMez: although, as a non-sysadmin I'm curious, why do you think that UNIX accounts are more difficult to manage than htpasswd and authz files?08:01
Mezbecause they're covered in my audits ;)08:01
jmlMez: ah hah.08:02
lifelessciao08:02
jmllifeless: cya08:03
jmlMez: so, if this is an open source project, you can host the branches on Launchpad for free.08:03
jmlMez: but I am filing a bug *right now* about this :)08:03
Mezjml, yeah, it is, but I don't want to push it out to public till it's code-ready at the moment08:03
Mezjml, feel free to subscribe my nick to tbe bug08:04
jmlMez: done.08:05
jmlMez: incidentally, are you aware of Launchpad's +junk feature? I often push branches to ~jml/+junk/whatever when I don't feel they are ready for public consumption.08:06
jml(I understand there are different levels of "not read")08:07
jmlready, rather.08:07
spivMez: FWIW, there are SSH/SFTP servers that don't use UNIX accounts.  They're not necessarily easy to setup, though...08:09
Mezspiv, exactly08:10
Mezspiv, names?08:12
spivMez: Some assembly required (i.e. hacking), but you can build such things with Twisted Conch.  You could probably do it with paramiko too.08:13
spivI wouldn't be surprised if there are others, although I've never looked.08:13
spiv(I know it's possible with Twisted, because I've done so... that code is now part of what runs bazaar.launchpad.net)08:14
Mezspiv, i'm not really that good with python08:17
spivMez: "just use +junk branches on Launchpad" is a pretty good answer for branches of experimental open source projects, though.08:18
spivI guess I understated when I said "not necessarily easy to setup" :)08:18
Mezspiv, release a user friendly version of the code for bazaar.launchpad.net ;)08:18
jmlMez: working on it.08:19
Mezjml, ?08:19
jmlMez: Launchpad is scheduled to be open sourced in the next year.08:20
Mezyeah, yeah, I know08:20
jml(spiv originally wrote bazaar.launchpad.net, but I've been maintaining it for the last couple of years)08:21
jmlanyway, it's time for me to leave the computer and enjoy the sunlight.08:22
spivjml: good plan08:23
spivHooray, I have usertest reliably running multiple runs of its 'network' suite, including starting & stopping a bzr server.  (And as a bonus, using --strict.)08:24
* spiv runs it with a simulated 500ms latency loopback network device on bzr.dev and 1.7.108:25
Mezspiv, could coh not be used to have br serve work as an ssh server which has a file in the branch that lists the people with access's h keys (like an authorized keys)08:37
Odd_BlokeFor today's controversial and incorrect suggestion: Dropping support for Python 2.5 :D09:01
pooliehello09:05
pooliehey spiv, well done!09:05
poolieMez: that would be nice09:05
poolienot so hard to do, as we already have an ssh server used in testing09:06
Mezpoolie, Id write it if I knew how09:07
poolieif you'd like to try we can help you09:08
Mezhaha, I can probably get it to the point where it makes a server, and authenticates, but getting it to interact with bzr is the hard part09:08
poolieso StubSSHServer in tests/blackbox/test_serve.py is probably close to what we need...09:09
Mezargh09:10
MezIm not even going to TRY and do a branch on here09:10
* Mez wonders if the eeePC would be able to cope and decides to do a lightweight CO instead09:11
Mezpoolie, actually, yeah, it could probably work from that09:16
Mezpoolie... if i could send you this as a script that took a couple of arguments, would you guys be able to integrate it somehow?09:19
pooliewell, send through or post to the pastebin what you come up with, and w'll try to help09:23
spivMez: I would like "bzr serve" to be able to run a simple SSH daemon, I think that would be neat.09:51
spivMez: if you make any progress towards that, please do post it here or send it to the mailing list09:52
spivpoolie: http://rafb.net/p/flZlui28.html is the summary report with 500ms latency and the 'network' test suite from usertest trunk09:53
spivpoolie: no surprises (mostly the same, bzr.dev a little bit better in a few cases).09:54
spivpoolie: oh, and those are the results from running on a bzr.dev repo.09:54
* spiv -> dinner09:55
pooliei wonder why the AddTasks ones were so much slower?09:55
pooliewell done though, that's great09:55
poolieis the patch up for review?09:55
Mezspiv, but wouldnt that cause issues for people using it in its current state?10:05
poolieMez: presumably it would listen for ssh on a different port10:06
Mezaswell...10:06
Mez(as the current functionality of bzr serve)10:06
jmlMez: there's already talk of having bzr serve --http run a webserver, making the command more of a swiss army knife10:08
Mezah, kk10:08
MezJOAT functionality ;)10:09
Mezbzr serve uses the I/O of the socket right, so, if i wired that up to have SSH auth on the front end, then I could hopefully, just pass the stream into that, and make a new protocol name that makes bzr auth with SSH first, and then use the "normal" protocol... right?10:12
poolieright10:13
Mezyay :D makes life sooooo much easier then10:13
poolieit may be easiest to have the serve process spawn off a subprocess connected up over pipes10:13
Mezargh, confusing, but i think I know what you mean10:14
Mezbut to be fair, doing it that way means I shouldnt have to do too much "fake ssh" and it'd work nicely10:14
Mez(can use relative paths!)10:14
james_whey Mez10:15
Mezhey james_w :D how're things/10:16
james_wgood thanks, you?10:16
Meztired10:16
Mezshould be asleep by now ;)10:16
Mezbut i always stay awake on my days off ;)10:17
Mezpoolie, though I doubt you'd be happy with me pulling in conch as a dependency ?10:21
poolieuse paramiko, we already depend on it10:21
* Mez doesnt know how to do it with paramiko though :010:22
Mezmore learning :-010:23
Mezgonna sleep, will look at it later10:36
spivpoolie: Not sure why AddTask is slower, judging from http://benchmark.bazaar-vcs.org/usertest/log/usertest.log it's probably just noise.10:59
=== mark1 is now known as markh
pooliethanks spivvo11:45
poolienight11:45
Odd_Blokeabentley: Shelf 2 sounds really cool. :)  I've been wanting a git-gui-esque tool for commits, and this should make it much easier.12:39
intellectronicahya. i'm getting the following error when trying to push to a (stacked) branch on LP:12:45
intellectronicabzr: ERROR: Must end write group before releasing write lock on KnitPackRepository('bzr+ssh://intellectronica@bazaar.launchpad.net/%7Eintellectronica/launchpad/me-too-ui-updates/.bzr/repository/')12:45
intellectronicaany idea what this might be?12:45
intellectronicaabentley: ^^^12:46
spivintellectronica: I have a patch to fix that bug12:49
intellectronicaspiv: is that something that i can apply locally, or something that would need to happen on the server?12:49
spivintellectronica: https://bugs.edge.launchpad.net/bzr/+bug/230902, http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C20081008054310.GC19754%40steerpike.home.puzzling.org%3E12:50
ubottuLaunchpad bug 230902 in launchpad-bazaar "BzrError: Must end write group before releasing write lock on KnitPackRepository" [Undecided,Confirmed]12:50
spivintellectronica: local12:50
spivintellectronica: note that fixing that bug won't make things work, exactly.  It'll just let us see what the real underlying error is, rather than this secondary error.12:50
intellectronicaspiv: ok, i'll give it a try. thanks!12:51
spivintellectronica: My guess is you'll see an error like the one stub reported in the comments of that bug (i.e. what he saw after applying my fix)12:51
spivintellectronica: If so, I don't have any insight into that, but following up with abentley and/or filing a bzr bug would be appropriate.12:52
intellectronicab.t.w this only happens if i try to push to the existing branch. pushing to a new branch in the same repository works fine12:53
spivintellectronica: a -Dhpss trace *might* give a hint12:53
* spiv -> bed12:54
spivintellectronica: I'd love to hear how it goes, though.12:54
intellectronicaspiv: sure, i'll update when i have more info12:54
intellectronicagood night12:54
spivintellectronica: thanks!12:54
Jc2klifeless: awake :-\?12:56
idnarhttp://code.mumak.net/2008/10/more-bzr-hacking.html --- what are "working trees"?13:02
abentleyintellectronica: It's worth noting that initial push and subsequent pushes use quite different code paths.13:04
spividnar: what SVN calls the working copy, basically.  i.e. files on disk that you can look at, edit, and run commands like "commit" and "revert" on.13:04
intellectronicaabentley: i don't know if this is relevant. i pushed to that branch many times. the last time just a few minutes before it stopped working13:05
abentleyWith that patch applied, the real error won't be masked, and we'll have more hope of solving it.13:05
spivintellectronica, abentley: random sleepy thought: maybe autopacking in a stacked repo does something funny?13:05
* spiv -> really sleep!13:05
abentleyspiv: Does autopacking in general still do something funny?13:06
spiv(if autopacking is occuring, the .bzr.log will say so)13:06
idnarspiv: how does that differ from a bound branch?13:06
abentleyI know jam had a patch for that.13:06
abentleyidnar: They're completely different concepts.  A bound branch does not necessarily have any files that you can edit, commit, etc.13:07
idnarI guess I'm just confused about terminology13:08
abentleyA working tree is just the collection of files that that you can edit, commit, etc.  It may be in the same place as your branch.  It may be in a different place.13:09
idnarokay13:09
idnarand how do "repositories" work?13:10
idnarman13:15
idnarmaybe it would be easier if I forgot everything I thought I already knew about bzr and started again13:15
idnarI'm reading some docs now, and nothing seems familiar :P13:15
awilkinsidnar: I've admined SVN repos for years, and it took me a few days to get a handle on DVCS14:17
idnarawilkins: I'm familiar with half a dozen DVCS tools, and I use them on a regular basis14:18
idnarit's just that bzr has changed so much since I last used it14:19
awilkinsAh, yes, the pace doth quicken most fleetly14:19
awilkinsI started around 0.9, I think it's jsut got better rather than scarier since then :-)14:19
idnarlast time I used bzr, it didn't even work at all on win32 due to assumptions about path delimiters14:20
awilkinsSince about 1.6 it's even been quite nippy on windows14:20
awilkinsAlthough it still makes you green when you bzr st the same tree on Linux and get the rsponse back in less than a second14:20
awilkinsOTOH, Mercurial still doesn't work for my project on windows because of the escaping-caps-with-underscores-in-long-paths thing14:27
idnarI'm a darcs user most of the time14:27
awilkinsI tend to stick with things that work well on win32, alas.14:28
awilkinsDoes darcs?14:28
idnarI haven't run into any issues14:28
idnarit can be a bit tricky to get ssh working, but that's not really darcs's fault14:29
awilkinsI've had success with bzr+ssh on windows14:29
awilkinsAlso with bzr+http over IIS14:29
awilkinsYou're right about SSH being a PITA though14:29
idnaranyhow, to be candid, I prefer hg to bzr in situations where darcs isn't appropriate14:30
idnarbut then, bzr has launchpad integration14:31
awilkinsFair enough ; I never used it long enough to try it for the aforementioned reason14:31
idnarwhich is cheating, but it's pretty darn convenient14:31
awilkinsI had a project that needed good, easy merges14:31
idnarand of course, there are plenty of projects where I don't get to choose the VCS tool14:31
awilkinsSVN wouldn't cut it, and was too slow14:31
idnarso I need to know how to use pretty much everything :P14:31
awilkinsHg I tried next, but epic fail oin long paths with lots of caps in14:32
idnarhonestly, part of my preference for hg is probably just that my mental image of bzr is still circa 0.6 or whatever where everything sucked14:32
Peng_There's work on long paths in hg.14:32
awilkinsgit was too immature at the time (on win32)14:32
idnar(like, horrifically awful network performance)14:32
awilkinsAnd still is, IMHO14:32
awilkins(git, immature on win32, that is)14:33
idnarman, git14:33
awilkinsI have no opinion on the horrible network performance of bzr14:33
idnarI didn't think it would be possible to come up with a more confusing tool than tla14:33
idnarand then I tried git out14:33
idnarbzr's network performance got fixed ages ago14:33
Arjenidnar: When was that?14:33
awilkinsMy main problem with bzr and network performance is unrelated to the network protocols ; it's more to do with it considering network shares on Windows to be local filesystems14:33
idnaruhm, 0.7? 0.8? something like that, I think14:34
Peng_...Bzr's network performance used to be horrific, and now it's fast? It's still pretty bad, so wow, it must've been *terrible*.14:34
awilkinsMy problem is that unpacking is probably faster than, copying files over an SMB share on a VPN14:34
idnarwell, I checked in about 100MB of repository14:34
idnarthen I checked in a one-line change to a single file14:34
idnarand pushed that over the network14:34
awilkinsbut bzr will copy files if it can.. regardless of network speed, if you are using filesystem urls14:35
idnarand watched bzr transfer something like 200MB of data before it completed14:35
fullermdOh, it was.  Weave-era network access was unbelievably painful.14:35
idnarthat was one of the reasons I gave up on bzr at the time14:35
Peng_Hahaha, that's awesome.14:35
idnarso I dunno if it's great now or whatever14:35
fullermdIt's still not overly pleasant, but at least now it's "Jeez, that's slow" rather than "Hey, where'd T Rex go?"14:36
idnarbut I haven't run into any "okay, this is just impossible" situations yet14:36
awilkinsAnd it still knocks the likes of SVN out of the parlk14:36
awilkins*park14:36
idnarI probalby need to sit down and do an in-depth side-by-side comparison of hg and bzr, just to get rid of my flawed mental image of bzr14:37
awilkinsSVN over DAV is painful in it's own special way14:37
idnarSVN is really awful for me, because most SVN repositories are on the other side of a 400ms latency link for me14:37
idnarso any DVCS basically wins automatically14:38
idnarbecause I can commit locally etc.14:38
Arjenidnar: wait, you mean git 0.8?14:41
idnarArjen: no, bzr14:42
idnarI guess you were asking about git, not bzr14:42
ArjenI was14:42
idnargit hasn't ever really changed in the "oh my god complicated" department14:43
idnaras far as I can tell14:43
ArjenNot even in 1.5 and 1.6?14:43
idnardid they remove commands in 1.5 and 1.6? :P14:44
ArjenALl the low-level commands where moved to a separate directory, out of your PATH14:44
awilkinsYou could technically add a bzr-stylee porcelain to git, I suppose14:44
idnaranyhow, it still takes me half an hour just to figure out how to fetch a copy of a project's source code from git14:44
Peng_"git clone"?14:45
ArjenIndeed14:45
Peng_I have no idea what to do after that to pull new changes or branch or commit or anything, but I do know "clone".14:45
idnarwhen it works, it's fine14:45
* Peng_ doesn't use git much14:45
idnarbut when you get an error message, it's nearly impossible to tell what you did wrong14:45
ArjenPeng_: git branch, git fetch, git merge14:45
Arjenidnar: True, in a number of cases14:46
idnarif I was familiar with git concepts in-depth, I'd probably have no problems interpreting the error message14:46
ArjenI've been playing with bzr lately, but I can't seem to do basic stuff.  Like, getting it to tell me when a file was deleted, even if I know the file-id14:47
idnarbut I don't, so all I know is that the URL someone gave me isn't something I can "git clone", with no idea of what to do next14:47
ArjenOr basic grepping in the source at a revision14:47
awilkinsArjen: The "when did my file get deleted" one is tricky at the moment because of the way inventories are stored14:48
awilkinsArjen: You have to compare inventories from each revision to work it out.14:49
Arjenawilkins: then 'git log --diff-filter=D -- $file' is a viable alternative ;-)14:49
awilkinsDelta-storage for inventories would probably make that work a lot easier - anyone working on that?14:49
LarstiQehm14:50
LarstiQawilkins: I'm reasonably sure that is the case14:50
LarstiQawilkins: and what Arjen mentioned would work the same way?14:50
awilkinsLarstiQ: That it's being worked on or that it already so? I was working under the impression that each revision stores the inventory in-toto14:51
awilkinsI think the point is that you cant tell when a file is deleted from doing a log on just the file because it's deletion is not one of the log entries it participates in14:51
awilkinsIt just one day isn't there... rather than an entry which explicitly says "delete this file-id"14:52
LarstiQawilkins: afaik it's inventory deltas for ages14:52
awilkinsLarstiQ: Is it "we store the inventory" and that's delta compressed, or "we store what changed in the inventory for each revision" ?14:53
LarstiQawilkins: but regardless of storage, doing the same operation as git log --diff-filter=D should be possible right now14:53
LarstiQawilkins: I don't really see a big difference between the two14:54
awilkinsIt's been asked in here more than once and I've not seen a quick, concise way of doing it that didn't involve running the whole log14:54
awilkinsLarstiQ: The former has no way of telling when the file was deleted just from reading inventories containing the file-id14:54
awilkinsLarstiQ: You also then have to check all the children of inventories with that file-id to see if it becomes absent14:55
awilkinsLarstiQ: Which is not very nice to have to index14:55
LarstiQawilkins: right, but I'm under the impression the git log does it brute force as well14:55
ArjenIt does14:55
awilkinsI have no idea, but it seems a waste both way14:55
awilkinsAnd i've yet to see a cheap and easy way of finding deletion revisions for a single file in bzr14:56
awilkinsAn inventory entry that said "deleted this file" would probably help a lot14:57
Arjenrenames should be easier, I think?14:57
awilkinsrenames should be very easy, the file retains it's id14:57
ArjenBut there's no command-line method to do that?14:58
awilkinsArjen: I wrote a log-on-fileid option into it once in about 5 minutes14:59
awilkinsArjen: So it's not hard... it just didn't solve the problem it was aimed at (finding deletions)14:59
awilkinsArjen: Very small hackage on log command required14:59
awilkinsArjen: It uses file-id internally anyway for "log foo"15:00
LarstiQArjen: log would be what I'd use15:01
ArjenAnd script it15:01
ArjenWhich is of course a valid method, but requires work ;-)15:03
awilkinsList a revision where you know the file is, grab the file-id, hack log --file-id in15:03
ArjenUhm, hack log.py, you mean?15:05
james_wwhat, no jelmer? Unheard of.15:11
Peng_Is it safe to use a relative path as a branch's parent?15:50
LarstiQPeng_: safe as in? If you then move the branch or it's parent around it won't be able to find the parent15:51
Peng_LarstiQ: Well sure, but will random commands fail? What if Launchpad mirrors the branch?15:52
LarstiQPeng_: but it's ideal for when your branches are available via http and /srv/bzr wouldn't really help someone who mirrors15:52
LarstiQPeng_: no, no problems there15:52
Peng_Heh, that's exactly why I'm asking. I just did "bzr missing" on a branch in /srv/bzr whose parent is right next to it, and it contacted the HTTP server since that's what I'd set the parent to.15:54
LarstiQPeng_: this was also the exact usecase for it :)15:54
Peng_:)15:54
* Peng_ goes off to edit some branch.conf files.15:55
awilkinsjames_w: jelmers client had an excess flood earlier15:56
james_wjelmer: hey15:57
james_wjelmer: I was just looking at https://bugs.launchpad.net/bugs/132191 and can't really work out what's going on any more15:58
ubottuLaunchpad bug 132191 in bzr-gtk "installs unuseable desktop file to bzr commit-notify" [Medium,Triaged]15:58
james_wjelmer: the "bzr commit-notify" command still doesn't work on Ubuntu, but I can't find anything disabling it. There seems to be a bzr-notify script in bzr-gtk, is this intended to be used now?15:59
LarstiQdoesn't work in what way?16:00
LarstiQjames_w: you might want `bzr lan-notify` from bzr-dbus16:00
james_whey LarstiQ16:01
james_w"bzr commit-notify" gives unknown command16:01
abadger1999Hey all, I was experimenting with 1.6.1-rich-root format on one of my branches.16:17
LarstiQabadger1999: and? :)16:18
abadger1999but it seems I can't push from that to a branch with the default format.16:18
abadger1999How do I convert the branch back to default?16:18
abadger1999(I actually converted a shared repository so losing and recreating all the revisions would be painful.)16:18
LarstiQabadger1999: default being pack-0.92?16:19
abadger1999Yeah.16:19
abadger1999LarstiQ: bzr upgrade --default16:20
Peng_Rich roots store extra metadata. You kind of can't downgrade.16:20
Peng_It's possible to bzr init && bzr pull.16:20
Peng_(to downgrade)16:20
Peng_But bzr upgrade won't do it.16:21
abadger1999Peng_: pull as opposed to branch?  I'll try that.16:21
LarstiQmaybe we should have a bzr downgrade16:21
Peng_Just hava it print "Hahaha, nice try."16:21
LarstiQPeng_: ooh, I can make that16:22
abadger1999Peng_: Nope.  That didn't work.16:23
abadger1999bzr: ERROR: KnitPackRepository('file:///home/badger/pkgdb/.bzr/repository/') is not compatible with16:23
abadger1999KnitPackRepository('file:///home/badger/programming/.bzr/repository/') different rich-root support16:23
Peng_....Really?16:24
abadger1999Same error as I get when I tried to bzr branch from the richroot repository to a non-richroot shared repository.16:24
abadger1999Really.16:24
Peng_Huh.16:24
abadger1999bzr-1.7rc216:24
abadger1999bzr init 0.3.x ; cd 0.3.x ; bzr pull ~/programming/0.3.x16:25
abadger1999There's shared repositories on both sides of that.16:25
* abadger1999 tries without shared repo16:26
LarstiQPeng_: bzr get http://richtlijn.be/~larstiq/downgrade16:26
abadger1999LarstiQ: Does that have a test case? :-)16:27
LarstiQabadger1999: I don't have a good answer16:27
LarstiQabadger1999: doh!16:27
LarstiQabadger1999: I'll add it right away16:27
abadger1999:-(16:27
abadger1999heh16:27
jelmerjames_w, yes, bzr-notify should be used now16:28
abadger1999Well, gorramit.  This sucks.16:28
* abadger1999 figures out least time consuming method of recreating all the changes16:28
jelmerjames_w, Still there?16:29
Peng_LarstiQ: :D16:30
james_wjelmer: yeah.16:30
james_wjelmer: The .desktop is out of date in this version then. I presume it's fixed in experimental?16:31
jelmerjames_w, It's not yet fixed in experimental, though it should be trivial16:31
james_wjelmer: ok, I've uploaded a fixed desktop file to Ubuntu. Would you like me to make the change for experimental?16:55
jelmerjames_w, I hope to fix it upstream in a couple of days, not sure if it's important enough to fix in experimental before then16:56
james_woh, it's fixed upstream I think16:57
james_w603 Exec=bzr-notify16:57
james_wthere is one more change here that passed me by though, changing the icon names in the .desktop files16:58
fullermd"There are some issues we would like to address and I'm looking to talk to some people with Subversion internals experience that can help us optimize the Subversion experience for our users."17:13
fullermdYour solution; I has it.17:13
awilkinsKittens?17:16
fullermdWell, given the choice between handing my code to kittens or subversion...17:17
awilkinsWell, only if "kittens" is the codename for VSS around here17:17
awilkinsI would say that VSS is only marginally better than "big network share" if only it didn't waste so much of your time17:18
metajackAnyone know why trac-bzr is showing revision names with %2F and %3A?17:33
fullermdDouble encoding I presume.17:33
jfroy|workack, bzr-svn just died on me :|17:40
jelmerhi jfroy|work17:40
jfroy|workTried to branch a svn branch (previously used with bzr), and the command died with bzrlib.errors.KnitCorrupt: Knit _KnitGraphIndex(CombinedGraphIndex(GraphIndex17:40
jfroy|workjelmer: hello, and help! :p17:40
jfroy|workDoes that error ring any bells?17:41
=== beuno is now known as beuno-lunch
jelmerjfroy|work, please file a bug17:45
jfroy|workWill do.17:46
visik7jfroy|work: works here using bzr.1.717:46
visik7not with bzr-dev17:46
jfroy|workAny way to make bzr-svn happy again?17:46
jfroy|workI'm using 1.7.1 and 0.4.1317:46
rockstarjelmer, hi17:46
jelmerrockstar, hi17:47
visik7jfroy|work:  bzr branch 1.7  and bzr-svn trunk17:47
jelmerjfroy|work, I'd need to look into it17:47
rockstarjelmer, someone in my dent feed would like an updated trac-bzr release.17:47
rockstarLooks like you're the team owner.17:48
jfroy|workI think this is happening only for a subset of a large svn repository.17:48
jfroy|workI have a checkout of another unrelated svn branch hosted in the same repository working fine.17:48
jelmerjfroy|work, yeah, this sort of error would be related to a specific branch17:49
jelmerrockstar, I am, though pretty much by default17:49
jelmerrockstar, trac-bzr needs to be fixed to work with bzr >= 1.617:49
rockstarjelmer, well, this user says he's got all his bugs fixed with bzr 1.6 in trunk.17:50
jelmerrockstar, if he does, he hasn't published his branch on launchpad17:51
aruizlifeless: ping17:51
rockstarHe was going to use svn, because he thought trac-bzr was broken, but then he said all the bugs were fixed in trunk, so he used that.17:51
jelmerrockstar, I'm aware of at least one bug remaining in trunk17:52
jelmersince it uses _get_weave() which was removed in bzr 1.617:52
jelmerrockstar, is there a particular reason he wants a release rather than just using trunk as is?17:52
flacostei created a repository with --no-trees, is it possible to add a tree to branch in the repository afterwards?17:55
luksbzr checkout . should do it17:55
metajackjelmer: are revision names in trac supposed to show with %2F?17:56
jelmermetajack, in URLs, yes, other than that, no17:57
metajackjelmer: also, revision 44 of lp:trac-bzr does not seem to fix the %3A problem for 'current:'17:57
flacosteluks: ok, thanks, i'll try that17:57
metajackjelmer: they show up everywhere with escaping for me.17:57
metajack(running interpid latest bzr and trac, and trac-bzr from lp:trac-bzr trunk)17:57
metajackjelmer: I'm the user rockstar was talking about btw :)17:59
jfroy|workjelmer: is there any way to fix the issue, say by resetting the bzr svn props on all the files or some flag to bzr?17:59
jfroy|workthe bug is https://bugs.launchpad.net/bzr-svn/+bug/280850, btw17:59
ubottuLaunchpad bug 280850 in bzr-svn "bzrlib.errors.KnitCorrupt raised while checking out or branching a specific Subversion branch" [Undecided,New]17:59
jelmerjfroy|work, not really without knowing what's actually happening17:59
jelmerjfroy|work, I'll see if I can have a look at it later tonight17:59
jfroy|workNo rush, I can fallback to svn in the meantime.18:00
lexrupyhello all18:01
lexrupyI got here a new (to me) behavior of bazaar checkouts18:01
lexrupywhen I was out of network, I performed a bzr commit, and "automagically" the commit behaves as I had "bzr commit --local"18:02
lexrupyis that natural?18:02
jelmermetajack, are you sure you're running trunk?18:02
jelmer(it passes the tests)18:03
metajackjelmer: Pretty sure.  I see the revision 49 change in backend.py on the machine.18:03
jelmermetajack, trac-bzr is pretty much unmaintained at this point18:11
jelmerI've been fixing things that I hit since I had an instance of it running18:12
metajackI assume you must not be using bzr 1.6+ on that instance.18:12
metajackI think all the 1.6 bugs are fixed now, and it's just down to this double quoting issue.18:13
jelmermenesis, trunk still uses _get_weave() and that's gone in 1.618:14
jelmermenesis, so I'm sure there's at least some code paths that break with 1.618:14
metajackThere is a patch for that in the tracker, and it works.18:15
metajackI assumed that had made it to trunk since the other part of that patch was in revision 49.18:15
jelmerI didn't merge that patch because it's very inefficient18:17
metajackBetter inefficient than completely broken, no?18:17
=== beuno-lunch is now known as beuno
jelmermetajack, In my case, the two would be the same since trac has already taken the system down a couple of times18:18
jelmermetajack, Anyway, I'm happy to hand over the trac-bzr-team maintainance to somebody else if they're interested18:19
jelmerbut I have no interest in continuing to work on it myself18:19
metajackSigh.18:20
metajackThis has pretty much been the only thing preventing me from using bzr.  I'm sad to see it abandoned.18:21
metajackI will spend another little while trying to fix it. If I'm successful perhaps I will take you up on the maintainer offer.18:23
jelmerThanks - it needs somebody who can spend more time on it then the occasional ad-hoc fix I have been doing.18:24
lexrupyanyone can confirm this to me?18:53
lexrupyplease18:53
jamlexrupy: I haven't seen that behavior before19:18
jamThough I thought there was something with bzr-gtk that would detect your network connection19:18
jamjelmer do you remember that?19:18
=== abentle1 is now known as abentley
lexrupy... I also not before this version19:31
fullermdDoes info still show it as a checkout?19:31
lexrupyyes19:32
lexrupynow I am using version that comes with ubuntu 8.10beta19:32
lexrupybzr --version returns => Bazaar (bzr) 1.6.119:32
lexrupyI have also bzr-gtk installed19:33
lexrupyI found it very strange, because earlyer versions (also 1.6.x downloaded from ppa repo) were not doing this19:34
fynnBazaar always keeps the file ownership and permissions on *NIX systems, right?19:34
lexrupyand with that versions I also used bzr-gtk19:34
lexrupyfynn: I never had this kind of problems... permissions always kept right19:35
fynn So if I delete a monitored some_file.py, and then "bzr revert some_file.py", I should always get some_file.py with the same permissions and ownership information?19:35
lexrupyfynn: I cannot do the rigtht answer for this question....19:36
lexrupygoing back to my "issue"19:37
lexrupythe good part is that all things gone right19:37
Peng_fynn: The only permissions bzr cares about is the execute bit.19:39
Peng_fynn: Also, try it and see. :P19:39
lexrupylocal commits, and the when network was resumed I done "bzr update", all things happened as I had "bzr commit --local" off the network, a merge has been done and next commit goes to master branch19:41
lexrupy*gone to master branch19:42
miracle2kI want to go to (and use) a certain revision of a branch. what is the right way to do that? "bzr revert -r d"?19:52
luksdepends on your definition of 'use'19:53
fullermdDepends on just what you mean by "go to and use".19:53
luksheh19:53
miracle2kactually, I want to use the 1.8.0 release of bzrtools, since the trunk requires a new bzr version19:54
miracle2kso i have a branch of lp:bzrtools, except that I need an older version19:54
miracle2kI know I could do "bzr checkout -r", but what would I do if I have an unbound branch?19:55
fullermdI'd just pull down to the version you care about.19:55
Odd_Blokemiracle2k: 'bzr uncommit -r' is probably what you want.19:55
fullermdThen you're all set to pull up to a later version when you want to.19:55
fullermdNo, don't do that; it's extra work.  Just use pull.19:56
Odd_BlokeUhm... how is it extra work?19:56
fullermdBecause you have to do a revert afterward.19:56
miracle2kI already tried "bzr pull -r tag:release-1.8.0", except it gives me "no revisions to pull"19:56
Odd_BlokeHmm, true.19:56
Odd_Blokemiracle2k: 'pull --overwrite'19:56
fullermdYou need --overwrite to pull, since you're moving backward.19:56
miracle2kah, I see, that works.19:57
miracle2kthanks everybody19:57
=== Spaz is now known as Spazpaimon
=== Guest52963 is now known as jelmer
=== jelmer is now known as Guest30665
=== Guest30665 is now known as Guest52963
=== fta_ is now known as fta
=== Guest52963 is now known as jelmer
pooliehello21:55
poolievila: are you still here?21:55
lifelesspoolie: hi21:57
lifelesspoolie: middayish ok with you ?21:57
lifelesspoolie: also, for usertest, patches via lp merge requests or to the list ?21:58
pooliei think so21:58
pooliei should check with steph21:58
pooliei don't know, either21:58
pooliedid spiv post his yet?21:58
lifelessnot sure21:58
lifelessI'm adding st -r -2..-121:58
poolielifeless: also, you need to tell marianna _today_ when you're arriving and departing21:58
lifelessoh frell21:58
lifelessI need to book tickets21:59
poolieyou don't necessarily need to book as there are plenty of flights, but you do need to decide21:59
pooliebut you should book soonish21:59
lifelessmarianna is in the uk yes?22:00
poolieyep22:00
lifelessrighto22:00
lifelessbtw, usertest doesn't lock itself out :P22:00
lifelessand bzr.inv is a tad slower at fetch22:01
lifelesshilarity ensued22:01
poolieah22:01
pooliei wondered how that could be happening22:01
lifelessso looking at it22:02
lifelessthe output name rearranging is in the bash script22:02
lifelessso I think we need to lock in the bash script22:02
lifelessas the output name stuff should be protected22:02
poolieyes, we should22:04
pooliei started adding one but because it needs to be bulletproof against the machine stopping, as happened a couple of times, i was a bit lazy22:05
AccidusHmm... I want to use a different version of a plugin. I've set the BZR_PLUGIN_PATH variable to point at the new directory, but bzr still doesn't list it under 'bzr plugins'.22:05
lifelesspoolie: well, we can unwedge after a restart22:06
lifelessAccidus: you need to point at the containing directory22:06
lifelessif your plugin is /foo/bar/myplugin22:06
lifelessBZR_PLUGIN_PATH should be /foo/bar22:06
AccidusThat's what I did.22:07
lifelesspoolie: also I think there is a stock shell lock utility one can use, I don't recall the name offhand22:07
lifelessAccidus: does bzr report an error loading it perhaps?22:07
lifelessAccidus: and are you on windows?22:08
AccidusDo I need to look anywhere, or will it output it to the terminal?22:08
AccidusNow, working on Ubuntu22:08
Accidus* no22:08
lifelessit should put a one-liner to the terminal22:08
lifelessand details to ~/.bzr.log22:08
AccidusNo error reported on terminal22:08
lifelessAccidus: well look in the log anyhow :)22:10
AccidusNo, doesn't seem to contain any errors22:11
AccidusHere's what I did. I probably missed something22:12
lifelessit should say22:12
lifelesslooking for plugins in XXX22:12
lifelesswhere XXX is your path22:12
Accidus1. Set the BZR_PLUGIN_PATH to point to /home/accidus/dev/plugins22:12
AccidusAnd the actual plugin is a directory under plugins22:12
AccidusSo that if I ``ls $BZR_PLUGIN_PATH'', I see the plugin's dir listed22:13
AccidusAh. I have an idea.22:13
AccidusOkay. I'm stoopid22:16
AccidusNever mind me. Sorry to have wasted your time.22:17
* Accidus blushes.22:17
lifeless?22:17
lifelesspoolie: btw please let the current usertest run complete22:17
lifelesspoolie: I will get valuable data from it even though its glacially slow22:17
AccidusDidn't export the env var22:18
AccidusSo bzr didn't have it.22:18
pooliedid you kill off the others?22:18
lifelesspoolie: yes22:18
lifelesspoolie: oh foo, just realised, they're stomping on teh same file, so I won't gain data anyhow22:18
lifelesspoolie: so don't worry, I'll nuke that one too22:19
=== abentley1 is now known as abentley
lifelesspoolie: how does this sound - I will disable the cronjob22:26
lifelesspoolie: and start a fresh run22:26
poolieif it's going to be slow i'd rather get the locking etc fixed up22:27
pooliei can do it in a bit22:27
lifelessit will be, I'd like a result today though and I suspect that even with just one running it will be pushing it to finish by 522:28
lifelessI've just started a task with cron disabled; its easy enough to kill that and please do so if you want to22:29
lifelessI'm also trying to dig up an easy locker for us22:29
dfcIs the bzr service up and running on lp?22:31
dfci am getting an odd error and the references that I can find for it have all coincided with a lp outage.22:31
jamlifeless: I'm looking over your "repository" code. Quick point of clarification22:35
jamyou have a "chk_serializer" module22:35
jamwhich seems to be an XML derived form22:35
jamis that meant to go away in time?22:35
jamalso, some quick naming thing for CHKInventory. you use the term "entry" in multiple ways. For example:22:37
lifelessjam: not unless we kick away all the existing code that checks serializer objects; its used for the revision objects22:37
jam            return self._bytes_to_entry(22:37
jam                self.id_to_entry.iteritems([file_id]).next()[1])22:37
lifelessjam: inventory objects are not serialized through it, and finally22:37
jamlifeless: sure, but not for inventory objets?22:37
lifelessits used for equality testing22:37
lifelessrepo1.serializer != repo2.serializer22:37
jamlifeless: k. I mostly just wast trying to understand, as you added special code to unpack inventories22:38
lifelessdfc: afaik it is22:38
jam_unpack_entry is only used for inventory stuff22:38
jamI realize it is "work in progress" I just wanted to make sure I understood22:38
dfcAttributeError: 'ProtocolThreeDecoder' object has no attribute '_in_buffer'  . . . .. . . > http://pastebin.com/f57b9959d22:38
dfclifeless: any idea why I would be getting that message?22:39
jamdfc: you only get that error if you run "-Dhpss" what is the failure without it?22:39
jamdfc: (the cause is buggy code in a debug statement)22:39
dfcbzr: ERROR: Connection closed: please check connectivity and permissions (and try -Dhpss if further diagnosis is required)22:39
lifelessjam: that code fragment uses entry in the same way I think22:39
lifelessdfc: I suspect a ssh key issue22:39
lifelessdfc: try ssh bazaar.launchpad.net22:40
jamlifeless: I think you need "sftp bazaar.launchpad.net"22:40
jamsince it doesn't support plain connections22:40
lifelessjam: no, ssh will test auth just fine22:40
lifeless08:36 < jam>             return self._bytes_to_entry(22:40
lifeless                                                 ^ convert from bytes to an inventory entry object22:41
lifeless08:36 < jam>                 self.id_to_entry.iteritems([file_id]).next()[1])22:41
lifeless                                             ^ a CHKMap (aka persistent dict) from file id to inventory entry22:41
jamlifeless: so that code is a bit confusing because "id_to_entry" is "id_to_bytes" object22:41
jamI understood what was happening eventually22:41
lifelessok22:42
lifelessthanks for looking!22:42
jamyou also poke at CHKMap._root_node directly in CHKInventory, is it meant to be that coupled?22:42
lifelessI'm being cautious about making things public attributes22:43
lifelessgiven all the insane fuss about it in reviews over the last few mnoths22:43
jamthen I'm a bit surprised that you expose "CHKInventory.id_to_entry" as a plain attribute, and hide CHKMap._root_node22:44
jamid_to_entry seems like an implementation detail22:44
jamare you planning on making it more public?22:44
lifelessI very much expect fetch and inventory delta iteration to walk the maps22:45
lifelessif that ends up being in methods on CHKInventory then id_to_entry will become private22:45
lifelessso root_node is something I'm not sure how/where/when it belongs; its part of the how-to-make-COW-clean question22:47
lifelesswhich isn't that functional, but is important for safety and cleanliness22:47
lifelessid_to_entry is something I am sure it is in the right place; I'm not 100% it is public but I suspect it is22:47
jamlifeless: are the final value nodes all single-inventory-object bytes?22:48
jamI don't see anywhere that they are aggregated22:48
lifelessjam: thats right22:49
lifelessjam: I was working on the 'what breaks when we have multiple documents per inventory' issue22:49
lifelessthis was a fast to implement way to achieve that22:49
jamso the 4.4k entries in .cix for bzrtools is because there are that many total versions of the various inventory lines?22:50
jamI'm still understanding why some values in that index have an "N" as the prefix, but I'll get to that somewhere22:50
lifelessyou'll have 1 entry per inventory (the root node of the CHK) and 1 per unique inventory entry value22:50
lifelessisn't N no end of line ?22:52
lifeless(how are you looking at the index - be sure you get \x00 seperators visible)22:53
lifelessspelling blah22:53
jamlifeless: "bzr dump-btree --raw | vim -R -"22:53
jam\x00 shows up just fine22:53
lifelessok22:53
lifelesswhats an example with a leading N ?22:53
jamsha1:0004feba9f0af7777528a6ac7a62abb83cd6ed3d \00 \00 N3131511 22822:54
jamI added spaces around \00 to make it obvious22:54
lifelessyes thats the no end of line marker22:54
jamah22:54
lifelessit says no end of line, starts at 3131511 for 228 bytes22:54
lifelessso its a value22:55
lifelessbecause values are chkvalue:\n%(BYTES)s22:56
lifelessand the serialiser for inventory entries doesn't put a trailing \n as that would be awkward22:56
lifelessso specifically its a chkvalue of an inventory entry22:56
lifelessjam: so my general approach for testing the next bits...22:59
lifelessjam: I want to parameterise CHKMap by how to aggregate values/internal nodes23:00
lifelessjam: and pass those same parameters to CHKSerializer23:00
lifelessso we get several different serializer values23:00
lifelessthen we can trivially run up N different formats each behaving differently but with all the higher level iteration etc code the same23:01
lifelessjam: I'm not going to do this immediately, just sketching out the approach in the hope you'll want to dive in :P23:01
jamso just to make sure I understand23:02
jamat the moment you have a structure with 1 root node that contains a chk to every file-id23:02
lifelessjam: what I'm going to do now is to teach fetch to use CHKInventory.update(inv_delta) rather than full reserialization23:02
jambasically, just as though you took the current inventory and hashed each line separately and put it into the repository23:02
lifelessjam: yes, thats a fair description. layerwise it sounds different :)23:03
lifelessjam: actually, not quite, you missed the inventory object itself; the 4-liner that has root id, chk root and revision.23:03
lifelessso meta node, dictionary root, and one chk per file id23:04
jamk23:04
ricardokirknerhi. is this the place to (also) make questions about bzr-svn?23:04
lifelessricardokirkner: sure23:04
lifelessjelmer: your public awaits23:04
ricardokirknerI am trying to compile bzr-svn from trunk (I know, I know)... and I'm getting some import issues23:05
ricardokirknernamely 'cannot import name foreign'23:05
lifelessricardokirkner: there was a patch on the list for this23:06
lifelessricardokirkner: I believe its been applied already, just pull again23:06
lifelessjam: another related thing is to add a path_to_id map23:06
lifelessjam: and use it it avoid full iteration when populating .children23:07
ricardokirknerlifeless, I just checked it out... last revno is 193523:07
ricardokirknermhh... I did bzr branch lp:bzr-svn is this correct?23:08
ricardokirkneror should I use another branch?23:08
lifelessricardokirkner: I'm not sure23:08
lifelesssee the bzr-svn docs on  the wiki23:08
ricardokirkneralright.. and I will look in the mailing list23:08
ricardokirknerthx23:08
jamricardokirkner: I think the lp:bzr-svn branch isn't particularly stable23:11
jamI would recommend using a released version23:11
ricardokirknerjam, ok23:11
ricardokirknerjam, I wanted to build bzr-svn, in order to debug some issues with http authentication23:12
ricardokirknerbut I can first try with a more stable release23:12
jamricardokirkner: well, he also uses tags23:12
jamso you might do "bzr branch lp:bzr-svn -r bzr-svn-0.4.9"23:13
jamI'm not 100% sure his naming scheme, but it is something like that23:13
jamyou can branch the whole thing and then "bzr revert -r tag:..." as well23:13
ricardokirkneralright.. I'm checking the 0.4 series right now23:14
Peng_FWIW, I run bzr.dev and lp:bzr-svn/0.4 without issues, but I only use bzr-svn for pulling things.23:15
Peng_(And bzr-svn does occasionally break, but not in data-lossy ways or anything.)23:15

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