/srv/irclogs.ubuntu.com/2008/01/03/#bzr.txt

Keybuk1.0.000:01
mindstormshi all and happy new year (to those celebrating it)00:01
mindstormssomebody mentioned a couple of weeks ago that he is working on creating a patched svn version00:02
mindstormsand a smarter install for Mac00:02
mindstormsany news on this? (I know there is a distro for 10.5, but the discussion was to make it available for Mac 10.4 too)00:02
abentleyKeybuk: So in 1.0, the reason why it didn't support remote urls was that it always used working trees.00:03
abentleyHowever, local URLs should work just fine.00:03
abentleyIn bzr.dev, diff has been reworked significantly, and now uses the last-committed-tree for remote URLs and for branches without trees.00:05
=== luks_ is now known as luks
zekelAnyone know how to get svn style status? There seems to be a short keyword arg to status.show_tree_status that does what I want, but I'm having trouble getting started with the api. I'm not really sure if I want to be writing a script to filter the bzr output, call status from within, or make a plugin that is called by normal bzr st. Can someone point me in the right direction?00:39
jelmerzekel: bzr st -S ?00:39
jelmerwhat sort of thing you would want to use really depends on what you're trying to write00:40
zekelOh, I guess I got confused. What I really want is the paths outputted to be relative to the cwd, and I took that to be the svn thing.00:40
jelmerand in what lnaguage00:40
zekelI was thinking python.00:40
jelmerah, ok. I don't think there's a way to report paths relative to the cwd yet00:40
jelmerbut I may be wrong00:40
zekelI think I asked if there was a builtin way and was told no, not yet. I find that I don't check in stuff as much if the paths are long, which is really bad.00:41
zekelI could do something with sed, but I thought I'd try to do it from within python instead.00:41
zekelI think what I need is to know the correct way to get a working tree object, so that I can call a status method, which I can then mess with.00:43
lifelessuhm00:43
lifelessjust write a replacement formatter?00:43
zekelThat sounds like a great idea. I should look at the normal one and make my changes?00:45
lifelessit may not be fully pluggable right now; a good place to start looking is bzrlib.status00:45
zekelThat's why I'm thinking it might just be a better idea to have a filter script to pipe it through.00:47
lifelessperhaps00:51
lifelesswe do like making things pluggable though :)00:51
zekelI can't say I'm an expert, so hacking bzrlib vs. filter script might be the difference between impossible and doable.00:52
zekelAt least based on trying to read it.00:53
lifelesszekel: ah01:00
lifelesszekel: well, let me have a quick check01:00
lifelesslook for 'if short:' in status.py01:01
lifelesssee _mod_delta._ChangeReporter01:01
lifelessthats the interface you can use to write a new reporter01:01
PengWhat exactly are rich roots?01:02
lifelessyou can subclass that too01:02
lifelessand hardcode in a new class in status.py for now01:02
lifelessPeng: versioned '/'01:02
PengWhat does that gain?01:02
lifelessbzr split; bzr join01:02
PengHow do rich roots help that? What information about directories is there?01:05
lifelesslast-change and file-id01:06
lifeless(and children obviously)01:06
PengOk.01:06
PengI still don't get it.01:06
lifelessit stops new files in the root of the project you joined being merged to the root of the combined tree, rather than the correct child node01:06
lifelesssay you have project A: [/]  and B: [/, /README]01:07
lifelessif you join B to A at subproject you get:01:07
lifelessA': [/, /subproject, /subproject/README]01:07
lifelessif you commit to B a new file 'configure'01:07
lifelessthen merge B' to A' you want:01:07
lifelessA'':[/, /subproject, /subproject/configure, /subproject/README]01:08
lifelessthis requires you to know that B''s '/' is A's '/subproject'.01:08
lifelessif B's / has no file-id then you can't tell that.01:09
PengOk.01:12
PengThat could be inferred, but I guess it would require rewriting history a bit?01:16
PengOr, I dunno.01:16
PengIt sounds really easy to infer that when the merge is done, but I guess it doesn't map well to being stored?01:16
lifelessthe only thing available to infer this is the presence of README01:17
lifelessor a deep history search01:17
lifelessthe first fails if there is also another file, say AUTHORS, that became /AUTHORS rather than /subproject/AUTHORS01:18
lifelessthough it is arguable at that point that a conflict should be raised (but you should still be clear about the options)01:18
lifelessand deep history searches are generally bad things to do01:18
lifelessbecause they break when you deliberately truncate history (e.g. partial branches because you don't want the deep history for now)01:19
fullermdIs there some reason other than backward compat not to go rich-root by default?01:21
fullermdIt seems like most of the dangerous/surprising bits are segregated in the -subtree variant now.01:21
lifelessdunno; I'll think about that later. Coding now. Tchau. :)01:22
fullermdBetter choice   :)01:23
lifelessabentley: if you are pro the experimental format approach I put forward, consider a review :).01:49
pfharlockThis is probably asked allot, but, I created a bzr branch and then tried to merge in something from a subversion repository and just can't seem to figure out how to get it to work.  I have successfully branched a svn repo into a non-pre-existing bzr branch, but I was hoping to create a bzr repo and selectively merge in svn branches.  I'm using the svn-bzr plugin.  Any thoughts? Is what I'm trying to do even possible?  I can give any det03:02
pfharlockails that may be of help.03:02
lifelesswell, an error message would be a good start :)03:06
pfharlockok03:06
pfharlockone sec03:06
* fullermd presumes it'll be a repo format issue.03:06
pfharlockyes, that seems to be the case, here is the lead up03:07
pfharlockbzr init03:07
pfharlockbzr merge svn+file:///home/pfharlock/arc/subversion/snippets03:07
pfharlockbzr: ERROR: Repository KnitPackRepository('file:///home/pfharlock/test/.bzr/repository/') is not compatible with repository SvnRepository('file:///home/pfharlock/arc/subversion')03:07
lifelessupgrade --pack-0.92-rich-root I think is what you need03:09
fullermdYeah.  You'll need....   mmm...   at least one of the rich-root formats, and maybe the -subtree one.  Not sure how far bzr-svn pushes you currently.03:09
Peng--rich-root-pack03:09
Peng(no 0.92?)03:10
pfharlockok, thanks for the advice, I'll try that, I'm on bzr 1.003:10
Pengbzr-svn is supposed to work with the rich-root formats.03:10
pfharlockjust out of curiosity, why does the rich root format help?03:10
lifelessit adds metadata svn exports need to do the right thing with some of the copy-to-make-branch operations03:11
pfharlockyeah, that seemed to have worked, thankyou very much, will the rich root formats eventually become the default in bzr?03:15
lifelessyes03:16
* igc lunch03:28
pfharlockone more silly question, if you create a rich root format branch or repo, can you merge from it into a standard default knitpack or is it simply not backwards compatible that way?03:28
abentleypfharlock: It is not compatible for the same reason SvnRepository isn't compatible.  There is data in "rich-root" formats that pack-0.92 cannot represent.03:35
pfharlockI see, thanks again for the help, it's really appreciated.03:36
spivabentley: you replied to me, rather than the list05:39
abentleyOh, thanks.05:39
spivabentley: I guess my habitual "group reply" in mutt that does "To: you / Cc: the list" breaks in combination with your reply habits?05:40
abentleyI blame New Year's celebrations :-P05:40
spivHeh.05:40
abentleyI usually use "reply all", but I've recently changed my email address, so I've been a bit out of sorts.05:41
abentleyspiv: Does that subtract_plans docstring look helpful?05:42
spivabentley: very!05:42
abentleyOh, great.05:42
abentleyI'm just applying your tweaks now.05:43
=== bigdog_ is now known as bigdog__
=== doko_ is now known as doko
igcnight all08:16
mwhudsonlifeless: still here?08:56
lifelessfsvo here09:07
lifelessdinner is ready in 2 min09:07
mwhudsoni was fighting getting tg installed on squid-cache09:07
mwhudsonbut now i'm on the phone to thumper09:08
lifelesstg is installed system wide09:13
mwhudsonit is?09:15
mwhudsonmaybe i'm running things with the wrong python...09:16
lifeless2.509:16
mwhudsonah yeah09:16
mwhudsonlifeless: you're definitely special: http://www.squid-cache.org/bzrview/squid3/trunk/changes09:50
mathrickis there a plugin to support individual hunks commits, darcs style?10:07
lifelessmwhudson: did you put anything in a per-user python dir or something ?10:08
lifelessmwhudson: and how are you starting it ?10:08
mwhudsonlifeless: "python2.5 ./start-loggerhead.py -f"10:17
mathrickhow come the release notes (and actually releases thmeselves as well) are so irregularly linked from http://bazaar-vcs.org/news ?10:26
mathrickdoesn't that happen automatically?10:26
mathrickurgh, for some reason "bzr branch http://michael.ellerman.id.au/bzr/plugins/diffstat/" takes about 2 minutes and heaps of bandwidth10:37
mathrickfor all of 11 revisions10:37
mathrickeven a simple bzr ls takes 20s10:38
PengThe remote repository contains a lot more.10:39
Peng(Probably a copy of bzr's branch.)10:41
lifelessmwhudson: I was using 'python start-loggerhead.py'10:54
lifelessPeng: bet that teh remote repository is knits ;)10:54
Penglifeless: It is.10:54
lifelessmathrick: thats an old format repository10:54
mathrickah10:55
=== cprov-out is now known as cprov
lifelessnight all10:55
PengI wouldn't call it old, just not new.10:55
PengG'night.10:56
mwhudsonlifeless: ah ha10:57
mwhudsonwhy the fuck does that make a difference10:57
mathrickPeng: it's slow enough to be old :)10:59
mwhudsonlifeless: as predicted, though i'm not sure why, deleting the [logging] section of the config seems to help11:05
mathrickgarh, how can I debug WHY a plugin can't be loaded?11:07
mathrickie. get whatever error makes it so11:08
KinnisonCan someone point me at the docs for what a Text conflict is, vs. a Contents conflict?11:13
mathrickKinnison: http://doc.bazaar-vcs.org/bzr.1.0/en/user-guide/index.html#conflicts-types11:15
Kinnisonthanks11:16
KinnisonContents conflict in vl.h11:17
* Kinnison thinks bzr misclassified that file11:17
Kinnisonmmm or perhaps not11:22
Kinnisonurgh11:22
KinnisonI think upstream deleted that file11:25
Kinnisonpants11:25
Kinnisonthanks11:25
KinnisonI hate qemu11:25
mwhudsonmathrick: look in ~/.bzr.log11:26
mathrickmwhudson: aha, thanks11:33
induhow can i work out with trunk and branch methodology11:41
mathrickindu: eh?11:41
mathrickwhat do you mean?11:41
induis there a specific way that a version control system should follow for publishing the source, to the community11:41
indumathrick, i just started maintaining a version control system for my project, prev i had used svn11:42
indunow i am trying to shift to bzr which has much more better features11:43
mathrickindu: aha, there's no One True Way11:43
indubut I am confused how to organise it11:43
mathrickthere are many ways, depending on what your project needs11:43
indumathrick, my project has different releases, named as sethu, tarang, and anant11:43
mathrickindu: how big is it? How many core developers do you have? Is it open source? Proprietary? Proprietary with external contributors?11:44
induits an opensource11:44
indumathrick, and in future i will have some more release,11:44
induthus, if I consider each as seperate repo, and then upload my souce as branches ( each repo has more than one branch)11:45
mathrickindu: what are those releases? Are they versions, or separate codebases? Do you need to maintain each independently, or does one release make others obsolete?11:47
indumathrick, they are not versions, they are different releases11:47
mathrickbut what is a release?11:47
mathrickare they separate programmes?11:48
indumathrick, i am working on a linux distribution,11:48
indubased on debian11:48
mathrickokay?11:48
induand to maintain its source i am trying this11:48
induyou can have a look at http://packages.bosslinux.in/boss/pool/11:49
induwhere there are three releases, and under each there is a main folder, and the source under that folder only need to be made version controlled11:49
mathrickaha, so they are effectively versions, except that they bundle a lot of things together each11:50
mathrickindu: is the source you want versioned related between releases (I assume yes)?11:51
induno its not versined between releases,11:51
induthe source is independent for all the releases11:52
mathrickokay11:52
mathrickindu: so as far as you're concerned, sethu and tarang have no relationship at all?11:52
indumathrick, yes11:53
indumathrick, they are just under the project of our linux distro, but internally they are not related11:53
mathrickindu: then it makes sense to set up a separate repo for each of them11:53
mathrickindu: what is the structure of your team? Do you have any external contributors? How many internal ones do you have?11:54
induinternal are 15, and external may extend to 10011:55
induor more than that11:56
mathrickokay, so you might want to set up a PQM for the internal ones, and pull from independent repos for external ones, if they are less active than internals. Otherwise you could grant access for the active external ones as well11:57
mathrickPQM lets you set up things such as buildbots and automated testsuites easily11:57
induwhat is PQM ? first time i am hearing this terminalogy12:00
indumathrick, mathrick, one more thing, i also need a good gui for the users to easily view the structure so that they can download the source, if i use loggerhead, then each repo appears extended by default and thus my page in browser looks very big with sethu (80 branches under it) lll'ly tarang and anant12:00
mathrickindu: https://launchpad.net/pqm http://bazaar-vcs.org/Workflows12:01
mathrickindu: a lot is explained in http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html and http://bazaar-vcs.org/BzrPlugins12:03
mathrickincluding GUIs12:03
mathrickunrelated, could someone review this patch: http://pastebin.com/m22468f0112:04
mathrickis this the right thing to remove diff_cmd_helper?12:04
indumathrick, ok i will have a look at those docs,12:05
mathrickit irks me somewhat I had to recreate spec_tree() from it12:05
indumathrick, one more small doubt12:05
indumathrick, i am unable to configure bazaar with apache12:05
indudo u have idea on it?12:05
mathrickindu: I don't know what you mean by configuring bazaar with apache, so no12:06
mathrickand I have no idea about anything that involves the two together, so I'm unlikely to help12:06
indumathrick, ok. thanks for the help provided12:09
mathrickno problem12:09
mathrickany comments on the patch?12:13
Pengmathrick: What's that a patch too? Also, use bundles (bzr send -o foo.patch) when submitting patches so your commits won't be lost.12:33
mathrickPeng: it's for diffstat plugin12:34
Pengmathrick: Oh.12:34
mathrickand I know about bundles, I just wanted someone to look at the code12:34
PengOk.12:34
PengI don't know anything, so I have no comment on the code.12:35
mathrickok12:35
mathrickah, right, I've fixed a buglet since I pasted it12:35
indumathrick, i want to use http protocol, for publishing the content12:41
indumathrick, that can be done by configuring apache web server for bazaar, is it right? or any other way is available12:42
mathrickindu: then you just publish the directories, bzr repos are simple directories on disk12:42
mathrickthere's no configuring of apache for bazaar12:42
mathrickindu: unless you mean a sophisticated repo viewer, a'la loggerhead12:43
indumathrick, yes, my problem is solved now, many thanx12:52
inducould some one tell me, what this message mean http://rafb.net/p/yfdEH296.html13:07
sorenindu: You can't push over http.13:08
induI soren branch on http worked13:09
sorenYes?13:09
sorenThat's a read only operation.13:09
sorenpush means that you want to send you changes somewhere. You can't do that over http.13:09
indusoren, ok fine13:10
indusoren, then i changed my command to bzr push /usr/local/boss-bazaar/Anant13:13
induand the o/p was created one branch, but where does it create? since its not available under /usr/local13:13
induunder /usr/local/boss-bazaar/Anant13:14
soreno/p ?13:14
=== Keltia__ is now known as Keltia
induo/p = output13:15
soren"the output was created one branch"? I don't understand, I'm afraid.13:17
induin svn, to create a new project repo, we using svn import command to add files to the repository13:18
indubut its not possible in bzzr13:18
sorenOk, now I'm seriously confused.13:21
sorenWhat is your question?13:21
sorenIf you want to start to use bzr, you issue "bzr init", add your files, bzr add them, and bzr commit them.13:22
Peng(Even better, you convert from your svn repo so you don't lose your history...)13:22
dleeIndu:  When you bzr push, bzr get, etc., yes, you get one "branch" (the term "branch" has slightly different meanings in svn and bzr though, and I'm temporarily blurring the distinction).  The "output" will go where you told it to; for example, "bzr push /usr/local/out" would create a directory called /usr/local/out and under it /usr/local/out/.bzr, in which the data for the branch would go.  I'm not sure how much I'm helping here, but I 13:45
mathrickpack-0.92 is the latest-and-fastest format?13:46
dleeLatest non-experimental format yes.  I'll let someone else tackle the "fastest" part.  There's a newer format, but I understand it's still experimental.13:47
Pengmathrick: Yes. It's a lot slower for operations that read the entire history (like log) though (which is being worked on). Also, older formats cache all of the information "bzr annotate" uses, but packs don't, so that's slower too. (There's going to be an annotation cache in the future.)13:50
mathrickokay, I was playing with a simple benchmark, and it seems that bzr rm on new files is pathologically slow13:51
mathrickI'm doing it on ~30K newly added files13:51
Pengmathrick: (On the flipside, operations that only read part of the history are much faster. So is dumb server network access. It also makes read-write dumb servers easier because files are not modified, only added and deleted.)13:52
Pengmathrick: Nice.13:52
mathrickand it has runtime at least 3m13:52
PengCrapcrapcrap.13:53
* Peng notes that running 'touch' 30,000 times isn't very fast either.13:53
PengCrapcrapcrap. Ran it in the wrong directory.13:53
* Peng kills it after 17,000 files.13:54
mathrickPeng: dunno, git can add all of them in 2s :)13:54
dato% seq -f %g.txt 30000 | =time -p xargs touch13:55
datoreal 2.0813:55
datoPeng: ^13:55
datoPeng: the trick is not starting a new touch process per file ;)13:55
mathrickwhat's =?13:56
mathrickis that csh or some other abomination?13:56
datozsh13:56
dato=time -> /usr/bin/time; I use in order not to use the shell builtin time, which I don't like13:56
mathrickoh13:57
mathricksomeone should tell /usr/bin/time about spaces13:58
Pengdato: I know.13:58
datomathrick: I like it with -p better13:58
mathrickbzr rm still running...13:58
* Peng blows up his file manager moving all of the files with python.13:58
mathrickdato: ah, that's basically what bash's builtin time does :)13:59
datoah, oh :)13:59
PengI've been meaning to check out zsh instead of bash.13:59
PengSigh.14:01
mathrickguess what, it's still running14:01
PengI think I really did freeze my file manager.14:01
mwhudsoncommand-not-found --> bash wins14:01
mathrickGod, I hope it has runtime <= 30 mins14:02
PengOh nice.14:02
mathrickI might add it pegs the CPU while it's running, too14:02
Pengps says it's using 0.1% of the CPU. top says it's using 99.9%.14:02
mathrickso there's definitely something wrong going on14:02
Pengmathrick: Don't kill it! It's running Folding@home!14:03
mathrickPeng: more like Removing@tmp14:03
PengThat still helps solve cancer, right?14:04
mathrickI don't think it does14:04
PengHopefully Konqueror will be faster than bzr.14:04
mathrickheh14:04
PengCraap.14:04
mathrickPeng: y'know, if it does something exponential, it probably won't finish within my lifetime14:05
mathrickeven just O(n^2) is pretty bad on n = 30K14:05
PengYay, Konqueror is done!14:07
mathrickokay, 20 mins, I'll kill it now14:11
mathrickokay, I've tracked the problem14:17
mathrickit's collecting the info about files14:18
mathricksince all are new and can't be safely removed, "bzr rm" will error out14:18
mathrickand some kind of info it's gathering there is taking forever14:18
mathrickif I add --keep, it's fast14:18
mathrickno --keep == exponential14:18
=== cprov is now known as cprov-lunch
statikis it possible to create my own location aliases similar to the lp: prefix for branches? so that instead of always getting a new branch by typing 'bzr branch bzr+ssh://foo.host.com/code/branchname' I could just type 'bzr branch me:branchname ?14:58
dleeStatik: The Bookmarks plugin might be what you want:  bzr branch bm:branchname should become possible with that.15:02
statikdlee: cool, thanks!15:03
CardinalFangIs this the right place to talk about bzr-gtk?15:22
CardinalFangI use the per-file commit comments, so there can be a lot of data.  I wish that there were a "cancel, but retain comments" option in "bzr gcommit".  Also, if I just "bzr uncommit", it would be nice if the previous comments were default in the UI for the next commit.15:25
=== cfbolz_ is now known as cfbolz
schierbeckCardinalFang: yeah, this is the place15:28
schierbeckI'm not quite sure I follow -- you want to cancel the commit, but still retain the per-file commit messages for the next commit?15:29
schierbeckI guess it's possible, although we'd need to store the messages somewhere.15:29
CardinalFangschierbeck, Yes, that's what I meant.  And when we uncommit, store those messages in the same place also.15:30
PengWhen you uncommit, the revision is not removed from the repository. You could store the revision ID somewhere and use it to get the message.15:31
CardinalFangAh, good to know.15:31
schierbeckPeng: yeah, we could do that... but to be honest, this stuff should go into bzr itself, or maybe a plugin15:32
schierbeckIt's a somewhat different work model15:32
schierbeckWriting per-file messages on the fly, and then committing after a while15:33
schierbeckBut yeah, a temporary solution would be to store the revision id, and clean it up after a completed commit15:34
schierbeckI'll have a look at it now15:34
CardinalFangschierbeck, I think we should capture the global commit message also.  All the state of gcommit saved and reloaded.15:35
schierbeckCardinalFang: yeah, but I think the easiest way to get started is to restore the commit messages after an uncommit15:36
schierbecklater on I'll figure out how best to do it with cancelled commits -- perhaps write them to the repository anyway, and save the revid15:36
schierbeckHoly crap15:43
schierbeckI've never looked inside commit.py before15:44
schierbeckWe actually implement just about everything ourselves15:44
schierbeckThat stuff really needs to be moved to bzrlib15:44
schierbeckCardinalFang: this'll need more work than I anticipated... could I get you to file a bug report? That way it'll be easier to keep track of the issues15:46
CardinalFangschierbeck, Sure.15:46
schierbeckThanks15:46
CardinalFangNo, thank you.15:47
schierbeck:)15:47
ubotuNew bug: #180107 in bzr "`bzr ls` should gain --modified and --added?" [Undecided,New] https://launchpad.net/bugs/18010715:56
mathrickmy bash completion for bzr broke :(16:02
ubotuNew bug: #180109 in bzr "gcommit should load default comments (from "bzr uncommit" and UI button "cancel but retain")" [Undecided,New] https://launchpad.net/bugs/18010916:05
CardinalFangschierbeck, ^16:05
schierbeckCardinalFang: got it! :)16:06
statikdlee: I've got a patch for the bookmark plugin to list the stored bookmarks. Should I send it to you, or luks?16:12
datostatik: hm, different to what `bzr bookmarks` does? :)16:14
statikdato: now, how did I miss that :(16:14
statikhmm, this might be polished still16:15
statikI think the bookmark name should be listed first16:15
datoit is, at least here?16:15
statikI get the path, then the short name16:16
statikit looks like the code is intending it to print the other way16:16
statikso, I still have a patch, it's just shorter :)16:17
* statik should learn to read more carefully16:17
PengThat bookmarks plugin is cool.16:18
datostatik: maybe you should double check with an unmodified plugin, I still see the plugin name first?16:18
PengThat was something I liked from hg.16:18
dato(but I only have 1 bookmark, so it may be that)16:18
statikdato: this isn't about the plugin name. its about what is output when I run bzr bookmarks16:19
statikthis fixes it16:19
statik-        for name, url in sorted(bookmarks):16:19
statik+        for url, name in sorted(bookmarks):16:19
datostatik:16:19
dato% bzr bookmarks16:19
datoforja                svn+https://forja.rediris.es/svn/csl2-minirok/trunk16:19
dato(err, s/plugin name/name/ in my line above, sorry)16:20
statikdato: I see. it prints the opposite way in revno 3 from http://bazaar.launchpad.net/~luks/%2Bjunk/bzr-bookmarks/16:21
statikdato: what revno do you have?16:21
datoI had 2, and pulled to 316:21
statikdato: then the only explanation is that I stored the data wrong when I first added a bookmark.16:22
statikand this whole thing has been me being confused16:23
datomakes sense16:23
datofrom ~/.bazaar/bazaar.conf:16:23
dato[BOOKMARKS]16:23
datoforja = svn+https://forja.rediris.es/svn/csl2-minirok/trunk16:23
statikyep, I have my bookmarks inside out16:23
ubotuNew bug: #180116 in bzr "bzr rm pathologically slow with new files and no --keep" [Undecided,New] https://launchpad.net/bugs/18011616:26
datojelmer: ping16:38
jelmerdato: pong16:38
datojelmer: trouble in bzr-svn paradise ;)16:38
datoI have minirok.dev, which I push to svn+https://....../trunk16:39
mathrickfunny, I just discovered bookmarks plugin today16:39
datoand I did svn mkdir https://..../branches; svn cp https://..../trunk https://...../branches/foo16:39
datoand b get minirok.dev minirok.foo16:39
datobut pushing from minirok.foo to svn+https://..../branches/foo won't work, is that expected?16:40
jelmerdato: What error do you get?16:40
datobzr: ERROR: These branches have diverged.  Try using "merge" and then "push".16:40
jelmerwhat does "bzr missing" say?16:40
datoAssertionError: Empty parent added, but child wasn't added !?16:41
mwhudsonoo-oo16:41
jelmeruhm, ok16:42
jelmerthat's definitely a bug16:42
jelmerwhat version bzr-svn is this?16:42
dato% cd .bazaar/plugins/svn && b revno16:42
dato82616:42
datoshall I pull?16:43
jelmerHmm, I don't think anything has changed since that could've fixed it.16:43
jelmerAny chance you can file a bug? Links to minirok.dev, minirok.foo and the svn repository would be very useful16:44
datook. in the meantime, I guess it's ok if I continue to commit in minirok.foo?16:45
jelmeryep16:45
dleeI doubt we have this yet, but ... Do we have anything for handling line ending conversions?  I just cvs-imported a 760+ revision CVS project that had been managed under Windows, but bzr co's now check out with LF, not CR+LF.  I did the co under Window+Cygwin, then another one under just Windows using the stand-alone Windows binary bzr.16:57
* dlee wishes everything including Windows could just use LF and be done with it :P16:58
mathrickI still don't understand why workingtree 3 uses so much bandwidth17:01
CardinalFangIt's dangerous to alter the data.  Is that file with ordinals 13 and then 10 a text file or a PNG image?  Oops, wrong choice.17:01
dleeCardinalFang: Yeah I know...otherwise I'd just ask for a co option to deal with it.  Svn used properties because of that problem, and CVS used something like a checkin-time "property."  I think line endings are on the ToDo list but not addressed yet; I'm mostly just verifying, while I try to figure out how to keep selling the Bazaar concept to my entirely Windows-based company that has been using CVS for about five years...17:04
CardinalFangdlee, Ah.  We're in the same boat then.17:04
mathrickdlee: CVS had a horribly broken solution for that, though17:05
mathricklike for most things17:06
dleehehehe17:06
mathrickgiven that more people seem to be awake now, anyone care to take a look at this patch: http://pastebin.com/m682e5b7e ?17:07
mathrickis this the correct way to remove diff_cmd_helper() use?17:07
mathrickI don't like the fact that I had to steal the whole spec_tree() from inside diff_cmd_helper()17:08
dleeIt worked well enough for us, *if* people remembered the required -kb on cvs adds of non-text files.  But that's a big *if* there.  I liked the svn property idea better, but I used "native," which operated about like CVS anyway.  (I did that to avoid having to put ^M at the end of every line when actually editing in an LF environment.)17:08
datojelmer: bug #18012817:15
ubotuLaunchpad bug 180128 in bzr-svn "Cannot push to a branch `svn cp'ied`" [Undecided,New] https://launchpad.net/bugs/18012817:15
jelmerthanks!17:15
CardinalFangI'm accustomed to creating a new branch that I expect to pull into several branches that never themselves merge.  How does one create a branch that is the greatest common ancestor of two branches?17:16
* mathrick doesn't really understand what CardinalFang said17:17
CardinalFang(Well, "never" is wrong.  One is a ostensibly a superset, but it may not have changes that have been added into the subset.)17:17
CardinalFang(Yet.)17:17
dleeCardinalFang: Verify this with more seasoned bzr users here, but I'd say bzr init-repo /path/proj, then cd /path/proj and bzr co projBranchThatWillAncestorNewOnes.  To make a descendant, from /path/proj, bzr co ancestorBranchJustMade newBranchName.17:20
CardinalFangmathrick, Suppose I have a v1.0 branch and a v2.0 branch.  I can't pull v1.0 to v2.0 because there are some things that others have added but are not yet added.  I know I can add to v1.0 and cherry-pick "merge -c" just one new revision, but is there a way to create a branch that has only changesets that are in v1.0 and in v2.0, so I can add a changeset to it and pull into both with no trouble?17:20
CardinalFang^not yet added^not yet merged to v2.017:21
mathrickCardinalFang: aha, first guess would be that bzr branch v1.0 common; bzr branch common v2.0 should work for you17:22
CardinalFangSo, if a branch is a set of changesets, I want to create a branch that is the intersection of two other branches.17:22
mathrickif you want a commit applicable for both, push it into common, otherwise, into v1.0 or v2.0 as needed17:23
dleeAh...I didn't know you had two already-existing branches; I thought you were doing this top-down (ancestor exists, then you spin off 1.0 and 2.0 from there).17:23
mathrickah17:23
mathrickCardinalFang: what branches do you have *right now*?17:23
mathrickand how are they related?17:24
CardinalFangmathrick, One was created from another.  v1 and v2.  Most work is in v1, and people don't always merge to v2 soon enough.  So, I can't pull from v1 to v2 without having to merge a bunch of stuff that I don't know anything about.17:25
CardinalFangSo, i can't add to v1 and pull.  Got it?17:25
mathrickaha, yes17:25
CardinalFangIf I can create a branch that can always be pulled into v1 and v2, then I can fix my bug there and pull into both at once.17:26
CardinalFangThen, I don't have to care that other people were sloppy about getting their v1 changesets merged into v2.17:26
mathrickis v1.0 a strict superset of v2.0?17:27
CardinalFangNo.  It's a subet, in a perfect world, but in reality, there's a delay between when someone adds to v1 and when they pull to v2.17:27
mathrickaha17:28
mathrickI don't know if there's a tool to do what you want to do automatically17:28
CardinalFangI'm beginning to think that the answer is cherry-picking.17:28
CardinalFangAdd rev12345 to v1 and then in v2, "bzr merge -c rev12345 ../v1"17:29
mathrickif one branch is reasonably close to the shared subset, you could branch the common off it, and then hack at it with rebase and selective uncommits until it looks like you want it to... I think17:29
mathrickCardinalFang: you have to be aware that cherry picks in bzr are *not* tracked right now17:30
CardinalFangEeek!17:30
dleeYou seem to want a justV1 place to commit, and a justV2 place, and a V1&V2 place.  I don't think you'd need an ancestor branch; v1 and v2 are already related.  This is a long shot into stuff I don't know so well, but would Rebase be of any use here?17:30
mathrickindeed17:30
mathrickdlee: I think rebase would be a tool towards building such a V1&V2 thing, but you need something to back out changes that should not be there17:31
mathrickI'm not sure how exactly you'd go about that, uncommit can't pull from the middle, and revert works on the text level, not revisions level17:31
CardinalFangmathrick, How about "merge -r big..small" to remove changesets?  Is that safe?17:32
mathrickCardinalFang: what are big and small exactly?17:33
dleeI remember there was a CVS add-on (forget the name) for automating the commits to multiple branches for this type of problem.17:33
mathrickahh17:33
mathrickCardinalFang: dunno, but now I think of it, bzr rebase --onto might do that whilst still preserving the history and identity of revisions17:34
mathrickunsure, the whole --onto thing is a bit magical17:34
CardinalFangHrm.  Time for some testing.17:34
mathrickbut it will be manual, unfortunately17:35
mathrickCardinalFang: if you have enough crap to deal with, you might consider writing a plugin I guess17:35
dleeIt occurs to me that this could probably also be handled by having multiple "parents" of one branch--i.e., commit in such a branch must clear more than one source branch before committing locally; but that also sounds like a mess to set up :)17:35
mathrickdlee: there was something called "multiparent" there in bzr.dev at one point, but it was completely undocumented and I have no idea what it really did17:36
dleehehe17:36
CardinalFangDang.  The tool I'm accustomed to has a command that gives the greatest common ancestor between the current and a specified location on stdout.  Then one can "clone -r`find-the-greatest-common-ancestor ../v1`" .  Very useful, that.17:37
mathrickahh, for that there's definitely support in bzrlib17:38
mathrickdunno about the UI17:38
dleeMathrick: ...but I bet the bzrlib support only works on tracked stuff; cherrypicking would break that, no?  I think you'd have to do text compares otherwise, to figure out what v1 changesets equal what v2 changesets.17:41
mathrickdlee: no, changesets have identity17:42
CardinalFangI'm not using cherry picking.  I thought it was a solution to that problem, but now I don't.17:42
dleeNice!  I'm still figuring out the cherrypicking history issues; I guess they're not quite as bad as I thought.17:43
mathrickCardinalFang: I dunno how easy it is to produce a tree that's the intersection of A and B from bzrlib. But given it's the base of all merges, it should be doable17:43
mathrickdlee: ah, no, cherrypicking does break stuff17:43
mathrickbut CardinalFang wasn't cherrypicking between V1 and V217:43
* CardinalFang nods.17:43
mathrickuh-huh, bzr rebase is quite dangerous17:45
mathrickit just went to happily destroy my test tree17:45
mathrickjelmer: poke?17:48
dleeNew issue:  I asked yesterday how to append one bzr repo to another.  Motivation: trying to combine a CVS history for proj1 with an SVN history for later workk on the same proj1.  Also, I want to rebuild a (so far unused) Bazaar repo that I initially built with Tailor but want to build with cvsps-import (to get tags), but there are subsequent bzr-only commits in it, so I'd have to cvs-import and then copy a stack of bzr commits on top of 17:48
mathrickdlee: there was a graft plugin, but it's very much outdated17:49
mathrickI dunno if there's any successor to it17:49
mathrickI dunno if you can even get the source anymore17:49
mathrickdlee: http://spacepants.org/src/bzrgraft/17:50
dleethanks17:51
mathrickI wonder if I can make bzr shell make execute scripts17:56
mathrickwtf17:58
mathrickhttp://bazaar.launchpad.net/~bzr/bzr-dbus/trunk gives 40417:58
jelmermathrick, pong18:05
jelmermathrick, even "bzr rebase-abort" doesn't restore it?18:06
mathrickjelmer: lemme see18:06
mathrickjelmer: it does some very scary things in any case18:07
jelmermathrick: why?18:07
mathrickjelmer: and no, rebase-abort doesn't help18:07
mathricksec, I'll give you a test case18:07
jelmermathrick, what version of rebase are you using?18:08
mathricklemme see18:13
mathrickjelmer: unsure, it's a lightweight checkout, I dunno how to check the latest revision in my working tree in this case18:15
dleerevno still works in lightweights18:15
mathrickdlee: but it reports the latest *upstream* revision18:17
mathrickat least it used to18:17
mathrickmaybe that got fixed since 0.90 when I last tried18:17
dleeOh hehehe, I've never lightweighted a branch someone else was committing to, so I'd never know18:17
mathrickI use it for plugins, since I have no real interest in having my own branch, really, I just need an up-to-date copy18:18
dleeI do wish I had a way to get the revno of my local branch after a revert though...18:18
mathrickdlee: you can't, since revert works on text18:19
mathrickI ran into the same thing myself18:19
dleeDarn!18:20
dleeI wonder if any VCS' support a sort of grep that returns all revisions / revision ranges containing matches to a regexp.  Sounds really hard to do fast though, but I've often wanted that and never seen it offered.18:23
dleeI imagine it like grep, where instead of "filename:" at the beginning of each line, you'd have "revrange:"18:24
dleeactually revset, where a set could be one or more ranges, and a range could be a singleton18:24
mathrickbah, whole launchpad is broken18:24
mathrickyou can't download things18:24
mathrickdlee: yes, there's a grep plugin for bzr I think18:24
dleeUh oh, what'd I miss? * runs off to plugin page18:25
mathrickexcept that you won't get it, since launchpad is broken :(18:25
jelmermathrick: Any chance you can report a bug about the rebase issue you just ran into with a testcase ?18:25
* jelmer has been using rebase happily on a daily basis and knows of several other people who have18:26
mathrickjelmer: yes, I'm just trying to determine what rev I have18:26
mathrickI also ran into bzr reconfigure butchering my lightweight checkout today, I need to investigate that18:27
mathrickjelmer: aha, so apparently I had r69, which is the latest18:32
mathricknow for a testcase18:32
mathrickjelmer: http://pastebin.com/f77fd13fb18:41
mathrickwant me to write a bug report, or do you want to do it yourself?18:41
jelmerplease file it18:44
mathrickokay18:44
mathrickdone18:48
mathrickjelmer: is what I'm trying to do (ie. pretend that r3 happened immediately after r1, and there was no r2) sensible and supposed to work?18:48
jelmerthe way I read it you're just trying to remove r318:50
mathrickjelmer: oh, then I'm misunderstanding something18:50
jelmerrebasing revision 2 on top of 118:50
mathrickjelmer: right, that's because -r -2 always confuses me by its changing semantics18:51
jelmerI don't think there are any changing semantics there..18:52
jelmerthe last revision (3) is -118:52
jelmerthe previous-to-last (2) is -218:52
mathrickjelmer: well, yeah, but different commands interpret it slightly differently18:52
jelmermathrick: Can you give an example? afaik we're consistent everywhere there18:53
mathrickjelmer: yes, in a repo with 3 revs, bzr diff -c -3 shows changes for revision18:54
mathrick*revision 118:54
mathrickhowever, diffstat -r -2 and -r -3 shows stats starting from the same revision18:55
mathrickwhich is revision 118:55
jelmerThat makes perfect sense18:55
mathrickhowso?18:55
jelmerwell, not sure about diffstats behaviour18:56
jelmerbut that's not a core bzr command18:56
jelmerbut in a repository with 3 revisions -3 means revision 118:57
mathrickyes18:57
mathrickbut -2 should mean r218:57
jelmerit does, for bzr diff18:57
mathrickI wonder where the inconsistency comes from in diffstat18:58
jelmerI think the fact that diffstat supports "-r2" is a bug in itself18:59
mathrickjelmer: anyway, why would rebasing r2 onto r1 kill r3?18:59
mathrickjelmer: oh?18:59
mathrickit should do the same thing as diff18:59
jelmermathrick: It should accept -c2 or -r1..218:59
jelmermathrick: sorry18:59
jelmerI forgot -r2 has meaning as well19:00
jelmerdiffstat -r2 should report the changes between -r2 and the current working tree19:00
mathrickyes19:00
mathrickit does, except that it interprets -2 in an odd way19:00
jelmerthat's a bug in a single plugin, you can hardly blame the rest of bzr for that..19:01
mathrickit pretty much ignores the last rev19:01
mathrickjelmer: well, I know, it's consistent, just somewhat shifting conceptually depending on where you stand, not unlike the way how 1 is "different" in "asd"[:1] and "asd[1:]19:03
mathrickjelmer: in any case, why would rebasing r2 affect r3?19:03
mathrickjelmer: and I tried bzr rebase -r 3 --onto=1 .19:04
mathrickand it's a no-op19:04
mathrickI'd expected it to put r3 immediately after r1 in the history19:05
jelmermathrick: because you're only rebasing a single revision19:05
jelmerI guess you may mean "-r2.." or something19:05
mathrickoh?19:05
mathrickjelmer: so, "rebase -r X --onto=Y" means "throw away everything that follows Y in history, and make it say X instead"?19:06
mathrickand if I say -r2 for X, it replaces the whole history with that single revision?19:07
mathrickjelmer: and why does it say "No revisions to rebase." when I do that>19:08
mathrick?19:08
jelmerthat's the bug19:08
jelmerit shouldn't abort early and print that error19:08
mathrickjelmer: ah, besides, that error message is missing a \n19:08
jelmerother than that, it looks fine19:08
mathrickjelmer: but then bzr rebase -r 3 --onto=1 . is buggy19:10
jelmerno, that makes sense19:12
mathrickthen I'm not getting it19:12
jelmer-r3 means it will rebase the revisions up to r319:14
jelmer*up to and including19:14
jelmer-r1..3 means it will rebase revisions in that specific range19:14
mathrickurk19:15
jelmer?19:15
jelmeralso, using rebase on "." usually doesn't make any sense19:15
mathrickjelmer: see, that's why I said changing semantics :). Sometimes it means "up to and including X", sometimes it means "starting from X", and sometimes it means "exactly X"19:15
mathrickjelmer: I want to effectively remove r2 from the branch's history19:16
jelmermathrick, I don't think that's confusing. It's the same way how merge works19:17
jelmerPerhaps you want something like "bzr rebase -r2..3 --onto 1 ." ?19:18
jelmerit may be necessary to run "bzr up" after that because of the bug you just reported19:18
mathrickjelmer: it doesn't appear to do anything19:20
jelmerand -r3..3?19:20
mathrickjelmer: it commits r2 and r3, but they end up in the same place they started in, so it's not a real change19:20
mathrickjelmer: that works, and results in a text conflict19:21
jelmerthat's right19:21
jelmersince the delta for r3 won't apply cleanly on r119:21
mathrickyeah, I guessed that, since r3 modifies r2, which ceases to exist, it will give errors19:21
mathrickjelmer: will the revision identity be preserved afterwards?19:22
jelmermathrick, the revision identity for r3 you mean?19:22
mathrickyes19:22
jelmerNo the revid for that will change19:22
jelmersince it's parent revids have changed19:22
jelmernot changing that would be a severe bug19:22
mathrickjelmer: hmm, so it's not really suitable for tree surgery which would remove individual revs preserving the rest?19:23
jelmermathrick: that's not really the use case for rebase.. you may want to have a look at 'bzr replay' (part of the rebase plugin)19:24
jelmerthat basically just does diff+patch+commit with original metadata19:25
mathrickjelmer: aha, and the revisions will be seen as identical for purposes of calculating merges?19:27
jelmerno19:27
jelmerthere's no way to do that19:27
jelmerrebase and replay will store metadata indicating what revisions they were originally based on19:28
jelmerhowever, they are not identical copies of those revisions and shouldn't be treated as such by merge. merge may be able to use that metadata in some way, but doesn't at the moment.19:29
mathrickjelmer: hmm, so there's no way of doing what CardinalFang wanted (ie. create a tree that only has changes common to A and B)?19:30
mathrickjelmer: "merge using that metadata in some way" would be tracking cherrypicks, right?19:30
jelmerbasically, yes19:30
mathrickjelmer: so, if A and B share all revisions up to some revision R1, and afterwards there are revs that are sometimes in both, but sometimes only in one of them, the best you can do is split out the common tree up to R1, and there's no way to have a tree that would have the later commits that are present in both?19:34
mathrickthough that seems wrong to me, my understanding would be that constructing such a tree is necessary for properly carrying out merges19:35
jelmermathrick: how do you define "commits present in both"?19:40
jelmercommits with the same diff that have been applied to both trees?19:40
mathrickjelmer: sec, I'm drawing up a graph for that, and then we can ask CardinalFang if that's what he actually meant19:41
jelmerYou could make those commits in a separate tree C and merge that into A and B19:41
jelmerwhere C could start out with R119:41
lifelessmoin19:42
jelmer'morning lifeless19:42
CardinalFangjelmer, The use case:  You have two sister trees, neither of which is a subset of the other.  You find a bug common to both and you want to fix it as easily as possible, without otherwise altering the sister trees.19:43
jelmerCardinalFang: that is the basic use case for cherry picks19:44
mathrickjelmer: but cherrypicks break merges19:45
CardinalFangAgreed, cherry picking would solve it.  But that introduces other problems, yes?19:45
fullermdWell, or for daggy'ing it.19:45
jelmermathrick: How do they break merges?19:45
mathrickjelmer: cherrypicks are not tracked, so they will introduce textual conflicts, no?19:45
jelmermerge treats cherrypick commits as ordinary commits at the moment19:45
jelmermathrick: Merge will recognize the fact some revisions are cherrypicks, but from what I understand, CardinalFang is not merging between those trees anyway19:47
mathrickbut I think he wants to at some point19:47
CardinalFangThe SCM I use now, which is made by a notoriously litigious organization who shall not be named, provides a "repogca" command, which returns the "greatest common ancestor" of two trees, which one uses to branch off a tree that can be pulled into either.19:47
mathrickjelmer: will it recognise the fact they are present in the tree already?19:48
jelmermathrick: No, that's what tracking cherrypick information is about.19:48
mathrickright, so merge does not really recognise cherrypicks19:48
jelmerCardinalFang: that would be possible with bazaar as well19:48
CardinalFangYes, the two trees are constantly merged.  But with more than a hundred people committing /all the time/, we can't sit on our hands if one person falls behind.19:48
mathrickCardinalFang: okay, so what kind of change can make V1 unmergeable into V2?19:49
CardinalFangLack of knowledge.  If there's a conflict in some dark corner of the code that only Joe and his acolytes know about, then I don't feel comfortable making decisions about what stays and what gets pruned away.19:50
mathrickCardinalFang: aha, and your current VCS can cope with that? Ie. track cherrypicks?19:51
CardinalFangNo. Not at all.19:51
CardinalFangBut it can give me a tree that has only common changesets in it.19:52
mathrickCardinalFang: uhh, but that's not very useful unless you can arrange for pulls that aren't contiguous wrt. to the source history (ie. cherrypicking)19:53
mathrickCardinalFang: let's sum up19:53
fullermdWhat he means is that there's a convenient command to set up a daggy fix.19:54
* CardinalFang googles "daggy"19:54
mathrickCardinalFang: google mercurial together with it19:55
fullermdThere isn't one in bzr currently; you'd have to manually poke around 'missing' or something to find the GCA.19:55
fullermdmonotone, actually.  Nice page on their wiki.19:55
mathrickahh19:55
mathrickCardinalFang: V1 is at R1, V2 is at R1'. At this point, V1 is cleanly mergeable into V2, right?19:55
mathrickCardinalFang: now there are two commits into V1, R2 and R3, and a commit R2' into V2. R2 conflicts with V2, but R3 doesn't. You want to pull R3 only, and leave R2 to be solved later, right?19:57
jelmerlifeless: any chance you can sponsor an upload of bzr-pqm to Debian?19:57
mathrickby "conflicts with V2" I mean "can't be merged into V2 without conflicts"19:57
CardinalFangmathrick, I'd rather not merge anything at all.  I have an urgent bug to fix that is present in all trees.19:58
CardinalFangIf I don't fix it in 20 minutes, the Sun explodes.19:58
fullermdWait, let me get my camera.19:59
CardinalFangfullermd, You have at least another 8 minutes, from this distance.19:59
mathrickCardinalFang: okay, and how do you do that with your current tool (and what is that tool, if I may ask)?20:00
fullermdSo what you want to do, is create a new branch from the LCA, and do the fix there, so it'll merge just fine into both sides.20:01
CardinalFangmathrick, With my current tool, I think it creates a tree that is only R1.  I can create a new changeset R4 and pull that into V1 and V220:01
mathrickCardinalFang: aha20:02
CardinalFangfullermd, Yes.  (Though I think it's "greatest" instead of "least", in the domain I'm thinking about.)20:02
fullermdI think it's usually expanded "latest" aroudn here.20:02
CardinalFangAh.20:02
fullermdThere's no command to give you it directly.  The quickest way is probably 'missing', then pick the rev before the earliest in both lists.20:03
CardinalFangfullermd, Hmm.  Perhaps I could write a plugin to do that.20:04
fullermdProbably.  I don't think it would be terribly difficult.20:04
fullermd[3-way] merge already does it after all; you could just steal the code from there.20:05
fullermdMay even be a function that does it you could just call and display.20:05
mathrickCardinalFang: if you had a parent, and at R0 V1, V2 and C were branched off it, then A had R1, C1 (merged from C), R2, and V2 had R1', C1, R2', would repogca create a tree that ends with R0, or would it have R0, C1?20:11
CardinalFangmathrick, Good question.  I'll try it.20:11
CardinalFangfullermd, FWIW, graph.py says "least."  :)20:14
CardinalFangSorry, "lowest".20:14
fullermdWe should declare once and for all that it stands for "lambada".20:21
fullermdIt may not mean anything useful, but it should lead to some really fun questions.20:21
mathrick*lambda20:21
mathrick:>20:21
fullermdNo, I meant lambada   :p20:21
CardinalFangllama20:21
fullermdlambda is too close to actually meaningful.20:21
mathrickCardinalFang: anyway, if you write a plugin, it should be doable to get a tree that ends with R0, C1, since that's the tree merge has to construct when you say cd B; bzr merge A20:25
lifelessjelmer: good chance; this arvo probably20:30
ArjenHi, is the benchmark script available somewhere?20:33
mathricklifeless: can I trick you into looking at my short patch that removes diff_cmd_helper() use?20:33
mathrickI need someone with a clue if that's the way it's supposed to be done20:34
lifelessnot now; coding. I'll come up for air when Lynne gets up probably.20:35
lifelessso in a couple of hours20:35
mathricklifeless: okay then, I guess I'll just submit it upstream and wait for review there, I'll be sleeping in a couple of hours20:36
mathrickmathrick@hatsumi:/tmp/rebase$ bzr reconfigure --branch20:38
mathrickbzr: ERROR: Repository KnitRepository('file:///tmp/rebase/.bzr/repository/') is not compatible with repository KnitRepository('http://people.samba.org/bzr/jelmer/bzr-rebase/.bzr/repository/')20:38
mathrickhuh?20:38
jelmerrebase is using dirstate-with-subtree20:39
jelmerlooks that's confusing reconfigure20:39
mathrickit's a lightweight checkout which I converted from knitpack to knit (since it was erroring out about KnitPackRepository being incompatible)20:39
mathrickjelmer: oh20:39
mathrickthe fact that reconfigure does not do a checkout is horribly confusing20:41
mathrickit looks as if it just ate your tree20:41
lifelessmathrick: I filed a bug last week on this; you might compare and see if its the same21:05
ubotuNew bug: #180196 in bzr "bzr reconfigure gets confused by dirstate-with-subtree" [Undecided,New] https://launchpad.net/bugs/18019621:06
mathricklifeless: I can't find it, care to give a bug#?21:10
ryanakcawhy is it that when I go "bzr up" on a local (well, ssh'd to server) branch, I get the following error message?21:54
ryanakcaUsing saved location: http://bazaar.launchpad.net/~...../21:54
GoClickDoes bzr store all it's information is a million .bzr folders like svn?21:55
ryanakcabzr: ERROR: Cannot lock LockDir(http://bazaar.launchpad.net/~...../.bzr/repository/lock): Transport operation not possible: http does not support mkdir()21:55
mathrickGoClick: ?21:55
Odd_BlokeGoClick: No.21:55
mathrickGoClick: you mean an .svn dir in ever subdir?21:55
* ryanakca isn't uploading... so it shouldn't matter if http can or can't make a directory...21:55
mathrickno21:55
GoClickmathrick:  yeah21:56
Odd_BlokeGoClick: There is a single .bzr directory for your branch.21:56
GoClickgood21:57
* mathrick wonders if there's anything about SVN that's strictly better than bzr21:58
Odd_Blokemathrick: It's faster for a lot of things. :p21:58
fullermdPartial checkouts.21:58
jelmermathrick: eol-conversion support, better performance for large binaries, cherrypick tracking, ...21:58
mathrickOdd_Bloke: by not doing things, that's like being really fast at writing to /dev/null21:58
mathrickjelmer: it tracks cherrypicks how? Last time I checked, SVN had no merge support21:59
GoClickWe put a lot of binaries in our version control as is, will that be a problem?21:59
fullermdThat means cherrypicks can't screw up merges   ;)21:59
foommathrick: but if you want to write to /dev/null, it sure would be nice if it went fast, instead of slow.22:00
jelmermathrick: 1.5 has22:00
jelmermathrick: svn has always had merge support, just hasn't had merge /tracking/ support until 1.522:00
mathrickfoom: sure, but it's not a reason to say "my foo is better than yours, since it's really fast at writing to /dev/null, whereas yours takes a lot of time to write to screen"22:00
mathrickjelmer: aha, so you can finally merge branches in a sane way and it doesn't kick you in the nuts harder for doing it often?22:01
jelmeryup22:01
jelmerthat's 1.5 only though, which was supposed to be released 2 years ago or something..22:02
foomactually i think only 2 months ago or something22:02
foombut when i last skimmed the mailing list it didn't look too promising22:03
foomi'd sure like to be able to switch to bzr sometime soon. :)22:03
mathrickfoom: not being punished for merging would be pretty promising in my book:)22:03
jelmerfoom: They've always been pushing the deadline further forward22:03
foommathrick: i mean, the chance of a release coming soon wasn't looking good22:03
jelmerfoom: When I originally started on bzr-svn 1.5 was also "almost done"22:04
jelmerThat's more than 2 years ago now22:04
mathrickfoom: do like I do, use bzr-svn to manage your code, this way instead of putting up with stupid buggy SVN crap you will help bzr-svn maintainers discover new ways to improve their quality ;)22:04
* mathrick runs22:04
fullermdOTOH, you keep finding new bugs in the python bindings, so...   :p22:04
foommathrick: that's the plan, but bzr is too slow right now22:04
mathrickjelmer: so it's still not released?22:05
mathrickfoom: only in the initial checkout, or do you mean something else too?22:05
mathrickthe checkout thing is mucho painful because you can't horizon the history22:05
jelmermathrick: svn 1.5 ? Nope, and doesn't look like it's going to be released soon either, at least not within the next couple of months.22:05
foommathrick: log is excessively slow at the moment22:05
mathrickjelmer: oh, I see, I thought you were talking about actual shipped SVN now22:06
=== cprov is now known as cprov-away
lifelessfoom: local or remote. Please file a bug if it's remote, tagged hpss22:06
foomlifeless: local22:06
mathrickfoom: dunno, it's being pretty fast for me, and I have repos with 3K revs with 2K-revs merges along the way22:06
fullermdlog -v is downright vicious.22:06
mathricklifeless: what does hpss mean?22:06
foomlifeless: i saw a bug already filed about log getting slow in pack format repos22:06
lifelessmathrick: smart server22:06
mathrickoh right, I didn't try it with pack yet22:07
mathricklifeless: and hp?22:07
mathrickhigh perf?22:07
lifelessfoom: there is a slow down22:07
lifelessmathrick: yes22:07
lifelessfoom: but it should still be plenty fast; are you just doing 'bzr log' or -v or other optoins?22:07
foomlifeless: time bzr log -r30000 [waiting]22:08
foomreal    0m35.296s22:08
foomuser    0m28.513s22:08
foomsys     0m0.234s22:08
foomi'm sure if i was using a 3krev repo it'd be fine.22:10
jelmer14k revs is 5 seconds here22:10
lifelessfoom: using packs?22:10
* mathrick wonders what git would score on that22:11
foomlifeless:     repository: Packs containing knits with rich root support22:11
mathrickit's awesomely fast to be sure22:11
fullermd-v will slaughter you even with 3k revs.22:11
jelmeryeah, -v is slow as hell22:11
mathrickOTOH, with bzr I'm able to figure how to un-add a file, with git, I'm not...22:11
foom     43276 revisions22:12
foom    599396 KiB22:12
fullermdWith a ~1800 rev tree, 'log' runs in 1.7 seconds.  -v has passed the 3 minute mark so far, and broken 120 meg of RAM usage (impressive, since .bzr/ is only ~16 meg)22:12
fullermdOh, there it finished.  225.5 user seconds, half a second of system time.  3:48 wall.22:12
lifelessfoom: how many packs do you have ?22:13
lifelessfullermd: -v will get better before too much longer, but its a disk change22:13
foomjust count the files in .bzr/repository/packs?22:13
foom24.22:13
lifelessfoom: yeah, or cat .bzr/repository/pack-names22:14
fullermdlifeless: And one I look heartily forward to, especially if it lets me 'log' more than one file at a time too.22:14
foomit says 2222:14
lifelessfoom: you've had some interrupted uploads then22:14
lifelessdo a ls -lS of the packs directory22:15
lifelessis there a good size distribution ?22:15
lifelessalso you may find log gets faster if you do 'bzr pack'22:15
ubotuNew bug: #180207 in bzr-eclipse "Creating project from bazaar branch" [Undecided,New] https://launchpad.net/bugs/18020722:15
ubotuNew bug: #180208 in bzr "commit failed because of lack of disk space but with unclear message" [Undecided,New] https://launchpad.net/bugs/18020822:15
foomlifeless: yeah, bzr-svn crashed my machine while importing because it ran it out of ram.22:15
foomand the kernel OOM killer decided to kill everything *else*22:15
lifelessOOM FTW22:15
jelmerfoom: That bug has been fixed since22:16
jelmerfoom: http://subversion.tigris.org/issues/show_bug.cgi?id=305222:16
foomjelmer: yeah, i saw22:16
mathrickhmm, you can't uncommit a single revision in the middle, right?22:23
thumpermathrick: right22:26
thumpermathrick: it is my understanding that you uncommit the latest commit22:26
mathrickhttp://bazaar-vcs.org/BzrVsHg#head-b92d4fdb6541abcf14ea53686e4bccc9f7b6ffa5 seems to suggest that bzr can indeed do that22:27
mathrickor so I read it at least22:27
foomlifeless: anyhow, yes, there's a good distribution of sizes, the biggest is 245595344 and smallest is 1875 and there's lots in between.22:28
foomlifeless: after bzr pack, it is down to 4.421s22:28
fullermdI think that page is misleading; bzr uncommit is only very vaguely related to hg rollback.22:28
fullermduncommit removes a rev (or more precisely, changes the head).  rollback, AIUI, creates a new rev with opposite changes.  It's more like bzr merge -rx..x-122:29
foomlifeless: still slow, but only 4x slower than svn instead of 30x.22:29
mathrickfoom: that would be a bad distribution if they differ in sizes greatly22:30
mathrickI believe22:30
lifelessmorning poolie22:35
lifelessmathrick: they are meant to differ geometrically22:36
mathrickah22:36
pooliehi lifeless22:38
lifelessfoom: ok; feel free to find out whats slow then ;) I don't feel like downloading a 1/2 GB repo to find out :]22:38
igcmorning23:01
lifelesshi igc23:02
igchi lifeless23:02
foomlifeless: is the 7x slowdown to be expected for 22 pack files vs 1, then?23:03
lifelessfoom: pack orders the revision xml texts topologically23:06
lifelessfoom: so you do ascending IO within the pack, which linux likes a lot.23:07
foomlifeless: sure but it's CPU time being spent.23:08
lifelessfoom: possibly index layer stuff then, which is on the todo23:12
ecasbashi, I am having a problem creating a local repository, the setup is like: http://wiki.squid-cache.org/Squid3VCS#head-a70c042fb73ac3863a0fd32ff452b59279ff703023:21
ecasbasat the momment of: bzr branch $TRUNKURL ~/squid-repo/trunk23:21
ecasbasI get: bzr: ERROR: Unknown branch format: 'Bazaar pack repository format 1 (needs bzr 0.92)\n'23:22
ecasbasBazaar 0.90 / Ubuntu 7.1023:22
jelmerecasbas: you need a newer version of Bazaar23:23
jelmerat least 0.92 or higher23:23
ecasbasok, thanks then I'll download the 1.023:23
ecasbasthanks jelmer23:23
ecasbasthanks very much, the 1.0 worked perfectly!23:29
lifelessperfect example of our clear format strings not being enough lol.23:34
poolieI suspect many "they change formats too often" complaints are really "the changes are too bumpy"23:40
foomthat error seemed pretty clear to me, unlike the ones that say KnitRepository isn't compatible with KnitRepository or w/e. :)23:43
fullermdWell, the changes aren't all that bumpy (at least, they're reasonably close to the irreducible limit of bumpiness)23:46
lifelesspoolie: I agree with your statement if you change 'too bumpy' to 'we talk about it' :)23:51
fullermdI know I've seen several bumps in mtn, and it just wouldn't do anything 'till I told it to upgrade.23:52
fullermdGoing across bzr bumps works OK (well, repo changes are usually **SLOOOOW** to work across, but they work, and you can keep working locally without the upgrade)23:52
jelmerimho bzr upgrade is too slow, that's in fact the reason I haven't upgraded a lot of my branches yet23:53
fullermdA big bump is that inter-repo-format work is so slow that practically, upgrading that means you need to flag day _every_ branch of the project.23:55
lifelessjelmer: to packs ?23:58
lifelessjelmer: its the time to clone, no more.23:58
jelmerit's actually reconcile that was the most problematic23:58

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