/srv/irclogs.ubuntu.com/2009/07/27/#bzr.txt

DaffyDuck_I would like to be able to specify the permissions for the repository files in branch.conf (or some repository configuration file), and that bzr always makes sure that files have the appropriate permissions.00:00
ronnyhmm, i have to make bzr a second-class thing in anyvc00:00
lifelessronny: why?00:01
ronnylifeless: bzr is one of the 2 vcs's that think in terms of free form fs branches, basically everything else has repos that have branches00:03
lifelessthe other being hg? or darcs?00:04
ronnydarcs00:04
lifelesswhat about codeville?00:04
ronnydidnt get a chacne to work with that one so far00:04
lifelesshg encourages free for fs branches too, its why they make local cloning hardlink - they expect it to be used a lot00:05
lifeless[and they don't support merged-branches in a single repo]00:05
ronnylifeless: each of those is a full repo which may have multiple branches00:05
lifelessronny: not in the sense of a git or bzr branch00:05
lifelessa branch in hg must have outstanding commits00:05
lifelessits always semantic, never symbolic00:06
ronnylifeless: hg's "fs branches" are full repos each with full decupling of network ops and merge ops00:06
ronnywhat do you mean by outstanding commits?00:06
lifelessa fork in the revision graph00:07
ronnythats named branches00:07
ronnyi think they are more comparable to more explicitly used branch nicks than bzr branches00:08
ronnymy main gripe is the hiding of what is actually network operations, and what is local history operations00:11
ronnyin hg/git i do a pull, then merge, done, in bzr i say merge, and then it might end up doing network ops or not00:12
fullermdDaffyDuck_: I used multi-local-accessed branches, and I haven't seen permissions get eaten in them.00:18
thumperronny: funny, in bzr I do, pull, then merge, done...00:20
lifelessalso, in git, you can have a single command update a branch, if its been configured that way00:21
ronnythumper: but usually not within the same workdir00:22
lifelessso, we want to make working with many branches substantially better00:22
lifelessif you can identify things that have made your experiences doing that with different vcs's dramatically different, that would be good info to have.00:23
thumperronny: no, I have a script alias that pulls in my trunk branches00:25
ronnylifeless: i think what throws me off most the emphasis on different kinds of transparency i perceive, in bzr one can do kinda whatever, and it will just work, no matter the cost, while in others stuff just wont work if its inefficient00:29
Tfnrshhey there which version of python needed for bzr ?00:31
Tfnrshnotify n gtk doesnt work for me py2.600:31
lifelessTfnrsh: it should work in 2.6; could you file a bug?00:35
Tfnrshincompatible API00:37
lifelessTfnrsh: it reports that as an error>?00:37
Tfnrshyes00:37
lifelessthat means your bzr and your bzr-gtk are not matching versions00:38
lifelessnothing to do with your python version00:38
lvhhi00:38
lifelesshi00:38
lvhbig correlation between #bzr and #twisted again :-)00:38
Tfnrshoh okay thanks00:38
ronnyok, time for me to play with commit building00:40
lvhronny: I thought you had mercurial poisoning00:41
ronnylvh: well, for me it means making an api that works for hg, git, bzr and svn00:41
lvhronny: em, I'm doing the same thing. Is your code up somewhere?00:42
lvhwell, not svn. but hg git and bzr :-)00:42
ronnyhttp://bitbucket.org/RonnyPfannschmidt/anyvc/, not yet history sipport00:43
ronnyi"ll start writing more tests dor history ops now, then make em pass for hg, git and bzr00:43
lvhronny: I wrote something that bumps versions for apps automagically, based on repository status, so a universal VCS API is useful for that :-)00:45
ronnylvh: i also hooked up with the roundup guys, the piano-man/pyvcs guys and the nautilus-vcs guys00:46
lifelessronny: for commits, 'tree.comm()' is the primary external interface00:46
lifelessthats tree.commit00:46
lvhronny: I didn't like hg's internals very much.00:47
lvhronny: Cool. What are you doing with the roundup guys?00:47
lvhronny: Also how is what you're doing different from pyvcses project?00:47
Tfnrshhey there sorry to bother again but maybe u can take a look http://paste.arneburk.de/bzr_error.log00:48
lvhwait, nvm, pyvcs isnt what I thought it was00:48
ronnylvh: i'll do history building00:48
ronnylvh: and i do massively test-driven development00:49
lvhronny: Cool. I found that to be hard when writing software that queries VCSes. Testing software that is entirely dependant on external state sucks :-D00:50
lvhronny: What I need is something that given a file in a repository, finds the repository (shouldn't be so hard, recursively peeking up the tree) and then finds some state about it, like tags, branches, commit mesage, etc -- and based on that, create a version.00:51
ronnylvh: get me more hint, and you should have an api at the end of the week00:52
ronnyi'll start with commit building, then continue with historz reading00:53
lvhronny: hint?00:53
lvhare you asking me for drugs? :-p00:53
lifelessTfnrsh: you need a newer bzr-gtk00:53
ronnyjust more data on what exactly you will do00:53
lvhronny: okay, so. You have generic repository objects. How do you create them?00:54
lvhRoot path for a repo? or is any path below a repo fine?00:54
ronnyi try not to be smart about repo paths (i try to be smart about workdir paths)00:55
lvhokay, that probably makes sense given 90% of your use cases.00:56
ronnywell, give me use-cases or give me tests :P00:56
lvhronny: well, 'finding a repository that likely manages this file' is one of my use cases00:57
lvhwhich is sort of easy, I can do that myself and even add it to your project if you like. Just recursively peek up the tree for things like .git, .svn...00:58
lvhall I really need is a sane api (preferably like a property) for branch, commitmessage, tag, things like that.00:58
lvhI suppose it might be a problem that not all DVCSes agree on what the fundamental unit of a repo is.00:58
lvhronny: the reason i dont really care about cwd cleverness is because im much more likely to import your modules than to run your binaries.01:01
ronnylvh: i trz to get away from invoking the tools01:01
lvhokay, cool.01:02
ronny*try01:02
ronnyneed to do that for svn and git at some point01:02
lvhalso, it would be totally awesome if there was a more or less uniform interface for similar things, like HEAD vs tip, master vs default, etc.01:02
ronnylvh: i'll try to work that01:03
lvhunfortunately you're bound to pick a name, and then dvcs users who use a vcs different than the one that shares the names you pick will hate you.01:03
ronnylvh: thats whz i will choose one everzone will hate equally01:03
ronnyget_default_master_head_tip_gtfo()01:04
lvhronny: typing on us qwerty?01:04
lvhronny: poor germans :-(01:04
lvhronny: or on qwertz and used to qwerty? :D01:05
ronnylvh: yes, got a new keyboard shipped01:05
lvhronny: im learning dvorak, dont feel bad01:05
ronnyim used to qwertz, now i got a qwerty01:05
ronnymy old one for the laptop broke, and dell agreed to ship a us one01:05
lvhronny: ibm <301:06
ronnylvh: ibm for laptops is gone, and i dont like lenovo (subjective reasoning)01:07
lvhronny: I'm typing this from an X30101:07
lvhit's not as good as my old thinkpad, no01:07
lvhbut it's still better than 90% of the shitty laptops out there01:08
ronnylvh: mz m1330 is pretty decent01:09
ronnylvh: btw, i"ll implement the same apis as the guy thats working on the new fs api pep01:09
ronnyso revisions will be like a readonly fs and commit building will be like an transaction in a writable fs01:10
lvhronny: that sounds really cool!01:11
lvhalthough for now im mostly interested in inspection rather than mutation01:11
lvhsince having applications decide when versions are done is icky01:12
lvhand that should be done based on passing unit tests, not repo status01:12
ronnyi could use such a thing to manage my release cycles later01:16
ronnyvellum, anyvc, pida, a set of pida plugins, some wsgi apps - release-management is a pain01:16
lvhronny: yes. I'd like to make something that makes it easier01:20
lvhversioning is a part of that of course, but it would be nice if we could integrate it with unit testing and perhaps ticketing systems.01:21
lvhhowever that would need an abstracted method of talking to ticketing systems, an abstracted method of talking to vcses (you're working on that apparetnly) and an abstracted way of running tests01:22
lvhand importantly checking if they fail01:22
lvhsooo, five perfect engineering motnhs :p01:22
lifelesslvh: subunit01:23
lvhalso ,what's vellum? the only thing i can find is a weblog01:23
ronnylvh: task based build system, in need of some love tho01:24
ronnylvh: for an abstract way to run tests, count me in01:26
lvhlifeless: hm, maybe -- but how does that keep working when you meet something like hkr's wonderful py.test, or nosetests, which don't enforce the TestCase hierarchy at all?01:26
ronnyi want way more metadata than subunit provides in a structured way tho01:26
ronnylvh: nose builds on unittest01:27
lvhronny: yes, but py.test doesn't have to look like xUnit at all01:27
ronnylvh: py.test is what i use01:27
lvhronny: yes, but you can write functional py.test like tetss in nose.01:27
ronnylvh: nose simply wraps it up in testcase instances01:27
lvhIn fact if you dont need a setUp method (and ive had this once) the same module runs fine in both nose and py.test01:27
ronnylvh: i did some aliasing and default parameter tricks to get it work in both with setup <P01:28
ronnybut by now i prefer pz.test01:28
lvhronny: yeah, I like py.test too01:29
lvhbut im afraid subunit doesnt01:29
ronnysubunit only provides a subset01:30
ronnyi"ll probablz use py.test as base and write a subunit consumer when i see fit later01:30
lvhcosnumer in what context?01:31
lvhmaybe im too used to amqp01:31
lvhbut I'd expect a producer01:31
ronnylvh: well, i want py.test to be the master running other stuff01:32
lifelesslvh: subunit doesn't care; just need an outputter for that format01:33
ronnylvh: so it consumes the result streams by others01:33
lvhoh, I see.01:33
Tfnrshwhere to get a newer bzr-gtk just isntalled it from bzrs ppa01:33
Tfnrshat least i think so01:34
Tfnrsh:D01:34
ronnyi dislike subunits text format tho01:34
lvhronny: so basically I see my project having a number (usually two) kinds of version numbers: releases, and nightlies.01:34
ronnyimho it should be pipable into a shell01:34
ofvHi. I have a very estrange problem with svn-import.01:34
lvhnightlies happen on trunk, or master, or default or whatever your vcs calls it01:35
lifelessronny: perhaps bring it up on the subunit list, or file a bug? I pipe subunit around /all the time/01:35
ofvit "imports" revisions that does not exist on the svn server...01:35
ronnylifeless: doesnt make it valid shell code01:35
ofv... but that existed on a test svn repo that i deleted time ago.01:35
lvhronny: releases find the current release (im not sure how to do that -- do all vcses support something that looks like a tag?) and then increments it by one.01:35
lifelessronny: I think I don't understand what you're assking fo then01:35
ofvthe test repo was on the local machine. the real repo is on another machine.01:36
lvhronny: the biggest problem is figuring out a system for decidng what kind of version we want that's simple enough to actually use and complex enough to support peoples weird versioning fetishes01:36
ronnylifeless: the subunit text format is not executable as shell code (given a few functions/executables are provided)01:37
lifelessronny: yes, I get that it isn't; but I'm not sure why that would be desirable01:37
lifelesssubunit does provide shell functions to output subunit01:38
Tfnrshwell ok subversion then again :/01:38
* SamB renames bug 393349 such that "send" occurs in the title01:38
ubottuLaunchpad bug 393349 in bzr "Bundle (bzr send) broken with --2a format" [Critical,Triaged] https://launchpad.net/bugs/39334901:38
ronnylifeless: simply cause its a text format that existed before, and allows to write dead-stupid reporters bz just creating aliases and then running the reports in their context01:40
ofvfound the problem. as the test repo was a copy of the real one, it had the same ID.01:42
lifelessronny: I must be lost; I created subunit, it didn't exist before ;). And making subunit output shell scripts would still be escapable by bad output, unless the output has to be escaped.01:43
ofvsvn-import remembered the location of the test repo(s) and imported from them insted of the real one. it imported from another test repo.01:44
jelmer____ofv, svn-import will only import from the repository with the location you tell it to import from01:45
jelmer____ofv, it won't try to open any repositories that it has imported from earlier, but it may cache data from repositories it has opened earlier01:45
ofvjelmer____: it had this on subversion.conf:01:46
lvhlaptop nearly out of power, bye!01:46
jelmer____ofv, it does remember those locations, but they are not used for anything at the moment01:46
ofvlocations = svn://qcore/tkidb;svn://localhost/repos/tkidb;file:///d:/repos/tkidb01:47
jelmer____ofv, you should never have multiple svn repositories with the same uuid but different contents - it violates svn's basic model01:47
ofvjelmer____: yeah, i know. it was a test. but bzr insists on remembering the test repo.01:48
jelmer____ofv: You might want to remove bzr's cache01:48
jelmer____ofv, or disable caching entirely - see the FAQ for details01:49
ofvjelmer____: where is it?01:49
ofvjelmer____: okay01:49
ofvthe cache is new news for me. i'm a total beginner.01:49
jelmer____ofv, the cache would be in ~/.bazaar/svn-cache/<uuid> or ~/.cache/bzr/svn/<uuid>01:49
jelmer____ofv, the cache is not something you would normally have to bother with01:49
ofvi'm trying to find it. i'm working on windows.01:50
jelmer____ofv, you'd also want to throw away any bzr repositories created from the test svn repository01:50
lifelessronny: its an interesting idea to make the output be function calls in shell, but it could be function calls in ocaml, or python equally.01:50
ofvjelmer____: already did that. this seems a nightmare: revisions coming from deleted repos! :)01:51
ronnylifeless: but shell is a universal standard interfacce on unix/posix, the rest not01:51
ofvjelmer____: the faq link on http://bazaar-vcs.org/BzrForeignBranches/Subversion points to a non-existent page.01:54
jelmer____ofv, I've fixed it to refer to the included FAQ with bzr-svn itself.01:54
ofvjelmer____: fixed the problem. thanks for your help and for bzr-svn. it's great stuff.02:01
jelmer____ofv, cool02:01
jelmer____'night all02:01
lifelessronny: C is also a standard :)02:04
ronnylifeless: but not for on the fly execution02:04
lifelessthats true.02:05
lifelessI'm not getting why this is an important thing for the streaming serialisation format though02:05
ronnylifeless: curently subunit is neither absilutelz stupidlz simple to parse, nor usalbe in neat powerfull hacks02:07
ronnymy typo rate is approaching the enforce sleep marker02:07
ronnynight02:07
lifelessgnight02:11
* SamB wonders why the heck https://code.launchpad.net/~naesten/bzr/merge-1 doesn't contain anything from him at the tip ...03:19
spivSamB: what's your local revno?03:20
SamBspiv: well, I think it came from a merge directive I sent in ...03:21
SamBsomehow!03:21
SamBthis one: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=7561#a756103:24
SamBor raw at http://hpaste.org/fastcgi/hpaste.fcgi/raw?id=756103:24
SamBleastwise, *I* never pushed it!03:26
SamBspiv: any ideas?03:27
* SamB decides to report this against launchpad-code03:43
spivSamB: yeah, file it against launchpad-code, provide the raw text of the email in the report I guess03:54
spivSamB: a quick peek at the bundle suggests it does have your revision in it (as you'd expect)03:55
SamBspiv: I attached it03:55
SamBjelmer: you know, when you package a bzr release, you should check to see if any of the Debian bugs filed against it can be closed ;-)04:01
SamBfor instance, bug #339385 was imported from Debian and you forgot to close it in the changelog entry for bzr 1.17-1 ...04:02
ubottuLaunchpad bug 339385 in bzr "bzr: BZR_PROGRESS_BAR is ignored" [High,Fix released] https://launchpad.net/bugs/33938504:02
SamBI have, however, marked it fixed using bts(1)04:03
SamBso that it shows up as fixed in 1.17-104:03
SamBas you can see at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=51777004:03
ubottuDebian bug 517770 in bzr "bzr: BZR_PROGRESS_BAR is ignored" [Normal,Open]04:03
SamBwonder why ubottu had it cached -- or is it using launchpad's out-of-date info?04:04
lifelessubottu only asks ubuntu04:08
ubottuError: I am only a bot, please don't think I'm intelligent :)04:08
lifelesssorry, launchpad04:08
rellisI am trying to use the xmloutput plugin 0.8.4 with bzr 1.16.1 and I am missing the "affected-files" tag.04:09
rellisCould this be a result of migrating from svn -> git -> bzr ?04:10
rellisbut then i figure i have new ocmmits since them igration.. and they'rem issing hte tag(s) as well04:10
SamBlifeless: ah, that would do it04:12
SamBapparantly launchpad has had trouble updating that debbug's status :-(04:12
lifelessSamB: file a question in such cases on launchpad itself04:14
SamBlifeless: I was just going to assume it was transient for the moment04:16
SamBI'll come back to it if it's still stuck at the top of my bugs page next time I look at it04:16
SamBright now, I'm going to file a bug against launchpad for flattening the email I attached to https://bugs.launchpad.net/launchpad-code/+bug/405111 when I submitted by email into the report itself04:21
ubottuLaunchpad bug 405111 in launchpad-code "improper handling of rich-root merge directives sent to non rich-root branches?" [Undecided,New]04:21
rellisah i was missing the -v switch, fail04:21
lifelessspiv: if you're in a reviewing mood, 9307 please07:00
lifelessEODing07:36
savvas0hi, a newbie question: are the bzr commits signed with gpg? I just noticed the sign-my-commits command and was wondering :)07:51
savvas0I mean, if I bzr commit, aren't the commits signed automatically?07:51
beunosavvas0, no, you need to explictely sign them07:52
savvas0thanks beuno! is there a command that checks which commits are signed?07:55
savvas0ah.. there's --dry-run :)07:58
beuno:)08:00
rellis_is there a way to get bzr to tell me what changes exist in the branch source?08:01
rellis_like xmllog but just the changes sine my last update08:01
bob2bzr missing08:01
rellis_cool, thanks08:03
rellis_anyway to get that as xml instead of the normal format?08:05
bob2no idea08:05
rellis_fair enough08:05
beunorellis_, you should be able with the xml-output plugin08:07
beunobzr missing --xml08:07
rellis_indeed08:11
rellis_thanks08:11
stefanlsdI keep trying to understand this but somehow fail - whats the difference in idiot terms between bzr init and bzr init repo08:22
bob2init converts a dir to a branch08:23
bob2init-repo converts a dir to a repository08:23
bob2a repository has dirs in it, and they can contain branches (created with bzr init), but the actual revision data is stored in the repo root08:23
bob2so, if you have branches that share a lot of revisions, a repository can save some disk and time08:24
stefanlsdbob2: ok. thanks. that helps somewhat.   So if I understand it, in my case, i have a whole bunch of different projects non related to each other. So it would be better just using bzr init.08:33
bob2you can go back and forth, but that would be simplest08:35
stefanlsdbob2: great. thanks. If i start a project that will have multiple branches related to the same project, i will init repo. thanks. makes sense :)08:36
mwhudsonjelmer: hi, i think you upgraded a bunch of branches launchpad mirrors to 2a format08:38
jelmermwhudson, yeah08:38
mwhudsonhm08:39
mwhudsoni was thinking that in some cases the dev focus branch was a hosted branch launchpad and still in 1.9 format08:39
mwhudsonand things had broken08:39
mwhudsonbut now i'm not sure what's going on...08:39
jelmermwhudson: does the dev focus matter unless they're stacked branches?08:40
ronnymoin08:44
mwhudsonjelmer: all mirrored branches are stacked on the dev focus08:44
ronnycan anzone point a lazy guy to a documentation on building in-memory commits with the api?08:45
jelmermwhudson, that would certainly explain the breakage since 2a doesn't stack on 1.9 :-)08:45
abhilashm86i'm using ubuntu, i've installed bzr, do i have to create workspace,project files in /home/user or which is better?? bzr is installed in /usr/bin/bzr......08:45
mwhudsonright08:45
abhilashm86i need to work in distributed CVS........08:45
mwhudsoni don't understand why https://code.edge.launchpad.net/~jelmer/bzr-svn/inventory is failing though08:45
* mwhudson will have to poke more tomorrow08:46
llmlhi, could anyone please help me figure out how to know at which revision the trunk has been most lately merged into certain branch as an up to date merge?11:50
luksbzr qlog /path/to/trunk /path/to/a/feature/branch ?11:54
llmlluks: i guess qlog is not available in bzr 13.1?11:56
luksqlog is from the qbzr plugin11:56
luksit's the easiest way I can think of11:56
luksbut you can use bzr log on the feature branch, remember the revision and then look for the revision number in bzr log on trunk11:57
llmlluks: you mean check the log content?11:57
luksyes11:57
james_wbzr missing will show you what hasn't been merged, and then you can infer what has from that11:58
james_wthen "bzr log --show-ids" can help you identify when the merge was done11:58
luksit kind of tricky to tell the last merge point from a list of "missing" revisions11:58
llmljames_w: against where it's pulled out from?11:59
lukssince it's a graph11:59
llmljames_w, luks: i love this trick. thanks:)12:04
abhilashm86i have a file in /home/abhilash/mypro/subdirectory, so if i want to push it to my account, its not working,  bzr push bzr+ssh://abhilashm86@gmail.com/~abhilashm86/+junk/mypro12:24
abhilashm86what is wrong with above command12:24
abhilashm86i'm using launchpad12:24
awilkinsYou're pushing to your email address?12:26
abhilashm86awilkins: its my launchpad login account12:26
awilkinsHow is it supposed to guess that you are pushing to launchpad when you're telling it to push to the gmail server?12:27
abhilashm86i made a branch called airline, i want to push a file into my launchpad account.....how to do it12:27
ronnylifeless: aware of any simple api-examples for building commits in memory?12:27
abhilashm86awilkins: i followed a tutorial, there it showed, if i gave abhilashm86.launchpad.net, there was an error.....12:28
abhilashm86http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html, this is the tutorial12:28
awilkinsabhilashm86: https://help.launchpad.net/Code/UploadingABranch12:28
abhilashm86awilkins: https://code.launchpad.net/~abhilashm86/+junk/airplane, this is my account in launchpad12:29
abhilashm86awilkins: ok i'll try this.........12:29
awilkinsabhilashm86: The first link you posted had your email address where the server should be12:29
abhilashm86awilkins: oh ok, through command line, i logged into launchpad, so i thought it was right:) no problem i'll see your link, fine.......12:31
=== mrevell is now known as mrevell-lunch
spivabhilashm86: "bzr+ssh://abhilash@gmail.com/..." tells bzr to connect to gmail.com via ssh13:05
spivabhilashm86: which is not what you want :)13:05
spivabhilashm86: in that URL, the part like "xxx@yyy" is not an email address, it's a username (xxx) and a hostname (yyy).13:06
ronnyLarstiQ: got any howto on building bzr commits from only the api13:12
=== mrevell-lunch is now known as mrevell
=== You're now known as ubuntulog
ronnycan anyone plase point me to some kind of description on how to build a commit in a branch using only the api14:21
Takbuiltins.py?14:22
ronnyTak: nop, thats not it, i dont want to commit a workingtree, i want to commit something generated entirelz in memorz14:33
ronny*y14:33
=== cprov-afk is now known as cprov
abentleyronny: Use TreeTransform.commit, which is new.15:14
=== kiko is now known as kiko-fud
l1m5does anyone know why i can no longer do 'bzr viz' in version 1.13.1?16:24
ronnyre16:25
ronnyabentley: uh, treetransform looks like it affects the workingtree, am i missinterpreting?16:26
l1m5i used to be able to do bzr viz or bzr vis and get the visual representaton16:26
abentleyronny: The TransformPreview variant does not.16:26
awilkinsl1m5: Have you got the bzr-gtk plugin installed?16:27
awilkinsl1m5: You may also wish to try qbzr (qlog command)16:28
jammorning all16:29
ronnyabentley: i want something that doesnt affect the workingtree in any way ever, i want to operate directly on the repo16:29
jamabentley: I have a question about something that is happening in the bundle code, if you have a couple seconds to chat16:29
jamshouldn't take long16:29
jamand the answer may be "I don't remember"16:29
abentleyronny: The TransformPreview doesn't affect the workingtree in any way ever.16:29
abentleyjam: Shoot.16:30
l1m5awilkins, ah, that's what i needed16:30
l1m5the gtk plugin16:30
ronnyok16:30
jamabentley: in bzrlib.bundle.serializer.v4.BundleWriteOperation.write_revisions16:30
jamyou have the line:16:30
jam(s)16:30
jam        if self.target is not None and self.target in self.revision_ids:16:30
jam            revision_order.remove(self.target)16:30
jam            revision_order.append(self.target)16:30
l1m5ty16:30
jamDo you know why that was necessary?16:30
ronnyhmm16:31
jamWe first do a topological sort on the revisions, and then we have this code to push the current target to always be the last revision16:31
abentleyjam: Hmm...16:31
jamthe problem is in the bundle testing code we do "write(rev1, rev2)" and that interprets the arguments to mean that rev1 is the target16:32
jameven though it is older than rev216:32
jamwhich causes *my* code to end up getting [rev2, rev1] which is *reverse* topological order16:32
jamand means I don't get my parent text before the child text16:32
abentleyjam: I really don't remember.  It makes me think maybe it's backwards-compatibility code.16:35
ronnyok, so i have to use transformpreview and its commit method16:35
jamabentley: yeah, I tracked the line down to a rev which says "Refactor into separate reader and writer" but then it gets a bit lost16:36
jamI'll poke a bit more and see what happens16:36
abentleyjam: It might be because bundle code interprets the last revision in the bundle as the target.16:38
jamsure16:39
jamif I change the test to be16:39
jamwrite(..., [rev2, rev1]) then everything works fine16:39
jamsince the target is then a tip16:39
ronnyhmm, that transform api is awfull16:42
abentleyronny: Can you offer some advice to improve it?16:42
ronnyabentley: i'll implement the apis like the one of the new filesystem api pep draft, they are pretty pythonic and painless16:43
ronny(im doing that for bzr, hg, git and svn)16:44
ronnynone of the vcs's have pleasant api16:45
abentleyronny: It solves a fairly awful problem, because it handles files regardless of name changes, file-id changes, parent changes, content changes, including files that have only a file-id and no contents, and files that have contents but no file-d.16:47
ronnyabentley: file with content but no id = yet to be initially commited?16:47
abentleyronny: I don't know what you mean about initially committed.16:48
ronnywell, when does a file get its id?16:48
abentleyronny: When you "bzr add" it, usually.16:49
ronnyso files without id but content are unknown/ignored things in the wd?16:50
abentleyronny: yes.16:51
ronnyso now the api question, if all the stuff has to be managed anyway, why expose all that magic confusing number to poor programmers16:52
ronnythe ai should dee all the bookkeeping16:54
ronny*api16:54
abentleyronny: By "magic confusing number", you mean the trans_id?16:54
ronnyabentley: yes16:55
ronnyas far as i can see, i have to do at least 3/4 steps to deal with adding a file and its content16:55
abentleyronny: Because any other way of referring to the file is ambiguous and leads to the risk of accidentally overwriting files, or attemting to move files from places where they no longer are.16:56
ronnycreate path, add content, schedule for versioning16:56
abentleyronny: See new_file.  That creates the path, adds, the content, adds a file-id.16:57
ronnyhmm, now, i also need to figure how the heck i would tell it a file changed16:58
ronnyall i really want to do is operate on it like on a normal filesystem16:58
=== abentley is now known as abentley-lunch
abentley-lunchronny: To change a file, call delete_contents, followed by create_file.17:14
=== nevans1 is now known as nevans
=== abentley-lunch is now known as abentley
=== kiko-fud is now known as kiko
dobeywhat does "(format: unnamed)" mean exactly? :)18:50
bialixronny: what is filesystem api pep draft18:56
ronnybialix: draft for a pep to get reasonable filesystem apis into the stdlib18:58
bialixit has the page?18:58
ronnyhttp://eagain.net/blog/ is a good starting point18:59
ronnyhmm18:59
ronnyok, no matter how much i tinker with the bzr treetransforms, i cant figure how to use them, they just suck18:59
bialixnot very much info19:04
ronnybialix: there is more in the linked git repos19:04
bialixwe Russians usually say about "spherical horse in a vacuum"19:05
ronnyabentley: why the hell did you recommend PreviewTransform over MemoryTree, i despiese you now19:21
abentleyronny: because we've put a lot of work into making TreeTransform.commit work recently.19:22
ronnyabentley: that doesnt change the amount of pain on using those19:23
* Tak feel the love19:23
abentleyronny: I'm sorry that you feel that way.  I recommended the interface that I know works.19:24
ronnyall i know is that the treetransform interface is a huge confusing pain19:26
abentleyronny: Not to me.19:29
ronnyabentley: then you are appearantly very trained at bearing it19:32
ronnyit fails at being intuitive and it fails at keeping practically useless data away from me19:33
abentleyronny: Well, I am its author, so that helps.19:33
abentleyronny: It is a low-level API.  It is designed to solve difficult problems.  The suggestions you've proposed to make it more intuitive would make it unable to solve those problems.19:35
dgouletHey people, someone can tell me how to get the committer string of the last revision of a branch via bzrlib ?19:37
LarstiQdgoulet: branch.repository.get_revision(branch.last_revision()).committer19:40
dgouleti need to open a Branch before? (branch.Branch.open(BRANCH_PATH) ?19:42
dgouletfrom this object, can I get the get_revision function ?19:43
LarstiQdgoulet: opening a branch like that is one way to get the `branch` object in my line, yes19:43
LarstiQdgoulet: after that, exactly what I wrote will get you the committer for the last revision on that branch19:44
LarstiQdgoulet: note that get_revision is on branch.repository, not on branch19:44
dgoulethmm ok19:45
dgouleti'll try right now19:45
dgouletfantastic19:47
dgouletthx a lot19:47
LarstiQronny: looking at some scrollback (but not all), if all you want to do is commit snapshots, memorytrees and perhaps commitbuilder sound easier than TreeTransform19:48
luksnote that you migh want .get_apparent_authors instead of .committer19:48
luks.get_apparent_authors()19:48
LarstiQdgoulet: right, what luks said.19:48
LarstiQsynic: are you the author of the synic vim colorscheme?19:49
synicin a post hook in a bzr plugin, how do I obtain the commit's comment?19:49
synicLarstiQ: yes.19:49
dgouletok ok19:49
dgouletworks very well19:49
dgouletthx19:49
ronnyLarstiQ: i'll use memorytree now19:50
LarstiQronny: did you get anywhere on the hg backend btw?19:50
ronnyLarstiQ: didn't work on it yet19:50
ronnyi decided to make the fun game again19:50
ronnyie do it for bzr, then do it for hg in a small fraction of the time19:51
LarstiQronny: I'll grant you that you might know hg better, but it is a bit of a cold vs hot cache comparison19:54
ronnyLarstiQ: not really, hg is kind of a pleasure for reading and understanding and bzr reliably fails at that19:55
LarstiQronny: still allows for experimental bias *shrug*19:56
ronnywell, everz time i hac something that uses bzr i end up reading 2 orders of magnitude more code than when i do the same for hg19:57
LarstiQsynic: assuming you mean post_commit, looking at `bzr help hooks` output but not testing, I'd say master.repository.get_revision(new_revid).message19:58
LarstiQronny: could you give me a hg codebase tour next time we're geographically colocated? (were you going to HAR?)19:59
synicLarstiQ: ok, thanks19:59
ronnyLarstiQ: sure, btw, whats HAR?20:00
LarstiQronny: har2009.org20:00
LarstiQronny: Chaos summercamp, but in .nl20:01
ronnyhmm, i wont be there20:01
* LarstiQ nods20:04
LarstiQafter that the next event I'm attending is the CCC itself I think20:04
LarstiQor maybe Maschinenfest, but that's not ideally suited to hacking :)20:04
ronnyhmm, maschienenfest looks like fun tho20:07
LarstiQI hope so :)20:08
LarstiQsynic: also, to be complete, post_change_branch_tip might be interesting as well20:10
jfroyIs there a way to get finer-grained changes for bzr shelve?20:57
jfroyA few of the clusters I get are too coarse :|20:57
* SamB has been wanting the same from "darcs record"20:58
* SamB also wonders why "bzr commit" doesn't offer even that level of control to those that want it20:58
Raimjfroy: yeah, hunk-splitting would be good20:58
abentleyjfroy: No, sorry.  I plan to support pulling launching an external program for that case.20:59
Raimjfroy: but unfortunately there is no way at the moment20:59
jfroy:sad:20:59
=== jonnydee is now known as Guest78657
=== vxnick is now known as vxnick-AFK
ronnyjelmer: sup, gout anz code around where you build complete commits with subvertpy?22:27
ronny(using the remoteaccess api)22:28
jelmerronny, Yeah, see the examples/ directory22:30
jelmer(ra_commit.py)22:30
ronnyjelmer: it doesnt add/change files tho, and i have no idea how fileeditors work22:33
=== ja1 is now known as jam
dobeycan anyone tell me how i can get the repository format updated for a branch on launchpad?22:52
verterokdobey: did you upgraded the branch in lp?, eg: bzr upgrade --<format> lp:<branch-name>22:53
dobeyverterok: that's what i typed on the command line, yeah22:54
dobeyverterok: it looks like Branch format: changed, but not Repository format:22:54
verterokdobey: and the upgrade finished ok? :)22:54
dobeyit didn't die, and said it was ok22:54
dobeyso i presume so22:54
dobeyhttps://code.edge.launchpad.net/~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk22:54
verterokdobey: it's a stacked branch?22:54
mwhudsonit can take a while for the web page to update22:54
dobeyverterok: no22:55
mwhudson(well, until you push a change basically)22:55
verterokdobey: I think lp will update the format info once it's re-scanned, e.g: type filter texta enw commit22:55
dobeyhrmm22:55
* dobey tries22:55
* verterok can't write :/22:55
mwhudsonbzr info nosmart+lp:~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk22:56
mwhudsontry that ^22:56
dobeyhrmm22:56
dobeyok22:56
dobeyi wonder why it doesn't say 2a though22:58
lifelessdobey: what does it say23:02
dobeyStandalone branch (format: 1.14-rich-root or 1.9-rich-root)23:02
lifelesscan you add -v to the command please23:02
lifelessthe paste the repository line23:02
dobeyto info or upgrade?23:03
lifelessinfo23:03
dobey    repository: Packs 6 rich-root (uses btree indexes, requires bzr 1.9)23:03
dobeywhich is what lp now says as well23:03
lifelessso, its definitely not 2a23:04
pooliehi jam23:04
dobeyindeed23:04
pooliehi lifeless23:04
jamhi poolie23:04
lifelessand whats the exact upgrade line you used?23:04
dobeywhich is odd, given i did upgrade --2a and it said it succeeded and updated the repository23:04
lifelesshi jam, poolie23:04
dobeylifeless: i upgraded to 1.9-rich-root, and then i did 2a23:05
jamdobey: doing "bzr upgrade --2a repo/branch" only upgrades the branch, not the repo23:05
lifelessdobey: I'd like you to copy and paste the line you used23:05
jamand the latest format branch is the same as the 1.9-rich-root branch23:05
lifelessjam: its on lp, no shared repo23:05
pooliejam, shall we talk?23:05
dobeylifeless: bzr upgrade --2a lp:ubuntuone-client23:05
dobeylifeless: after a successful --1.9-rich-root upgrade23:06
lifelessdo you have its output? could you pastebin it23:06
jampoolie: sure23:07
jamcall the house or skype directly23:07
dobeylifeless: http://pastebin.ubuntu.com/234769/23:08
lifelessextremely odd23:10
dobeyindeed23:10
lifelessdobey:23:11
lifelessrobertc@lifeless-64:~$ bzr info -v nosmart+bzr+ssh://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/23:11
lifelessRepository branch (format: 2a)23:11
lifelessdobey: the upgrade worked, whatever info command you are using is failing23:11
dobeyweird23:12
lifelesswhats the info command you're using?23:12
dobeybzr info -v nosmart+lp:~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk23:12
dobeyoh crap23:13
dobeywow i'm dumb23:13
lifelessubuntuone-storage-protocol != ubuntuone-client23:13
dobeyyeah, i see that now23:13
lifelessI wish we had more flexible urls23:14
lifelessso23:14
lifeless~23:14
lifeless~group/ubuntuone/client/trunk23:14
lifelesswould be nice23:14
dobeyhrmm, though now i can't seem to upgrade --2a ubuntuone-storage-protocol23:15
dobeybzr: ERROR: File exists: '/srv/bazaar.launchpad.net/push-branches/00/00/9a/14/backup.bzr'23:15
lifelessyou'll need to remove that backup23:15
dobeyhow?23:15
lifelessor pivot it back into place23:15
dobeyssh lp rm -rf?23:16
lifelesswell, firstly, check the branch is currently intact23:16
lifelessinfo -v will do23:16
lifelessassuming it is, lftp sftp://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk23:17
lifelessrm -rf backup.bzr23:17
dobeyyeah it looks ok23:17
lifelesswin 3523:23
dobeyok, cool. now they are both upgraded to 2a23:24
dobeylifeless: thanks, sorry for my pebkac :)23:24
lifelessnp23:24
lifelessits happened to folk before23:24
lifelessI think allowing more freeform branch structure would help23:24
lifelessas you are squashing multiple bits into a single directory component23:25
dobeyi don't think it would have helped. my problem was that i just typed a completely different thing than what i wanted. if i would have typed the same thing in a different format, i still would have been just as confused at the results :)23:27
lifelessit may have been easier to spot23:28
ronnyjelmer: how does FileEditor.apply_textdelta work ?23:29
dobeymaybe. but i don't think i would have spotted it as it didn't occur to me that i might have typed the wrong thing there, especially since it succeeded, just on the wrong project. and i guess one still wouldn't be able to arbitrarily replace - with / in a project name, as it would cause problems if someone started a foo-bar-baz project to implement foo-bar for baz, and they both were on launchpad.23:31
dobeybut eh23:31
dobeyit's all good now23:31
jelmerronny, apply_textdelta will return a function that you can feed txdelta objects, to be terminated by a call with None23:32
jelmerronny, you can use subvertpy.delta.send_stream(<file-like-object>, <txdelta-handler>) if you don't want to do this manually23:32
=== visik71 is now known as visik7
ronnyjelmer: so i get the txdelta handler bz calling apply_textdelta, and then use send_stream?23:35
jelmerbz?23:35
ronny*by23:35
jelmerapply_textdelta() will return a txdelta handler23:35
ronnystill getting used to the us layout23:36
jelmerronny, yes23:36
jelmerronny, :-)23:36
jelmerronny, you had me wondering what bz was an abbreviation for :-)23:36
ronnywell, i have a new found hate for many of bzr's apis tho23:37
lifelessronny: ?23:37
ronnyjelmer: so many things that are painfully more complex/complicated than necessary23:38
lifelessronny: my guess would be you're using overly low level apis23:49
ronnylifeless: someone pointed me to TreeTransform instead of MemoryTree23:56
ronnylifeless: but both of them are pretty painfull23:56
ronnylifeless: both api"s require too much bookkeeping about magical id's23:58
lifelessronny: bzr's data model is built around inodes, not paths23:59
lifelessronny: but there are trivial mappings23:59
lifelessronny: what are you trying to achieve?23:59

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