User1: igc: lifeless is just my irc handle
User2: User3 I feel bad that everytime I follow your link it calls bzr garbage
User3: jam, hahah, so do I  :)
User2: User3 right now I'm getting a timeout trying to connect
User2: is it down?
User3: I tend to name stuff that will need deleting _garbage
User3: I'm home
User3: lemme get you the IP
User3: http://91.69.162.6:8080/bazaar/bzr/changes
User3: (remove the "garbage" bit, may also throw off googlebot)
User2: :)
User2: User3 when I type "robert" it selects robert for a second, then a huge list of entries, and then goes back to robert
User2: any idea why it "flickers" ?
User2: User3 also, it doesn't seem to match "collins" as it doesn't seem to be indexing the committer name
User2: oh, and switching windows and switching back causes it to flicker again
User3: hrm, it shouldn't
User3: FF3?
User2: yep
User3: ah, yes. I know what's happening
User3: I don't stop calls to the server when you type faster than 200ms per ketstroke
User3: *keystroke
User2: I also tried "Refactoring" as I see that in a commit message right away
User2: and it doesn't find the rev
User3: so you get delayed calls thrown at you
User3: it's in my ToDo
User2: actually, I haven't gotten a successful hit from any of the recent commit messages
User2: Though it will put it in the helper list
User3: interesting, I may of broken something
User2: 'logic' worked
User2: 'crude' did not
User2: maybe you just need to regenerate it?
 * beuno tries
User3: well, running "bzr search Refactoring" from terminal works
User2: is it case sensitive?
User3: shouldn't be, no
User3: ok, so I'm doing something wrong in my logic, bzr-search does sent me those results
User1: whats up?
User3: LH is failing at some point, and I don't quite understand why...
User1: User2 the index is case sensitive for now - Foo vs foo in c++ is important
User2: User1 sure, but it was still failing
User2: I tried both forms
User2: anyway, I'm done for the night
User1: User2 yah, just letting you know the guts
User3: yes, I'm getting back a list with sets instead of a list with strings
User1: User3 from search ?
User3: it seems RevisionHit gives me a set, and FileTextHit a string, so I'm not showing RevisionHits
User1: User3 point me at your code
 * beuno waits for LH to load in LP
User3: lifeless, http://bazaar.launchpad.net/~beuno/loggerhead/bzr-search_integration/annotate/argentina%40gmail.com-20080620063154-mztu3hdo7t70l781?file_id=search.py-20080614235103-lpt63f7b2drplju8-1
User3: line 52
User3: I wonder how I managed to miss this up to now...
User3: ah
User3: needed a [0]
User3: thanks for pointing it out jam   :)
User3: pushing the fix now..
 * Peng joshua42@example.net.
User1: bzr-svn stares back
User4: :P
User4: It's complaining about my svn Python bindings.
User1: User3 well I was complaining about funky results ;P
User1: man
User1: linkedin is such a fanboyclubthing
User3: lifeless, heh, right. Well, jam found the search term I could debug  :P
 * beuno has avoided linkedin up to now
User3: anyway, search results seem coherent with the CLI
User2: User1 you are the one who asked *me* to join... and now you say it is just fanboy. I feel... dirty
User1: User2 :)
User1: User2 You're not a acquaintance rather than trusted colleague/friend
User1: User2 its folk I've met twice wanting to 'link up' than I was complaining about
User1: User3 cool
User2: It is just that you are so amazing everyone wants to be your friend
User1: And I thought I had ego problems
User1: :)
User4: If I can import svn.delta, why can't bzr-svn?
User4: Oh.
User4: Word of advice: don't go scattering things called "svn" around your PYTHONPATH.
User1: :P
User1: absolute imports ftw
User4: That wouldn't help. bzr-svn tries to import svn.delta, but found my thing instead.
User1: k
User4: Oh well. The only damage done is a little wasted CPU and disk I/O.
User4: Sorry for the interruption. :)
User1: lol np
 * Verterok wonders why utf-8 isn't used by everyone...
User1: User5 oh, I wish
User5: User1 I have bundleBugggy running on mysql, but I have some problems with blob encodings :P
User3: Verterok, really?  didn't have to change any queries for it?
User3: altright. I won't take that personal
User3: (and type properly either)
User5: sorry...pushed the wrong button :P
User5: User3 I think the problem is in the migration code, not in BB itself or it queries
User3: ah, thought you already had it running
User3: abentley did mention that encodings where really wierd and mixed up
User5: yes, if I don't import the mergerequests from sqlite, it work like a charm :P
User3: can't you convert it as you migrate?
User5: indeed, they are
User5: User3 I don't know in what encoding is each blob...so I basically try:...catch: until it works :)
User3: ah, sounds fun
User5: try: except
 * Verterok is writtin too much java code
 * beuno is glad he passed that on
 * Verterok too :)
User5: User3 something is wrong with the inserts in mysql, i get some warnings about data truncated... :(
User3: Verterok, that's odd. Truncated for blobs?
User5: yep..
User5: and came directly from MySQLdb module
User6: hello
User6: congrats for MySQL switching to Bazaar.
User5: User3 here is the traceback http://rafb.net/p/T5fBZX72.html
User1: User6 hi, thanks
User6: is there any way to implement a form of locking with bzr?
User3: Verterok, very odd. On the other hand, we may be able to get help from mysql now  :p
User6: or generally, any way to make sure no more than one developer is working on a particular file?
User5: User3 that would be great, but first I want to be sure I'm not doing something wrong ;)
User3: Verterok, I don't see where it's been truncated there, just an encoding error
User5: oh, I wasn't clear... I get the truncate warnings when I'm running the migration script
User5: User3 sqlite2mysql.py:95: Warning: Data truncated for column 'text' at row 1
User3: Verterok, it may be worth a try changing that column's name
User3: I suspect it may be a reserved name
User3: so it could confuse mysql
User1: User6 no, because you can have two independent branches
User1: User6 imagine that there is only one file in your tree; two branches being independent implies concurrent editing of that file
User5: User3 yes, but that is the 2dn warning, the firstone is: sqlite2mysql.py:95: Warning: Data truncated for column 'patch_text' at row 1
User3: Verterok, ah, that throws my theory off the table   :/
User3: Verterok, probably a mysql configuration
User3: max_something
User6: User1 hm, too bad. we're trying to manage some binaries here. merging never works for that, of course. so we simply must find a way to prevent - or at least alert - when someone tries to edit a file that somebody else is working on.
User3: (not helpful, I know, finishing the bzr-upload [ANN])
User5: User3 ok, i'll check
User5: User3 thanks
User6: I'm not sure this can't be done (at least in a "cover 90% of the need" way) by a bazaar plugin....
User1: User6 if you had a single branch, a plugin could conceptually write a file describing advisory locks
User1: User6 I suggest bringing it up on the list; may strike someone's interest.
User6: User1 yeah, that's what I was thinking too. a master branch for the binaries.
User6: thanks!
User3: xif, maybe by having a similar file to .bzrignore
User3: version that
User3: make sure everyone pulls
User3: and write a plugin on top of that
User3: looks in that file, does magic
User6: User3 yeah, sort of what I was thinking...
User3: that way you could have a lock with regexes!
User3: "no one else touch my jpgs"
User3: or something more professional
User3: pre_commit hook that checks if that has been changed...
User3: seems fairly possible, if someone puts some work into it
 * xif nods
 * beuno is off to the movies
User6: enjoy!
User1: have fun beuno
User7: is there a way to copy a file and have bzr recognize it as a copy? is there a copy command?
User8: bzr cp
User7: Bazaar (bzr) 1.5
User7: bzr: ERROR: unknown command "cp"
User8: Nevermind, thought I used that today but I didn't...
User1: User7 not yet; its been discussed
User7: ok. thanks
User9: anyone know how to make bzr-svn work on remote SVN repositories that require authentication? I get an error: bzr: ERROR: Invalid http response for https://svn2.hosted-projects.com/Phoenix/PCP/branches/fxcm-3/.bzr/branch-format: Unable to handle http code 401: Authorization Required
User10: you should be able to provide a username in the url and then get prompted for a password
User9: ah, I found the problem: https://answers.launchpad.net/bzr-svn/+question/24177
User1: anyone looked at clearsilver ?
User11: in bzr each branch has only one head, right?
User1: yes, we define branch as being a head
User1: you can have many heads in a repository, and many branches in a repository, repositories give you storage sharing across branches
User11: User1 I see, but a branch is a head?
User1: well, its an entry to the graph, it doesn't acctually have to be a head
User11: User1 ah, perhaps we have different definitions of "head"
User11: User1 by head I mean a node with no childs
User1: yes, thats what head means
User1: so, we have two separate objects involved
User1: we have Branch, which has a 'tip', that points into the revision graph
User1: the revision graph is stored in a Repository. An instance of Repository is one part of the distributed database
User1: there is no requirement that the tip of a branch be a head in the distributed database (because that would be logically inconsistent with people being able to branch and commit without affecting the source branch)
User1: but
User1: we only include revisions reachable from the tip when we do log and other operations
User1: so being a head in a graph sense really doesn't matter - it only matters for systems like git and hg that conflate branch storage with history storage
User1: (For instance, I have a repository with 13000 heads; I can make a branch from it to a new project in 0.2 seconds or so)
User11: User1 ah, true, being a head doesn't matter
User11: User1 in that example you would only have one head in the new branch, right?
User1: if I branched into an empty repository yes; the tip of the branch and what it references gets copied, which would leave the tip as the head (when you consider only the data in that repository)
User11: User1 but why you say git and hg conflate branch storage with history storage?
User1: well, its possibly more true for hg than git
User1: in hg when you have 2 heads in its history storage, it shows up as have two branches
User1: in git you have a list of 'heads' and 'refs'
User1: AFAICT they won't scale to very large numbers of branches
User1: (though it is very cheap to enumerate the branches because its in a single file)
User1: User11 anyhow, why were you asking whether we have more than one head per branch?
User11: User1 in git a branch is just a pointer to a commit (a ref)
User11: User1 I'm writing a document explaining why mtn sucks, and although I'm a git fan I want to show how things are dong in other decent DSCMs
User11: s/dong/done/
User1: User11 monotones management of divergence is a little awkard
User11: User1 I think having multiple heads in a branch is chaos
User1: so for bzr heads in teh repository is entirely unrelated to whats in a branch
User1: a branch has a tip, which is a ref to a commit; same as git
User1: branches also have tags, which themselves are ref's to commits
User11: User1 tags are part of the branch or the repo?
User1: User11 each branch has its own tags; the point into the repo
User1: s/the /they /
User11: so, two branches can have a 1.0 tag, for example
User1: right
User1: a concrete use case would be a single repository storing project A and project B which is a fork of A
User1: they may both have done 1.0 releases that are different code bases.
User11: yeah, I get it
User11: User1 by the way, do you know about any reference to the internal design of bzr?
User1: but storage is shared between their history, and any merges as well
User1: User11 doc/developer/, the wiki has a Classes/ sub area
User1: and there is all the docs in the code itself - docstrings
User11: User1 I couldn't find much on doc/developer
User1: http://doc.bazaar-vcs.org/bzr.dev/developers/index.html
User11: User1 http://doc.bazaar-vcs.org/bzr.dev/developers/repository.html
User11: User1 http://doc.bazaar-vcs.org/bzr.dev/developers/container-format.html
User11: that's the most similar I can find to branch representation, but not really useful
User12: User11 obviously this is more work, but if you were to read the archive of this list over the last 18 months or so you'd find a fair amount of anecdotal information you could use towards your research.
User1: pydoc bzrlib.branch/Branch
User1: erm, bzrlib.branch.Branch, thats the Branch object
User12: s/this/the Bazaar project's/
User1: User11 that talks about the serialization of the packs in the repository
User1: User11 I guess it depends on what you mean by design
User1: User11 we are _very_ modular
User1: User11 as we learn better ways of doing things we implement them
User1: User11 so to us design really talks about responsibilities and layers, not about disk formats per se
User1: User11 (in part because svn can be considered an implementation detail of bzr due to how deep bzr-svn hooks in)
User11: User1 I thought so, so there's no way I can for example create a test application independent of bzrlib to find all the branches in a repo?
User11: without looking at the code of bzrlib
User1: uh,
User1: 'bzr branches'
User1: but no, no more so than you can for git or hg
User1: (I've looked at doing it independent of git's tools, and had to go to the code to get details)
User1: it doesn't seem particularly useful to me to try to pin disk details down so that other folk can implement when the code is free; anyone that wants to know can read the /actual/ spec (not a poor proxy); also they can just use the code directly in the first place.
User1: things like bzrlib.dirstate do offer EBNF descriptions of the file format
User1: but this isn't intended for external reimplementation (though I know that DVCS for emacs actually used that to write a parser for the dirstate)
User11: User1 I've tried to understand the repository format by looking at bzrlib but I couldn't, I guess I will have to try harder
User12: I suppose different repository implementations have different formats.
User12: {shrug}
User1: User11 pydoc bzrlib.repofmt.pack_repo
User1: User11 that should get you somewhere
User1: User11 with our current default repository format (the best performing one to date :))
User12: User11 to all appearances the Bazaar hackers have worked very hard to give  bzrlib a decent public face capable of manipulating arbitrary Bazaar branches, working trees, repositories etc. If you do speak Python then you'll probably do well to use bzrlib directly to ask the questions you have of a given branch.
User1: I'm off, bbiab
User13: does anybody know if pushing to a remote location triggers a post_pull hook at the remote location?
User1: User13 if you are using a recent enough bzr, and bzr+ssh, it should I think; it will certainly trigger your local bzr's post_push hook locally with the remote location as the target parameter
User13: User1 yeah, I was trying to avoid a push-and-update style hook, because I feel like the whole "ssh in after and clean up" thing is a little too hackish when there's a bzr instance running on the other end of the transport
User1: I hear it works quite well
User1: or you can look at bzr-upload I think it is; if you are deploying via bzr
User13: ah that's a cool plugin, but I was thinking more about modifying bzr-email to send email after pushing to a "central" branch
User1: well, my understanding is that that is available
User1: but you need to be using bzr+ssh so that there is a bzr process on the other end
User13: oh, it's already available? do you know if there's a recommended way to go about doing it, or do I switch bzr-email from a post_commit to post_pull hook like I thought?
User14: User3 ping
User1: User13 you'll need to read the list archives and recent release notes I think
User1: User13 it would be a post-push, not post-pull
User1: User13 you are pushing after all
User1: User14 his midnight I think
User1: User14 argentinian
User13: User1 thanks for the tips :) didn't know that post-push got triggered at both ends, and I'll go check out the lists
User1: User13 I'm hazy on details, I know andrew bennets was working on this, and email was one of the primary use cases
User1: sorry I can't be more useful :P
User14: User1 yeah i thought he'd be asleep
User13: well if I get a solution working that's not a total hack I'll be sure to propose a merge on launchpad ;)
User13: but if it's already done then I'm golden
User13: User1 (oh, and thanks for bzr-email :)
User1: User13 my pleasure
User15: Hi there!
User15: Just wondering, what is the preferred way to set up Bazaar on the server to share a single push repo in a team of 5+ developers?
User15: I mean I could do with bzr+ssh, but how about permissions for different projects, etc.?
User4: I'm not sure, but I think install_named_hook may be pretty new. Maybe your bzr is too old.
User4: Also, ew, complicated os.system().
User4: Also, isn't it executing Ruby code that only executes something else and does a trivial check on the output? Python can handle that...
User12: User15 what do you mean by "single push"?
User15: I should say a common push repository.
User15: So that all devs can push to it.
User12: User15 Well if you've only got ~5 people I'm not terribly sure what you need permission barriers for, but regardless, standard unix permissions apply. If they own the repository (ie, the .bzr/repository) directory at . or .. then they can push to it.
User12: etc
User12: If you want them to be able to push to each others', then I'd suggest they all be in a "bzr" group or something and make the directories appropriately sticky and/or umasked.
User15: OK, I think I found what I was looking for...
User15: I had the directory chmoded 02770 but it wasn't enough to make the permissions work as I wanted them to work.
User15: I had to add a shell script to change umask before running bzr.
User16: teratorn, see the bzr-svn FAQ
User15: User16 Hi. You're the maintainer of bzr-svn, right?
User16: matid, yep
User15: User16 A quick question: which version of bzr is best suited for bzr-svn as of now?
User16: User15 Depends on the version of bzr-svn you're using
User17: Hi guys! when is bzr 1.6 coming out?
User16: User15 There's a list on the wiki
User15: User16 I currently use bzr 1.3.1 with bzr-svn 0.4.9
User15: User16 I wanted to upgrade bzr and I was wondering if it's going to break bzr-svn or not.
User16: User15 Yes, you'd have to upgrade bzr-svn as well
User17: User16 how about my question? :-D
User15: User16 Does bzr-svn work with 1.6 or it's 1.5 only?
User16: antoranz, Sorry, I don't know what the release plans for 1.6 are
User17: k
User16: User15 1.6 isn't out yet
User17: I saw 1.6 beta 2 was released almost 2 weeks ago. how did it go?
User15: User16 I should go with 1.5 and newest bzr-svn then, right/
User15: ?
User17: User15 I guess so.
User16: User15 Yes, 0.4.10
User17: what repository for gutsy and hardy) do I have to enable to get the beta?
User17: or it has to be done by hand?
User16: I think you can only get it from the source tarball
User15: User16 What version of svn should I get to have bzr-svn working?
User15: User16 I upgraded bzr and bzr-svn and now I get this error: http://pastie.org/219489
User15: User16 That's after I try bzr pull on an svn branch I used to use with bzr 1.3.1 and bzr-svn 0.4.9
User16: User15 That's an issue with 0.4.10 and Subversion 1.5
User16: I think there's an open bug about it
User15: User16 What should I do then?
User16: User15 Use Subversion 1.4, comment out that particular assert in Subversion 1.5 or stay with bzr-svn 0.4.9 for now
User17: OK... I added the repositories for betas and release candidates
User15: Commenting this assert out and recompiling subversion should do the trick, right?
User16: matid, yep
User17: but now bzr is kept from updating
User15: User16 Thanks! That fixed the issue.
User16: antoranz, how do you mean?
User16: beuno, ping
User17: http://www.pastebin.ca/1052494
User16: you probably have some plugin installed that can't be upgraded
User16: but relies on the version of bzr you have currently installed
User17: let me see
User17: the problem is the version of python-central
User17: bzr: Depends: python-central (>= 0.6.5) but 0.5.15ubuntu2 is to be installed
User17: any ideas?
User14: lo all
User14: i have a launchpad question, just grabbing a link..
User14: so...
User14: jelmer created https://code.edge.launchpad.net/~gnome-bzr-mirror
User14: which is awesome
User14: does launchpad use shared repositories?
User14: i.e. by the simple fact that bzr-mirror.gnome.org is getting mirrored by launchpad, do personal branches become really cheap?
 * Jc2k goes to test
User18: No.
User14: ah
 * fullermd dashes hopes in only 2 letters!
User14: that would have been wicked levels of cool
User19: Hi, I'm still unable to run bzr from the bzr branch, since when I do ./bzr, it still uses the bzrlib from /usr/lib, that means the old one which was installed on the system
User19: I have this problem each time I want to run a Python program without installing it...
User5: User19 you need to modify your PYTHONPATH envvar
User19: User5 however that doesn't work. I tried:  PYTHONPATH=/w/bzr.dev/  /w/bzr.dev/bzr fast-import  ......
User19: And I still get in âpluginsâ:  bzrtools             /usr/lib/python2.5/site-packages/bzrlib/plugins/bzrtools
User5: User19 couldd you paste the output of YTHONPATH=/w/bzr.dev/  /w/bzr.dev/bzr version
User19: Bazaar (bzr) 1.6b3
User19: The problem is not with the bzr executable but with bzrlib
User5: User19 it's clearly a pythonpath issue, for some reason python is looking first in /usr/lib
User5: User19 something is overriding your pythonpath :(
User19: Ok, thanks, I will search the cause
User5: User19 sorry I can give you more help with this issue
User20: is there any way to convert a rich-root-pack repo into a pack-0.98
User20: ?
User14: create a brand new repo as pack-0.98 and pull from the old one to the new one?
User16: User20 No, that's not possible
User16: (I think you mean pack-0.92, btw)
User20: right. 0.92
User20: looks like this branch i'm working with was imported using bzr-svn
User20: i guess it uses rich-root-pack by default?
User16: User20 Yep
User16: User20 rich-root-pack will hopefully become the defualt format in bzr 1.6
User20: hmm ... so how will people upgrade from pack-0.92?
User16: "bzr upgrade --rich-root-pack" will upgrade a branch
User20: does the same go for shared repos? i'm setting one up right now
User16: User20 yep
User16: User20 You can also create a rrp one using "bzr init-repo --rich-root-pack" (saves you an upgrade)
User20: User16 so if i run that command on a shared-repo, will all the branches it hosts be converted as well?
User16: User20 yes
User20: neat
User20: thanks
User21: Hey guys, is there an alternative to "darcs amend-record" ??
User21: If you don't know what it means well it will record new changes under the old revision..
User21: Add to it not replace it
User1: User21 no there is not, because in a distributed database a revision id needs to have a single unique value
User21: lifeless, ah ok
User1: User21 however, you can for the mst recent commit do 'bzr uncommit; bzr commit' to pop off the last commit and then make a new one
User21: lifeless, thanks anyway :)
User21: lifeless, yea that's what I am actually doing right now
User21: lifeless, but it would be nice to create something that does this ( maybe a plugin ), it saves me time copying/pasting the log of the commit
 * Verterok dances
User5: BB now runs on mysql :D
User1: User5 cool
User1: User3 hi
User5: hi, lifeless
User5: I finally won the encodings battle :P
User3: hey lifeless
User3: Verterok, oh, yay!  does that mean BB working with MySQL?
User5: User3 yep :D
User3: oh, very cool
User3: is it reproducable?  the migration I mean
User5: http://steppenwolf.selfip.net:8089
User5: User3 it should, I'm writting the README ATM
User3: Verterok, push to LP, mail the list!  ;)
User5: User3 there is only one unresolved issue, that odd warning about "data truncated" in a blob :P
User5: I'll push to LP as soon I finish the docs..
User3: Verterok, ah. Have you mean able to track down if it actually removes data or not?
User5: not yet, I focued on fighting against encoding errors :)
User5: User3 next iteration is to track down the warning
User3: Verterok, congrats!
User5: thx beuno
User18: Well, blob/text only store 65k...   bundles can get bigger than that fairly commonly.
User14: lo beuno
User18: You can get 16 meg in a mediumblob, which is probably enough.  But might as well just go to the 4 gig in longblob.
User1: User16 around?
User16: lifeless, jup
User5: User18 thanks for the tip
User1: User3 have you show jelmer loggerhead-super-search?
 * Verterok cheking what kind of blob is using
User3: lifeless, I don't think so...
User3: jelmer, http://91.69.162.6:8080/bazaar/bzr/changes
User1: User3 got time to run up your demo ?
User3: lifeless, I left it up. Googlebot keeps trying revids  :p
User3: hey Jc2k
 * Verterok waves fullermd (0 warnings)
User14: :)
User5: User18 thanks!! it worked like a charm
User1: User16 go to that url, and type into the search box
 * fullermd has his uses   8-}
User3: Jc2k, did you get my ping yesterday?
User14: User3 yes. im using the wsgi-ify branch, and our priorities are clean urls and any of bkors bug reports that are possible. and i want it to look GNOMEy. :p
User14: i cant think much more than that right now
 * Jc2k is ready to pass out
User16: wow, works nicely :-)
User1: User14 I believe wsgify is in trunk now
User3: Jc2k, clean urls and wsgi and other fixes have been merged intro trunk
User1: User16 thats 'how complete' bzr-search is :)
User14: ace
User3: Jc2k, if you pull from there, you should have all of it.
User3: I'll start playing to get it looking gnomish
User16: User1 Does it work without loggerhead as well?
User1: User16 grab the plugin and give it a whirl :)
User1: User16 clearly, you have not done so :)
User1: User16 it can index about 6MB/minute at the moment
User1: (it did a 509MB code base - launchpad - in 80 minutes)
User14: User3 cleaner urls, i should have said even cleaner urls ;)
User14: User3 http://bzr-mirror.gnome.org:9876/conduit/trunk/annotate/1445?file_id=276%401811c9d2-c306-0410-a128-ae57aa55c946%3Atrunk%3AChangeLog
User3: Jc2k, ah, file paths instead of fileids. Gotcha. That can get tricky, but I'll see what I can do  :)
User14: it would be nice to be able to have discovarable links like /conduit/trunk/ChangeLog :)
User1: User14 I think you mean predictable
User1: User14 or guessable
User1: User14 (I agree, having such links is important)
User3: yes it would. Just have to figure out a good way for weird characters not to come back and bite us. Maybe I can add it as an experimental feature off by default
User1: User3 weird characters?
User3: lifeless, in filenames
User3: passing them through URLs
User3: apart from that, it should be easy
User1: User3 so, output urls as utf8
User1: User3 decode as utf8, failure to decode is a 404
User3: lifeless, yes. I'm just not sure if that would be good enough to go on by default. I'll get it done, and see what mwhudson thinks, he's looked into that before
User3: it may have been a cherrypy limitation, which we already got rid of
User1: its a std66 recommendation FWIW
User1: internally paths are unicode to bzrlib
User1: so url = urlescape(path.encode('utf8'))
User1: and the reverse is urlunescape.decode('utf8')
User1: if framework foo is doing some or all of that for you, thats fine
User3: sounds simple enough. Jc2k may get everything he wants then  :)
User1: the only failure mode is clients who guess at a url and are using a different encoding (e.g. utf16, or non-latin* or cpWHACKO)
User1: if they guess though, thats where I suggest 404;
User1: _most_ unix clients will be using utf8
User1: and I think many browsers transcode to utf8 when you type in a url, because its such a common case
User1: (though if they do that they do make it hard to actually go to a url hosted by e.g. a russian windows user)
User14: \o/
User1: (which btw is one thing that really bites about standard 66) - 'undefined' is firmly entrenched as far as 'what charset was this url encoded as'
User3: I suppose that if it gets complicated, we can allow generating fileids instead. It's just a matter of what we leave on by default, as both can work always, we just present on or the other to the user in links
User1: well, users can always browse to a url
User1: start at the root and client down, even the biggest code base should be only a few clicks to get to a path; then they can copy the bit of the url they want
User1: copy and paste is good at preserving stuff :)
User3: True. I'll poke mwhudson on monday in case he already has a good reason why it isn't as straightforward
bzr
Ubuntu IRC