/srv/irclogs.ubuntu.com/2008/06/06/#bzr.txt

lifelesshi poolie00:01
awilkinsHey, how come there's a VCS flamewar going on on Slashdot and no-one mentioned Bazaar so far ?   http://bsd.slashdot.org/article.pl?sid=08/06/04/174923300:04
lifelessbecause we actually do stuff?00:06
awilkins:-P00:07
RAOFHeh.  Begins switch to subversion.00:09
awilkinsIt is a step up from CVS, I suppose (although someone points out all the core devs use Perforce00:10
lifelessits worse than cvs in many ways00:10
lifelessits user model particularly00:10
lifelesshowever, it scales better than cvs00:10
RAOFBut it's easier to work with svn than cvs in a dvcs, I believe.  So it's a step up in that respect :)00:11
lifelessRAOF: not at all00:11
lifelesscvs these days has atomic changesets believe it or not00:11
RAOFlifeless: So my lack of exposure to bzr-cvs is due to my lack of exposure to cvs?00:12
lifelessno, its due to old cvs data still being a pillock ;)00:12
RAOFRight :)00:12
lifelessbzr cvsps-import does exist and do a decent enough job though00:12
lifeless(my point being that you could just cleanup the tree and go from there)00:13
lifelessoh, also don't forget cvsup - distributed cvs ;)00:13
lifelesspoolie: call over ?00:13
jamlifeless: not quite yet00:14
lifelessbbiab00:14
=== mw is now known as mw|out
lifeless-> doctors, back, well, later00:54
ZelutI would like to create a bzr trunk on a private server to backup my home folder. Can anyone point me to some docs on how I might do that?01:29
kumi_Zelut: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#branching-a-project01:32
bob2I don't think bzr is a very good solution for backing up your whole home dir01:33
Zelutbob2: well mainly what I'm looking for is archiving and tracking my .folders, and upon a fresh install just being able to branch my ~ and be done.01:34
=== BasicTheProgram is now known as Basic
bob2storing all your config files and documents etc works well, though01:34
Zelutbob2: seems simpler to branch that and get my .ssh, .gnupg, etc than manual backup/restore each time.01:34
bob2I'd be weary of putting ssh and ngupg private keys in, but I do version all my dotfiles01:36
Zelutbob2: kind of like /etc/skel I guess, but just requires branching.01:36
bob2er, wary01:36
ZelutI've been using bzr with LP but I'm unsure how to create a trunk on my own machine is the main problem.01:38
mwhudsonZelut: bzr init path/to/branch01:39
Zelutmwhudson: lets say I've got a folder locally that I want to push to a remote server and then be able to branch from remote in the future, what else do I need?01:40
mwhudsonbzr init in the folder01:40
mwhudsonbzr add to add the contents of the folder01:41
mwhudsonbzr commit to record these files01:41
mwhudsonbzr push to the server01:41
mwhudsonthat's it01:41
ZelutI swear I had done that before but all I have on remote is .bzr with no contents.01:41
bob2that is indeed what push does01:42
bob2unless it is pushing to a local directory01:42
bob2you can a) leave it, since you can still branch from that remote one fine, b) manually 'bzr co' in the remote dir after each push or c) install the 'up-afte-rpush' plugin that does b automatically01:42
Zelutso I could branch from remote and get those files, even though they are not listed there?01:43
bob2(https://launchpad.net/bzr-push-and-update)01:43
bob2yup01:43
Zelutinteresting.  I figured I had done something wrong because I didn't see anything on remote.01:44
Zelutwell how 'bout that. bzr co and its all there.  bzr is some magical voodoo :)01:45
Zelutis there a preferred method of defining bzr whoami? .bashrc or..?01:51
bob2using bzr whoami01:52
ZelutI mean, does 'bzr whoami joe hacker <email@server.org>' define it long-term or per-session?01:53
bob2it writes it to ~/.bazaar/bazaar.conf (so per-machine)01:53
Zelutperfect.01:54
pooliespiv: if mhammond comes up here in the 16th do you think you'll be free?01:59
spivpoolie: yes02:02
jmlpoolie: has there been a change in plans?02:11
pooliejml, he can't get a meeting room at the hotel that week02:13
poolieso we can either meet at my house or postpone it02:14
jmlahh ok.02:14
pooliejml, were you wanting to come for most of that time02:14
jmlpoolie: yeah, I was.02:14
pooliespiv, jml, how would the week of the 23rd be?02:15
jmlpoolie: pretty god.02:15
jmlgood.02:15
* jml smiles02:15
spivpoolie: that's fine too02:18
lifelessback02:44
emgenthi lifeless :)02:44
lifelesshi02:46
poolieoh you're back already? time flies02:48
lifelessgot lucky, only 10 minute wait02:49
jmlthat is lucky02:54
jmlin fact, if you had witnesses, I'd suggest sending an email to the Guinness Book of Records :)02:55
lifelessfor that doctor its amazing03:12
lifelessusually 2-3 hours03:12
=== thumper_laptop is now known as thumper
mneptoklifeless: yes, please do (continued from -ops)03:31
mneptokO:)03:31
lifelessterrible man03:31
mneptoklifeless: although my personal motto is "non universim sed singulatem fretus," which has a far more lapidary tone.03:32
lifelessSempre utor ubi-bracae perhaps03:33
lifelessalso mneptok whats with the no-idling attitude?03:41
mneptoklifeless: channel rules03:51
mneptoklifeless: i have no idea what caused their creation, though.03:52
abentleylifeless: Any thoughts on whether it is kosher to mutilate the in-memory inventory of a DirStateRevisionTree?03:54
abentleyI.e. to feed it to apply_inventory_delta?03:55
lifelessmmm03:56
lifelessso what we do is try to either modify the dirstate, or the inventory, but never both03:56
lifelessthe inventory is re-flattened on unlock() if it has been modified (as checked by a flag in WorkingTree4)03:56
lifelessthats for the wt; uhm for a rev tree03:57
lifelessthe in memory inventory is cached03:57
lifelessif you modify it, other callers asking for it will get the same modified inventory. This could be bad.03:57
abentleyHalf of igc's branch speed gain comes from using the existing InventoryEntry objects, rather than re-calculating the data from the TreeTransform and working tree.03:59
abentleyIs there a way to do this safely?04:00
lifelessthis is new clone ?04:00
lifelessor build tree?04:01
abentleyThis is build_tree.04:01
lifelesswhere is the dirstate rev tree coming into the picture? (I would have thought we grabbed a repository inventory ...)04:01
abentleyThe dirstate rev tree is the basis tree of the branch we are branching from.04:02
abentleyWhen that revision isn't available as a basis tree, we do use a repository-backed RevisionTree.04:03
abentleyIf the source branch has a working tree that we can use, we use it to retrieve files from disk instead of the repo, which I've benchmarked as faster.04:05
lifelessok04:06
lifelessso what do we need from the inventory - do we have an iterator we can use without upcasting from dirstate to a full inventory in the first place ?04:06
lifeless(making an inventory is slow in the first place)04:06
lifelessI realise I'm not directly answering the question. To directly answer it - add a private method to detach the inventory from the dirstate rev tree, then you own it can do $whatever you want to.04:07
abentleyWe are using iter_entries_by_dir which I don't believe creates a new inventory.04:07
abentleyBut if the cost of generating an inventory is in constructing the objects, then it's just as expensive.04:08
abentleyWhich is an unavoidable cost.04:09
abentleyGiven the input requirements of apply_inventory_delta.04:09
igcabentley, lifeless: the meta-question I had while profiling local branch creation was ...04:11
lifelessthe major cost when I looked deeply at inventories was simply creating xK objects and stitching them together04:11
igcgiven a pristine local mirror, can you reuse the source dirstate to get the target one fast04:11
igcboth apply_inventory_delta and set_parent_trees suck when run on an OOo tree04:12
abentleyigc: pristine shouldn't matter.04:12
lifelessin principle you can copy the dirstate basis column to an output dirstate with a iterator and filter (to remove renamed/deleted/added rows) duplicating entries to create current-disk values04:12
lifelessigc: apply_inventory_delta should be good because it generally has to deal in 10's of objects not 10's of K of objects04:13
igclifeless: on branch, the delta is the whole 100K entries04:14
abentleylifeless: apply_inventory_delta is used by build_tree when creating inventories from scratch.04:14
lifelessyes, I can see that. to me this comes back to 'python is slow, whats the best way to work around it'04:15
abentleysubprocess.cmd('cp -a')04:15
lifelesssome benchmarks might be good to check I actually drew the right conclusions (e.g. create a 100K inventory 50 times)04:15
lifelessabentley: I mean of the python primitives we have available'04:16
* igc lunch04:18
abentleyI can tell you that when building emacs, WorkingTree4._get_inventory is 2% of total runtime, and apply_inventory_delta is 3%.04:19
abentleyThat's according to kcachegrind, of course.04:19
lifelessrighto, step 1 - gather stats :P04:19
lifelesshow big is emacs btw ?04:19
abentley400M04:20
abentleySorry, 105M04:20
abentleyWith my current patch, actually reading and writing the tree files dominates.04:23
igcthat's good04:23
igcI was seeing 20-25% on the iter_changes over the accelerator tree04:24
abentleyThat's bad.  I haven't changed anything that should have affected that.04:26
igcabentley: there's a mozilla repo in http://people.ubuntu.com/~ianc/benchmarks/repos/bzr/ that I was profiling against fwiw04:29
igcit's a good size without being crazy04:29
abentleyigc: Thanks.  I'm pulling that down.04:38
abentleyI also worry that we might be optimizing for the wrong case.  We tend to benchmark against hot cache.04:38
abentleyBut when branching, the branch source is likely to be cold cache.04:39
lifelessI would expect branch source and repository to both be cold04:43
lifelessabentley: you know you can drop caches right?04:43
abentleyYep.04:43
igcabentley: I agree that cold cache is the more important time04:59
abentleyigc: Which have you been testing?05:00
igchot cache is important though: it's what most people benchmark the tools on, and it highlights what we have most control over05:00
igcio patterns aside05:01
igcI've been using hot cache05:01
abentleyWhat would cause our extensions to get compiled with -Wall?05:12
PieterCFLAGS=-Wall05:17
abentleyPieter: It's not set.05:18
jameshabentley: see /usr/include/pythonX.Y/config/Makefile05:20
jameshdistutils gets some flags from there05:20
abentleyjamesh: Thanks.05:20
jameshincluding -fno-strict-aliasing and other necessary ones05:20
abentleyTurned out that wasn't the problem after all.05:20
abentleyIt was the lack of libc6-dev...05:21
jameshactually, that should have been /usr/lib/pythonX.Y/config/Makefile05:21
igcPieter: apologies for not getting to your fastimport/export questions/improvements - knee deep in the stacked branches reviews right now. Will do soon though.05:44
lifelessspiv: ping05:54
spivlifeless: pong05:57
lifelessoh, ringing you :P05:57
spivlifeless: oops, my cheek mashed the "hang up" button06:36
igclifeless, poolie: all the stacked branches reviews/tweaks sent to the ML now06:37
igcml: see test_branch_shallow_branch_also_shallow_same_reference() in the patch06:41
igcjml^^06:41
jmligc: has this changed from lifeless's branch of two weeks ago, or is this a difference between API and UI?06:42
beunomwhudson__, I know your day is about to finish, so these are the benchmarks against loggerhead trunk, your zpt branch, and my zpt branch, for the same 36k diff:  trunk, real 1m38.033s, 400mb+ RES mem.  Your zpt, real 0m35.243s, 220mb RES mem. My zpt, real 0m23.116s, 120mb RES mem.06:44
beunoso it's more like a 8x improvement to the current trunk06:45
beunoI can still shave a few seconds/mb off of it once I finish refactoring some un-needed operations, and it's missing tests. But it's looking good  :)06:46
igcjml: it doesn't look like the UI controls this so I'm guessing it done under the API - will dig06:47
* gour just read latest from bzr ml06:47
jmligc: the patch I sent you for clone() addressed just this behaviour.06:48
gourhaving gnome on bzr, won't be bad...06:48
jmligc: it's possible that I'm confusing things, given my relatively shallow (no pun intended) knowledge06:48
igcjml: I can't apply your patch yet sorry - I think it needs abentley's policy stuff first?06:48
jmligc: yeah, that makes sense. I was working against abentley's branch.06:49
jmligc: I've sent it to him to apply.06:49
Pietergour: I wonder how they decide06:50
jmligc: if he bounces me, then I'll redo it for bzr.dev once your patches have landed.06:50
* beuno is off to bed06:50
gourPieter: me too, but it's better that bzr become ready if something can be done with 1.6 release taking into consideration their needs06:51
goursee http://guadec.expectnation.com/guadec08/public/schedule/detail/8106:52
abentleyjml: That patch seems like it could do serious harm.06:52
Pieterseems a bit odd to rush a feature so that some party may perhaps choose bazaar06:53
jmlabentley: can you please elaborate?06:54
abentleyjml: If I branch, I expect to have everything I need.06:54
lifelessPieter: I'm not rushing the feature - I've been hacking towards all the bits coming together for months06:55
abentleyIf I push, the resources I have locally may not be available to all users.06:55
lifelessPieter: I'm trying to ensure its not stuck in trunk with 3 weeks to go at a point where it may be extremely relevant for discussion06:55
gourlifeless: sure. if stacked branches go into 1.6 and everything can be polished a bit, i do not object waiting for 1.6 some week more06:57
lifelessPieter: also, to invert things slightly, it would be strange not to work on the things that our users seem to want most :P06:58
jmlabentley: are we talking about my patch or the UI2 patch?06:59
gourotoh, having  big(ger) party using bzr is very good for bzr 'cause new  workflows and/or user-cases are explored leading to bzr improvement in general06:59
abentleyjml: Your patch.06:59
gours/bzr impr./bzr's impr.06:59
abentleyIt causes stacking without user intervention, no?07:00
jmlabentley: it preserves stacking without the users intervention07:00
abentleyTomato, potato.07:00
lifelessjml: preserving stacking is surprising, it doesn't fit our current behavioural model07:01
jmlabentley: ok. I don't pretend to have a deep understanding here but it seems like a good idea for 'BzrDir.clone' to clone07:02
jmllifeless: given that I wrote the patch based on your guidelines I'm more than happy to withdraw support for it if you no longer think it's a good idea, conditional on me understanding why.07:03
lifelessoh - clone() should clone() for sure07:03
lifelessabentley: bzr branch uses sprout07:03
abentleylifeless: push uses clone.07:03
lifelessabentley: yes; hmm07:04
lifelessso the case that identified this was 'how does launchpads hosting service clone a shallow branch most appropriately'07:04
lifeless(without rewriting clone())07:04
abentleylifeless: paramaterize clone to preserve stacking?07:05
abentleylifeless: Alternatively, does push *need* to use clone?07:06
lifelesswell clone fits push much better than sprout IMO07:07
lifelessactually, this is high up the merge stck07:07
abentleyNeither of them is exact07:07
lifelessI'm going to head-down and finish the current patch07:07
lifelessthen I will have many more cycles to think07:07
abentleylifeless: fairy nuff.07:07
abentleyjml: I can adjust the patch so the behaviour is optional.  Does that appeal?07:08
jmlabentley: it fits my use case, certainly07:09
jmlabentley: the deeper bzr model issues I can leave to the experts :)07:09
abentleydone.07:09
jmlthanks.07:09
abentleyjml: Your patch's stacked_on selection will be overridden if there is a configuration directive.  Is that what you expected?07:22
jmlabentley: no, it isn't.07:23
abentleyi.e. if the user has a .bzrdir/config with a default_stacked_on set, your patch has no effect.07:23
abentleyOkay then, I think we can simplify the patch.07:24
lifelessabentley: what jml wants is to be able to do - in the puller:07:25
lifelessif (we dont have the branch)07:25
lifeless  local_branch = remote_branch.bzrdir.clone(options)07:25
lifelessand thats about it07:25
abentleylifeless: Yeah, I have a fairly good idea of the use case.  I just wasn't sure whether that was a deliberate choice.07:27
lifelessabentley: :)07:27
abentleyjml: Some examples of how BzrDir.clone doesn't clone:07:42
abentley1. if the target has a shared repository, it always uses it07:42
abentley2. if the source is in a shared repository and the target isn't, it creates a target as a standalone branch07:42
abentley3. it doesn't create remote working trees07:42
abentleyPerhaps clone is simply misnamed.07:42
jmlabentley: hmm.07:42
jmlabentley: the evidence is certainly mounting07:43
abentleyjml: As another example, when you branch a subversion branch, bzr-svn doesn't create a Subversion repository.07:47
abentleyIt's really more like a mimeograph than a clone.07:48
lifelessbranch uses sprout though07:48
lifelessso that other example isn't one ;)07:48
abentleylifeless: Sorry, "push from"07:49
lifelessabentley: can you actually push from a svn branch though? I didn't think they existed on disk, only conceptual branch references07:50
abentleylifeless: I haven't investigated.  But I would assume push -d will specify a subversion branch.07:52
lifelessoh interesting07:52
poolieok i'm starting to merge the external reference patch08:09
chandlercwhat would cause a NotBranchError when using bzr-svn on a previously working repository?08:26
* igc pick up kids08:26
lifelessi'm callin it a week08:28
lifeless5:30 time to crack a beer I think08:28
pooliecheerio lifeless08:29
lifelessmight see you online :P08:29
lifelessotherwise tuesday08:29
poolieonce i finish cleaning this up08:29
pooliebtw mark is confirmed for the week of the 16th08:29
poolieuh08:29
poolieif you want to reply on tuesday to my mail re scenarios that would be cool08:30
poolieif only to say +108:30
lifelesssure08:30
poolieigc: i think you forgot the attachment?08:47
igclifeless: if you're still around, abentley has suggested using a path in branch.conf vs a new branch format08:47
igcis that the plan for making stacked branches production?08:48
igcpoolie: thanks. fixed.08:49
igclifeless: abentley had a bunch of other good feedback as well that I found today (post my review overnight). I think we should include most/all of his suggestions.08:52
lifelessigc: if I understand the proposal correctly, its a bad idea, it will break, badly09:00
lifelessits definitely not the plan - a new branch and repository format is required09:01
uwsHi all.09:02
uwsDoes anyone happen to know whether the Fedora Core 8 subversion packages contain the necessary patches for bzrsvn to work?09:02
lifelessigc: however abently proposed using a branch.conf key rather than a new *file* for storing where things are stacked09:02
lifelessigc: and that was a good idea09:02
lifelessuws: the bzr-svn test suite can detect them09:02
igclifeless: ah - ok. Here was the thread: https://lists.ubuntu.com/archives/bazaar/2008q2/040079.html09:03
lifelessuws: install it, run bzr selftest svn09:03
lifelessigc: I'm really just passing through09:03
lifelessigc: this can wait till tuesday09:03
igclifeless: enjoy your beer. I'm off to cook dinner. Have a good weekend all09:04
uwslifeless: Installed Subversion version does not have updated Python bindings. See the bzr-svn README for details.09:05
uwslifeless: Too bad :(09:05
uwslifeless: I'll have to update/compile svn myself. Would you suggest the latest stable 1.4 release + the patch, or svn trunk instead?09:05
gourbzr is quite ok at http://live.gnome.org/DistributedSCM09:08
gouruws: svn-1.5rc9?09:09
uwsgour: http://bzr-mirror.gnome.org/09:18
gouruws: ohh, nice. it means it's a serious candidate09:19
lifelessuws: there is a faq about this, bazaar-vcs.org/svn I think09:19
uwslifeless: you mean http://bazaar-vcs.org/BzrForeignBranches/Subversion?highlight=%28bzr-svn%29#python-subversion-1-5 ?09:20
uwslifeless: It only lists the patch, but doesn't suggest which one to use09:20
Jc2kuws, gour: bzr-mirror.gnome.org is my baby if you have any questions about GNOME and bzr...09:25
uwsJc2k: Ah. haven't used it personally yet09:27
uwsthough I use bzr mostly, my gnome development happens using svn for now09:27
gourJc2k: i do not use gnome myself (only xmonad + xmobar), except some gnome apps, but would like to see gnome adopts bzr09:27
uwsdunno what the jhbuild support for this is09:27
uwsgour: /me too :)09:27
Jc2kuws: thats my other project ;)09:28
* gour hopes that this overly-complex-easy-to-shoot-oneself-in-the-foot VCS won't prevail09:28
uwsJc2k: rock on :)09:28
Jc2kgit-mirror.gnome.org is also coming by the way..09:28
uwsi've never used git. it09:29
uws's interface is horrible09:29
uwsits*09:29
Jc2kagreed09:29
Jc2ki mirrored about half of GNOME in 2 days, then realised it was wrong09:29
uwsi don't care about the kernel hackers' opinion that much09:29
Jc2ki have to start from scratch09:29
Jc2kso i have a few questions actually09:31
Jc2kthere are a few thing the GNOME GIT people do, and are likely to whine about if they can't with Bzr09:31
Jc2k(regardless of whether they are good ideas or not)09:32
Jc2kis there an equivalent to git rebase --interactive09:32
james_wJc2k: nope, it needs someone to spend some time on the rebase plugin09:33
Jc2kjames_w: i guess its not something that a bazaar code newb such as myself can really approach, either?09:33
james_wJc2k: actually, I think it should be possible.09:34
Jc2koh?09:34
james_wI would hope that the rebase itself would be demonstrated by the existing code in the plugin, and it would just be a case of coding the interactive stuff, which hasn't got a lot to do with bzrlib09:35
james_wI may be being optimistic, but we would certainly help you if you wanted to give it a go.09:35
Jc2ki was wondering if it was maybe better as bzr-refactor as i don't think hacking apart your branch is really the same as rebasing, but yes.. am interested in giving it a go09:36
bob2bzr-resequence?09:37
james_wJc2k: I think "rebase --interactive" would be the way to go, as diverging from git here would probably just cause confusion.09:38
Jc2kok09:39
Jc2kjames_w: would a bzr-gitmode pluging be possible that emulated the git wc/repo/branches model?09:43
bob2you could do it as a repo format09:44
Jc2kthere was a suggestion that someone could make a bzr-loom without the stacked looms bit09:46
james_wJc2k: yes, it would be possible.09:47
james_wJc2k: bzr-git allows you to work with git using the bzr ui, but it would also be possible to write a plugin that gave multiple branches in one directory.09:47
Jc2kjames_w: its the 2nd one that i'm after09:48
Jc2koh, is there any way to pull a whole repo?09:51
bob2multi-pull plugin09:51
Jc2kbob2: can that pull branches that i haven't already branched?09:53
lifelessjamesh: jhuild groks bzr yeah ?11:07
jameshlifeless: I did some bzr support code way back, but I don't know if it is still in a working state or not11:07
jameshif it isn't working, it should be trivial to fix11:08
* AfC tried to get that to work, oh, 8-9 months ago, but I couldn't make it go. I'm not a regular jhbuild user, so it may have been something else.11:10
AfC[the mapping or repository's type & href attributes to a Bazaar URL and the branch element being inside an autotools (which we don't use) one made it all a bit vague]11:12
jameshAfC: the nesting of the elements actually matches the modularity of the code11:13
jameshAfC: the autotools build rules can have various VCS backends plugged in to grab the code (including "download and extract the tarball" VCS)11:14
jameshthere are other sets of build rules (e.g. Python distutils) which use the same VCS backend code11:14
AfCOh, I don't doubt its design makes sense, but I couldn't grok it is all.11:14
Jc2kAfC: i'm going to look at some "bzr-mirror and jhbuild" notes11:15
AfCJc2k: yo dude11:15
Jc2k:)11:15
AfCHere, let me pastebin what I wrote11:15
AfChttp://rafb.net/p/f3e70j67.html11:16
AfCJc2k: (note this is slightly different from "I want to use bzr to work with GNOME modules currently living in Subversion"; I wanted to add java-gnome to the GNOME jhbuild modulesets but couldn't quite figure it out)11:17
Jc2kAfC: sorry, i think i phrased what i said badly - i'm going to add some notes to the bzr part of live.gnome.org about jhbuild and bzr11:19
RainCT_schoolHi11:29
lifelessso, rebase -i - I think that a low entry point one that is a clone of gits should live in the rebase plugin11:30
lifelessjames_w: bzr-git is not that complete fwiw11:31
james_wlifeless: hi. ah yeah, I know that, but I was just wondering what functionality they wanted.11:31
lifelessJc2k: yes, multi pull can replicate a full set of branches11:42
lifelessJc2k: I think its important to remember though 'the way git does it' is what contributes to the feeling you had that it wasn't the right thing when you played with it :P11:43
lifelessJc2k: so we want to be somewhat careful about dropping git workflow in wholesale - providing plugins for git users that don't want to change is definitely possible though11:43
Jc2klifeless: yeah, its more about eroding pro Git arguments by supplying plugins for their workflows11:44
RainCT_schoolwhat's the easiest way to configure bzr on a server so that it can be used over bzr-ssh://?11:52
AfCJc2k: It was a shame to see that the imendio guys are using Git. So that means its probably too late for GTK, though if anyone respects letting others work together its them.11:53
gourRainCT_school: install it so that's in the path11:53
AfCRainCT_school: assuming you have Bazaar installed on the machine in question, there's not really anything further you need to do. It'll Just Workâ„¢11:53
spivRainCT_school: the URL prefix is bzr+ssh:// rather than bzr-ssh://, btw.11:54
spivs/prefix/scheme/ to be precise I guess.11:55
AfCspiv: good catch11:55
RainCT_schoolOh, OK. Commit privilegies just depend on the SSH configuration / system users then?11:56
RainCT_schoolspiv: yeh.. bad memory ^^11:56
spivRainCT_school: Right, ordinary filesystem permissions.11:56
RainCT_schoolgreat :)11:56
RainCT_schoolthanks11:56
RainCT_schoolwell, gonna go. bye!11:57
gourAfC: gtk will move to git?11:57
Jc2kgour: a lot of GTK hackers are already using it, which means its harder to get them to bzr11:58
gour:-(11:58
gourone reason more to try get gnome11:59
Jc2kgour: but they are using it in an unoficial capacity, much like the other GNOME hackers like me and AfC are using bzr-svn11:59
AfCJc2k: not exactly. They are using Git exclusively for their 3.0 work. Whether or not that ever makes it back to Subversion remains to be seen.11:59
Jc2kgour: GNOME will be providing some "experimental" hosting for bzr branches, though :)11:59
AfCBetween them and the Cairo / Pango people, I'd say it's probably a lost cause. But we can keep trying.12:00
* gour has hard time to understand why people love git...powerful? yes. but utterly complex model which stands on the way12:00
AfCgour: because its fast, because it handles things like families of branches as single units, and because other projects they are familiar with use it. These things are viral.12:01
AfCs/its/it's/12:02
Jc2kits not entirely a lost cause, git has no backing from a sysadmin. the git people need to provide a volunteer to ensure smooth operation of git.gnome.org.12:02
AfCgour: and, don't forget, these people are all power users.12:02
AfCJc2k: at this point, with Imendio and Codethink and Collabora all hosting their own git repos, someone hosting a git.gnome.org is somewhat less relevant. Yes, Olav is on our side, but he's a sysadmin, not a hacker.12:04
gouri understand that...but, e.g. families of branches are just one reason why i prefer bzr (coming from darcs)12:04
Jc2kAfC: With a bzr-rebase --interactive, codethink can be turned.12:04
AfCJc2k: :) I forced Rob to use bzr to make some fixes to java-gnome. That got him started, at least.12:05
Jc2kAfC: :p, Rob said he'd be willing to give bzr more of a look with rebasing.12:05
AfCFact is that's just the way a lot of people look at distributed version control. It's getting on towards pointless to tell them that they're wrong. I understand and accept the arguments made by the bzr hackers about history loss, but most people don't seem to care that much because it hasn't burned them so far as they can see.12:06
gourright, no change until getting burnt12:08
goursame here...i had few serious issues with darcs12:08
lifelessAfC: I understand why git users rebase now better than I used to.13:17
lifelessAfC: its because their  log is broken.13:17
lifeless(it sorts by date not by branch, so if you imagine 10 branches, each that last a week, all merging to mainline one after another,13:19
lifelessif they have 10 commits each13:19
lifelessand spread equally over that week13:20
lifelessthen git log does:13:20
lifelessbranch1-commit1013:20
lifelessbranch2-commit1013:20
lifeless..13:20
lifelessbranch10-commit1013:20
lifelessbranch1-commit913:20
lifeless...13:20
lifelessbranch10-commit913:20
lifeless...13:20
AfCOuch13:21
lifelessnow imagine trying to understand what has happened when you see that output13:21
AfC[of course, I am on record as being terribly unfond of `bzr log` but mostly `bzr viz` makes up for it]13:21
jameshlifeless: apparently bisection techniques are easier with linear history too13:22
AfClifeless: so, from a marketing standpoint, can you just say "bzr doesn't need rebase because our logging works right"?13:22
lifelessjamesh: its easier if you don't think about it :)13:22
lifelessAfC: well, I can say 'bzr doesn't provide the same anti-social pressure that makes rebase so important to git users'13:22
AfClifeless: (that would be something really concrete for the compare and contrast crowd)13:22
lifelessor even remove the word anti-13:23
jameshI think the only time I've really used the bzr-rebase plugin was to move some commits that had been made to the wrong branch13:24
jameshbasically a cherry picking operation13:24
lifelessto enlarge on the social pressure13:26
lifelessyou want every commit to be as stand-alone as possible13:26
lifelesssmall tweaks that are part of a bigger picture become unhelpful unless they are really well documented13:27
lifelessyou may also want the dates of each commit to be close together as this be more likely to group the commits in log13:27
lifelessand this fits quite well I think, wit what I see git using projects asking for13:29
pborpersonally I'd very much like rebase in combination to some way of "rewriting history"13:30
pborthat is, I branch, work without minding much about about things on a branch (commits, trial and error, revert, etc)13:31
pborthen before merging to the master branch, rebase to the current head and rework the "branch" as a logical series of changes13:31
lifelessthats largely the quilt workflow13:32
AfCpbor: You might find that the loom thing that Robert and others supports that development style.13:32
lifelessand there is some user demand for loom to support this more directly13:32
AfCs/others/others are working on/13:32
pborwhich make history very good to read (not only the log, also the diffs)13:32
AfCI must admit I'm a bit vague on why one needs looms in an environment where people are already being encouraged to make lots of little inconsequential commits anyway13:33
lifelessloom is specificall designed for collaborative quilts, if I can coin a phrase13:33
jameshit also helps create the illusion of infallibility :)13:33
AfCjamesh :)13:33
AfCThat said, I must admit I am often hesitant to make micro commits in the face of needing to set the example to  encouraging others to send me good quality patches with well written commit messages.13:34
pborAfC: it is useful because I can work on a branch as I like, but then submittit as a logical and clean series of consecutive and evolutionary patches13:34
jameshthe testing angle is the biggest problem I have with rebase13:34
AfCjamesh: yeah, I buy that one now too13:35
lifelessAfC: so perhaps you don't need such good quality (individual commits) and well written (individual commit messages)13:35
AfClifeless: I'm not sure about that13:35
lifelessAfC: and perhaps could instead want good quality (merges) and well written (merge commit messages)13:35
lifelessthis is all the the bzr project *itself* looks for13:35
AfCtools like viz and gannotate make sense when the meta data they display has some relevance to the code in question.13:36
lifelessthats true13:36
AfClifeless: [well, since I'm the poor shumck who does the merges, yes, I try to do that as best I can.13:37
lifelessthe barrier for that is relatively low though, in large part because of the topological grouping of data13:37
AfCThe point being made here, though, is sorta standing out in my current experience as a sore point]13:37
AfCIts almost like I wish for something to "roll up" a series of revisions into a single "commit". YES I realize that merges can fill that function, but there are lots of other merges that happen too.13:38
lifelessyou know about log --line ?13:39
AfC(and I don't feel like being the only person who has to write good commit messages, which is why I am so completely frustrated with the fact that `bzr log --line` only prints left hand most revisions13:39
AfCIts almost enough to make me go use something else I hate it so much)13:39
lifelessAfC: so what I am saying is require that the *submission* contains the pre-written commit message, and make it a good one13:39
AfClifeless: right, so that's what you guys do with bug bunny, but that's out of band to the VCS tool13:40
AfCwhich seems a serious oversight.13:40
AfC(ie, it's nice that you gents have it all nice and sorted, but it doesn't help anyone else who has the temerity not to use your PQM code management model)13:41
AfC(ie, everyone else trying to use bzr)13:41
AfC{shrug} these are my pain points.13:41
AfCI point these out only because a) they've been my pain points more or less since the beginning [that and no cherry picking], and b) they're my *only* pain points to what is otherwise an excellent experience.13:42
pickscrapeI had an idea the other day for a log format that showed only the 'leaves'. I wonder how useful that would be.13:43
AfClifeless: I have more or less come around to abandoning revision commit messages and asking people to edit a ChangeLog file instead. I was so happy not having to have people do that over the last 2 years, but...13:43
AfCpickscrape: (that would seem to assume that all of the mainline commits are merges, which may not be accurate either)13:44
lifelessAfC: so, I have been mulling having a editable merge-message in branches13:44
lifelessAfC: for precisely this reason13:44
AfClifeless: that's an interesting notion13:44
pickscrapeAny mainline commit that is not a merge would be considered a leaf.13:44
AfCpickscrape: (ah)13:44
pickscrapeIn fact, the point is only show non-merge commits13:44
AfCpickscrape: well I'd love that personally, because then my projects would look like they were written by the people who wrote them, and not all "Andrew Cowie"13:45
pickscrapeIt's like --short, but where you have a merge, substitute it with the commits that made up the merge13:45
pickscrapeGrossly simplified of course, but that's the idea13:45
lifelessAfC: log should be taught to honour --author13:45
lifelessAfC: vs committer, we do differentiate; hmm is there a bug on that13:45
uwslifeless: It seems log shows the author13:45
AfCpickscrape: [though along the way I got into the habit of also making real changes during merges until I finally learned that this wasn't helping and Robert showed me a few other ways to do it]13:46
pickscrapeHmm, changes made during the merge would be a problem with such a format13:46
AfClifeless: it's not the author vs committer thing, it's the fact that the only revisions shown by `bzr log --line` of, say, bzr.dev were all written by some ninja named Canonical Patch Queue Manager. Dunno who that guy is, but man are they ever slick.13:47
AfCpickscrape: hence my just wanting *all* revisions in single line format, not just left hand most13:47
uwsAfC: Btw, it's "bzr vis", not "bzr viz", you heretic.13:48
AfCuws: WORKSFORME13:48
lifelessAfC: that is precisely commiter vs authro13:48
lifelessAfC: pqm does not yet do --author for us, when it does, the output you are talking about will change13:49
lifeless(for new commits since that point)13:49
pickscrapeI was meaning to ask about that13:49
AfClifeless: what happens when there are 13 authors who contributed 450 revisions that collectively roll up to a single left-hand-most merge? Why aren't they being shown? A single --author has nothing to do with this13:49
uwsAfC: American spelling degeneration ;P13:49
pickscrapeIf you use --author, does that credit *all* lines to that author, even if the branch being merged contained work from more than one person?13:49
AfCuws: ah. I didn't realize they had added "vis" as a short form.13:50
lifelesspickscrape: it credits the commit, in a social sense. bzr always knows where lines come grom13:50
AfCuws: that's good of them13:50
lifeless*from*13:50
pickscrapelifeless: sweet13:50
pickscrapeThis is one of the things about svk that we struggle with the most. The merger gets credit for everything.13:50
pickscrapesvn's limitation really13:51
lifelessyup13:51
AfCpickscrape: which is, outside of `bzr gannotate`, the impression created by Bazaar.13:51
AfC(unless they're doing a shared central model and checkouts, of course, then lots of people are committing to left-hand edge. I suppose I should allow for that)13:52
pickscrapeAfC: I think lifeless has said that they're going to get PQM setting --author, which fixes that problem13:52
AfCBah13:52
pickscrapeActually it was on a recent blog post too13:52
AfCThat's what I'm talking about.13:52
AfCI have no intention of using Canonical's Patch Queue Manager bot.13:52
AfCand most other people I have interacted with don't plan to adopt it either.13:53
lifelessits not canonicals13:53
lifelessthough we are paying the maintainers these days13:53
AfCOne of Bazaar's hallmark's is the support of multiple workflows.13:53
pickscrapeBut it's PQM that causes the perceived single-commitor problem with the bzr source13:53
AfCThis is lovely.13:53
AfCBut when I keep hearing that "really, to make it work you need to use PQM" I go from being quite bullish about Bazaar to being slightly off put.13:53
lifelessand yes, there is no need to adopt it, it only fits some quite specific needs (primarily - run 10's of minutes long tests during merge commits(13:54
AfCpickscrape: no, it's any project where the mainline is maintained by a gatekeeper.13:54
lifelessAfC: tell me who says that and I'll biatch-slap them the next time I meet them13:54
AfCYou know, say, the linux kernel, or any other such star model.13:54
pickscrapeAfC: can they not use --author?13:55
AfClifeless:  :)13:55
AfCpickscrape: If I am merging a branch with revisions from 2-10 unique individuals, who is the --author?13:55
AfC(even assuming `bzr log --line` were to start reporting such data)13:55
AfCYES, I realize that what I need to do is write a custom logger, but the reason I am fighting this so steadily is that I believe the left hand bias in Bazaar is wrong and does a disservice to the authors of all the subordinate revisions.13:56
pickscrapeWell, the merger is the author of changes made during the merge that didn't come from the merged revisions. How else to do it though, short of having multiple 'author' values for each commit?13:56
AfCpickscrape: what you said earlier: don't only output left hand edge revisions. Output all revisions and a single summary line. After all, `bzr vis` can handle it, why can't `bzr log`?13:57
pickscrapeIt does doesn't it?13:58
lifelessnight guys13:58
AfCAnswer, because of the bias embedded in the command that only left hand revisions are significant. I understand the original argument in favour of this. I just think it is wrong13:58
pickscrapeSo you want something like --short which outputs the same revisions as --long?13:58
AfCpickscrape: --short only does left hand edge as well. I want something like `bzr log` that presents single lines.13:59
pickscrapeYeah, what I said :)13:59
AfCpickscrape: in order to a) see all the history  and b) have credit clearly attributed to the people that did the work13:59
pickscrapeDoesn't sound too difficult13:59
* gour shares AfC's sentiments13:59
pickscrapeWhat would you call it though?14:00
pickscrape'brief'?14:00
AfCAlas, I am not a bzr hacker, and in any case would never get such a patch past the bias I have described. Because until the core hackers agree that the current behaviour is doing a disservice to people, they won't change it / accept a change to it.14:00
AfC {shrug} it's their code14:00
AfCpickscrape: --line !!!!!!14:00
lifelessmeh14:00
pickscrape--line already exists14:00
lifelesswe have a long history of changing our opinion on new information14:01
pickscrapeWould you want the right hand revisions to be indented, or the whole thing flat?14:01
AfClifeless: Indeed. That's why I am attempting to present a case that this should change14:01
lifelessthe most *effective* way to do this is to write a plugin that does the thing you want, and when folk use it on mass because its so much better, well -> it gets into mainline14:01
AfClifeless: but fully accepting that it won't change unless you want it to14:01
lifelessAfC: I don't think its better, I think it is likely to have nearly all the negative connotations of git's log; but I may not be understanding what you want - so why not actually just do it?14:02
lifelessoops :P14:03
lifelessmind you, 11pm at night14:03
pickscrape:)14:04
sabdflmorning folks14:52
=== mw|out is now known as mw
emgentmorning sabdfl15:15
sabdflmorning emgent15:16
sabdfli have an issue with bzr check on a large tree15:16
sabdflit makes it through the first part fine15:16
sabdflthen gets stuck15:16
sabdflchecking versionedfile    0/861615:16
sabdflany suggestions?15:16
jamlifeless, AfC: 'bzr log' *does* honor --author15:33
=== kiko-afk is now known as kiko
jamsabdfl: if you do ^| (ctrl+shift+\) it should break you into a debugger, and you could try to look at what it is currently doing15:38
jamuse 'bt' to get a backtrace15:38
jam'c' to continue15:38
jamyou could paste the backtrace15:38
jamsabdfl: is the "throbber" ticking, or nothing at all?15:39
jamyou could also try "strace -P PID" etc to see if there is actually stuff happening.15:39
dato(-p PID)15:48
Pieteris there a way to apply git/mercurial like patches (with commit log and author information)?15:51
=== abadger19991 is now known as abadger1999
Ngcould bzr be slightly modified so when you do a status, it tells you that it's not playing with a subdir because it's a branch of its own? atm they just show up in "unknown"16:52
abentleyNg: If you use status --short, it's show up specially.17:16
Ngabentley: kinda seems the same as properly unknown stuff - a ?17:17
abentleyIt doesn't append + to the filename?17:17
abentleyStrange.  I thought it used to.17:18
Ngnot afaics17:20
jamabentley: I believe you have to be in subtree format, otherwise we don't *detect* that directories are subtrees17:24
pickscrapeIf I have a change I want to contribute to bzr-gtk via the new review feature, do I need to register a branch against bzr-gtk and push to it, or is there some other way?18:44
beunopickscrape, same as with bzr, there is a bzr-gtk mailing list where you send merge-directives18:44
pickscrapeoic18:45
beuno(bundles, patches, not sure what the term is currently)18:45
pickscrapeWill it matter if I'm not subscribed to that mailing list?18:47
beunowell, you could subscribe and set it so you don't get emails18:48
pickscrapedidn't know you could do that :)18:48
beunoyeap yeap, mailman setting18:48
pickscrapeHmm, apparently "lists.canonical.com uses an invalid security certificate"18:49
jampickscrape: I believe it is signed with lists.ubuntu.com or something like that18:58
pickscrapeeek! the bzr-gtk code is riddled with trailing whitespace... :)19:03
* gour wonders what editor did it19:05
pickscrapeShelve to the rescue19:06
ekimushmmm why do I get this: "bzr: ERROR: Transport operation not possible: http does not support mkdir()" it happens when I want to push to an empty branch on launchpad....19:11
beunoekimus, you should set:  bzr launchpad-login username19:12
beunothen, you will have to use --use-existing-dir with push19:13
ekimus*lol* happens when you start working on a new host :)19:13
beunoand you're on you way19:13
beuno*your19:13
pickscrapebeuno: thanks for your help on sending to bzr-gtk19:13
beuno(the --use-existing-dir switch is just for this time, since the http failure creates the branch dir)19:14
beunopickscrape, my pleasure  :)19:14
jamekimus: you need to 'bzr launchpad-login"19:18
jambeuno: why do you have to "--use-existing-dir" ?19:18
pickscrapeI've had to do that too.19:19
beunojam, for some reason, LP creates the dir when you try http19:19
beunoI think I go through this half a dozen times a day (the lp-login bit), so I really hope 1.5/1.6 can get upgraded into hardy 8.04.1/219:20
beuno(1.4 or 1.5 LP plugin does a better job at explaining how to solve it)19:21
jambeuno: except it doesn't tell you to use '--use-existing-dir' :)19:21
beunojam, heh, right19:22
beunobut I think the bzr error doe19:22
beuno*does19:22
beunoso most users may figure out that last bit by their own19:22
beunoor that may wishful thinking  :)19:22
pickscrapeYes, I figured it out. I thought it was a bit weird though, and hoped that I wasn't breaking anything... :)19:23
jambeuno: so i just upgraded my public repo to packs, and now Launchpad has decided it wants all of my bandwidth19:23
jamI'm glad I don't have a strict upload cap19:23
jamthough who knows, maybe I do and just never hit it :)19:23
jamI have 169 branches owned by me registered in launchpad. I have a feeling at least 150 of those are mirrored19:24
jamand all of it will take ~50-70 MB to transfer19:24
beunooh, that's quite a lot19:24
beunoyou're canonical, can't you just ssh and upgrade?  :p19:25
jambeuno: mirrored branches aren't hosted on the ssh side19:25
jamand I don't think they give direct access to that stuff anyway19:25
beunoand you're upgrading the mirrored branches?19:26
statikhi! i tried upgrading a large shared repository to rich-root-packs, and I got a KnitCorrupt error. i thought i'd check in here before doing anything with it19:26
jamI'm upgrading my public repo, which chains down to everything LP is mirroring for me19:26
jamstatik: something about missing a revision?19:26
jamor something else19:26
beunojam, ah, good thing it's friday. "leave it, check back monday"  :)19:26
statikjam: sha-1 of reconstructed text does not match expected, for a version that looks like it was Arch19:26
statik(this is a my launchpad shared repo)19:27
jamstatik: you might be hitting what mpt ran into a while ago, does this happen to be something you got from devpad/rocketfuel?19:27
statikjam: yes indeed19:27
jamstatik: abentley was helping mpt with that yesterday19:27
jambest to find out their solution19:27
jamI believe there is something weird in one of the inventory texts19:28
jam(oh, and spiv helped before that)19:28
statikjam: cool, thanks for the tip19:28
jamstatik: why 'rich-root-pack' rather than '--pack-0.92' ?19:28
jamout of curiousity19:28
abentleystatik: We went back to a known-good revision and recommitted the changes as one big commit.19:29
statikabentley: oic19:29
radixbtw, is there a blueprint or something where I can follow the status of Stacked Branches?19:29
abentleystatik: However, you may not have the same issue he had.19:29
statiki'm just doing an upgrade, this looks like a very old revision19:29
statikI'll pastebin the traceback19:29
jamhmm... it seems like it is going to take 15GB of transfer before Launchpad is going to be happy with my mirrored branches.19:30
jamOr 5 days of solid transfer at my 30kB/s upload cap19:30
jamI think I need to find a different solution19:30
abentleystatic: Yes, so you've probably got an instance of 23474819:30
abentleystatik: ^^^19:31
abentleystatik: Bug 234748 causes false reports of corruption.19:31
ubottuLaunchpad bug 234748 in bzr "Knit inventory corrupt in bzr.dev with bzr.dev r3452 (KnitCorrupt)" [High,Fix released] https://launchpad.net/bugs/23474819:31
abentleybzr.dev has a fix.  bzr 1.2 was unaffected.19:32
statikabentley: I was hoping this was the same issue that had already been solved, great! is it appropriate to update my bzr.dev checkout and run upgrade again?19:32
statikI'm running bzr.dev now, but about 14 revisions old19:32
beunojam, how do you know that in advance?19:32
jambeuno: 150 branches, approximately 90 MB each19:33
jamI imagine the older ones will be smaller19:33
abentleystatik: I would update your bzr.dev and run check first.19:33
jambut the total size of packs + indices is 97MB for that repo.19:33
statikabentley: excellent, i'll do that. thanks for the help!19:33
abentleystatik: np19:33
jamAnyone here know how to use "tc" well?19:34
jamI'd rather have 10 days of 50% capacity than 5 days of 100%19:34
beunojam, if you have another server to ssh to, it may make sense to do it from there19:34
jambeuno: do what from there? Remember this is Launchpad *pulling* my branches, not me pushing19:35
jamAnd you can't pre-push to the same location19:35
jambecause mirrored branches don't share disk space with hosted branches19:35
jamI would complain in bzrlp, but they are all gone for the weekend. :)19:35
beunojam, ah, right. You'd have to move what you have to the server, which defeats the point19:36
statikabentley: I was running upgraded for a shared repo, but it looks like check needs to run in a branch. does it matter which branch I run check in?19:36
abentleystatik: Just make sure it's a branch of whatever triggered the error.19:37
statikabentley: ok. wow, check gives me   File "/home/emurphy/src/bzr.dev/bzrlib/repository.py", line 1570, in iter_reverse_revision_history19:38
statik    parents = graph.get_parent_map([next_id])[next_id]19:38
statikKeyError: 'launchpad@pqm.canonical.com-20080606133605-f13slt1fhp14unnw'19:38
abentleystatik: That's not necessarily a bad thing, but I need to finish up what I'm doing.  Can I get back to you?19:40
statikabentley: sure thing. thanks for your assistance on this.19:40
jamstatik: that looks like you have a ghost in your mainline19:52
statikjam: it's over my head, this is the same launchpad repo I've been using on this box for over a year19:52
jamstatik: give me a sec, but I'm betting you haven't done "bzr log --long --no-aliases" on it19:53
statikjam: should I be moving my .bzr.backup directory back?19:53
jamstatik: Isn't it called "backup.bzr" ?19:53
statikheck no I don't run log on big repositories, it takes too long :)19:53
jamOr is this older than that19:53
jamstatik:  if this is the converted repo, it is likely to be broken, with stuff missing, yes19:53
statikjam: my mistake, I have two of them, looks like I forgot to delete the backup when I upgraded to packs a while back19:53
jamif the 'upgrade' did not complete19:54
statikjam: no, this is the source tree for launchpad itself19:54
statiknot the conversion19:54
jamstatik: it is the one you tried to 'upgrade --rich-root-pack' and it failed mid-way, right?19:54
statikjam: right19:54
jamso that is probably broken, I would copy bzr.backup back into place, and then run bzr check to make sure everything is working19:55
statikok, trying that now19:55
jamkeep copies of stuff when possible19:55
statikdefinitely19:55
pickscrapeWhat are ghosts anyway? I keep hearing about them, but don't know what they are.19:55
jamstatik: I do have a script here: http://launchpadlibrarian.net/15061264/copy_all_revisions.py19:56
jamIn case we need to fill in any gaps19:56
jampickscrape: revisions which are referenced, but not present19:56
jamso a node can say "I have parents XXX and YYY" but the repository may not contain "YYY"19:56
statikcool, check is getting a lot farther than before19:56
pickscrapeoic19:56
pickscrapeSo basically a repo can't by definition 'contain' a ghost19:57
Pilkystatik: hey, how are you finding BazaarX19:57
statikPilky: it looked nice when i ran it yesterday, but I didn't manage to get it to do anything yet (only played for 5 minutes)19:58
Pilkycool, well let me know if you have any suggestions or anything :)19:59
statikPilky: I'm pulling the latest now and trying to run it again while I wait for my 38K revisions to finish checking :)20:00
jampickscrape: if you want to look at it that way, it "has" a "ghost" because it doesn't "have" the revision.20:00
Pilkyheh20:00
statikpilky, i'm a bit confused about what to do at first. I see the + button, but not sure what the dialog means20:01
statikis this asking me to tell it about a branch that I already have?20:01
Pilkywell, if a branch already exists it just adds it, otherwise it will create a new one in the selected directory20:02
Pilkysame if you choose repository20:02
Pilkywhen creating a branch you select which repository you want it to appear in, or if you just want it to be a standalone branch20:02
statikPilky: cool, that makes sense. When I type a name, select branch, and point it to my standalone branch of bazaarx, the add button doesn't do anything20:02
statikdo I put a human readable name in the Name field, or a path?20:03
pickscrapejam: in the same way that something can have a hole in it :)20:03
Pilkyhuman readable name in the name field20:03
jampickscrape: pretty much20:03
statikPilky: not sure then, clicking the add button doesn't do anything for me :( I'm running this via the "Build and Go" button in XCode, is there a way I can dig out some more info so you can tell what is happening?20:04
Pilkyaha, just had an idea... where is bzr stored on your machine, /usr/bin or /usr/local/bin ?20:05
Pilkyatm BazaarX is hard coded to look in /usr/local/bin20:06
statikoh, that might be the thing. I normally run bzr.dev linked into ~/bin20:06
statikI can add a symlink, no problem20:06
Pilkythere'll be an option in the preferences of 0.1 to change that20:06
statikcool20:06
radixjam, statik: I've read your blog post which points to https://edge.launchpad.net/bzr/+milestone/1.6 , but I don't see anything about stacked branches there. I'm wondering what the status is and if it's going to be in 1.620:07
jamradix: we are reviewing the code changes right now, and will probably slip the final 1.6 release to make sure stacked branches are merged20:08
statikstacked branches are the future! the future is now!20:08
radixthat's good to hear :)20:08
radixI'm *really* excited about it20:08
radixIt means I'll be able to use Launchpad for my larger projects, finally20:08
statikradix: i have been doing my best to destroy launchpad with large branches and failing. I've uploaded over 30GB of branches in the last weeks20:09
statikplease join me20:09
radixstatik: awesome!20:09
Pilkystatik: btw, you may occasionally notice the odd beachball when running things, at the moment we're designing it on the assumption that bzr will get faster so it's all done in the main thread atm20:09
statikawww, cmon. the world is parallel, multicore, etc.20:10
statikPilky: seriously though, I do work on branches that are hundreds of megs, with many thousands of revisions, it's very likely that some operations will take longer than you want to block the main thread20:10
Pilkytrue20:11
statikPilky: so now that I've told BazaarX about a standalone branch, what can I do with it?20:11
statikI still only see the big merge icon in the middle20:11
Pilkywell, if you click on it, it will do a status on it20:11
Pilkyblue is modified, green is added, grey is unknown, red is removed20:12
Pilkyyou can then commit/add by clicking on the toolbar items (no icons yet but they should be top left)20:12
statikhuh, I'm not seeing anything happen when I click on it20:13
Pilkyhmm..20:13
Pilkyis anything coming up in your run log in Xcode?20:14
statikI've restarted the whole app now that I added the symlink, added a second reference to my bazaarx branch, but still don't see anything20:14
statikah, the run log. I was trying to find something like this earlier20:14
statikyes, Range or index out of bounds on NSCFSTring substringToIndex20:15
Pilkyhmm20:15
statikI'm not that familiar with XCode, so no idea how to get a stack trace for that, but I'm willing to try if you can explain how to do it20:16
Pilkyhmm, well you could put a breakpoint on substringToIndex but that would stop for every substringToIndex, not just the ones in my code20:18
PilkyI've got an idea what it could be though20:18
Pilkyhave you got any blank lines in your global ignore file?20:20
PilkyI'm forgetting a bit of error checking20:20
statikPilky: no, it looks like it's totally standard, 8 lines of patterns20:21
Pilkyhmm20:21
tethridgeis it possible to just remove a specific revision after other commits have been made?20:21
statiktethridge: you have to uncommit all the way back20:22
tethridgedamn20:22
beunoor branch from that revision20:22
tethridgeI was hoping for some kind of undocumented bzr uncommit -r 320:22
beunoand commit everything else20:22
beuno(probably faster if it's a lotof commits)20:23
statiktethridge: I think that would leave a hole in the history or something like that20:23
tethridgeI'm contributing to a project and I had submitted a patch, then started working on something else.20:24
tethridgethen they wanted me to revise the patch20:24
statiktethridge: you should check out looms! they are perfect for that use case20:24
tethridgebut to do so I'd have to branch at the revision I made the patch and then reapply the changes I made for the patch after I had done the other work.20:25
tethridgelooms?20:25
tethridgelink?20:25
statikhttps://launchpad.net/bzr-loom20:25
statikyou can keep each patch that you submit in a separate "thread"20:25
beunothekorn, or, feature branches. Branch everytime you're going to work on something different  (I still haven't jumped on the looms wagon)20:25
statikwhen the code reviewers ask for a revision to the patch, you can drop back down to that thread and revise only your patch20:25
tethridgestatik, looms sounds like the answer20:26
tethridgebranching for each feature seems like a lot of waste if the project is large20:26
tethridgeI assume that it makes a complete copy20:26
beunotethridge, not if you're using a shared repo (which you should for this workflow)20:27
beunobut, looms is *the* way to go20:27
statiktethridge: no, branches are super lightweight if you use a shared repo, and you can even switch a single working tree between branches easily, it's just that looms make this specific use case a bit easier to manage than doing it with branches20:27
Pilkystatik: just committed some changes to LP with better error checking, try getting the latest revision and seeing if that fixes your problem20:31
statikPilky: glad to20:31
PilkyI really need to get into the habit of checking the length of a string before trying to get a substring of it, it seems to be my most common runtime error20:32
statikPilky: I see files! this is great20:33
Pilkyheh, cool20:33
abentleystatik: jam got you sorted?20:33
statikabentley: yessir, looks like i was running check on the busted repo when i needed to have moved back the backup and started over20:33
statikthanks20:33
abentleynp20:34
jamstatik: can you help me out with some testing?20:34
jamI'm trying to set up rate limiting20:34
jamand want to make sure it is working20:34
tethridgeany of you guys work for canonical?20:35
tethridgeI have a quick off topic question if you do20:36
jamtethridge: I do, as does statik and abentley, but I don't know if they're talkative20:37
statikjam: on the phone, but happy to help testing something20:37
tethridgeI've tried my question on launchpad answers, but it went unanswered20:37
tethridgeI was just wondering if there had been any talk of providing landslide for a limited number of machines?20:37
tethridgeI was thinking that it could be used by developers20:38
statikwhat is landslide?20:38
beunolandscape?20:38
jamtethridge: I think he means landscape20:38
jamradix would be the person to ask20:38
tethridgeit would provide more users to help find issues without affecting the amount of paying users20:38
radixhello20:38
tethridgeyes landscape20:38
tethridgeI was just curious20:38
* radix --> privmsg20:40
statikbtw jam, thanks for posting about fast-forward on your blog, that was useful to me20:46
=== mw is now known as mw|food
tethridgeI've seen that there is a plugin that allows a user to have a bzr branch of a subversion repository.  The user uses bzr and the bzr plugin sends commands to subversion so that the user doesn't need to interact with subversion.  Is there a plugin similar to this for clear case?21:49
tethridgeso I'm guessing that there isn't a bzr-clearcase plugin that I haven't heard of22:13
lifelesshi22:14
lifelessI have heard rumours of folk doing a plugin inside companies using clearcase; I have not seen any code or heard of them making the plugin available :(22:15
=== mw|food is now known as mw
tethridgewe use a bastardized version of clearcase that really sucks22:16
tethridgeit makes it such that viewing the history of a file is next to impossible because of the way they are constantly merging22:16
tethridgeso basically I'm working without a history22:16
tethridgetechnically it exists, but it takes forever to find the actual changes to a specific file22:17
bpetersonWhat does this mean? TooManyConcurrentRequests: The medium '<bzrlib.smart.medium.SmartSSHClientMedium object at 0x205c550>' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.22:32
beunobpeterson, many things. I believe that masks other potential problems. Can you try pushing/pulling again?22:33
lifelessbpeterson: it basically indicates an exception on the server which the client hasn't properly accomodated22:43
lifelessbpeterson: I believe the new client and server protocol in 1.6 will help this immensely22:43
lifelessbpeterson: if you check ~/.bzr.log on the server there is probably an exception logged22:43
woleverHere's my problem: I've been working out of my own bzr repository for a few days, and I want to push it up to an SVN server so other people can use it.  Is there some way I can push the history from my repository into the SVN repository?22:44
lifelessif you made your branch with 'bzr branch svn-url' then doing 'bzr push' should work22:45
woleverThe work I stared was pulled from another SVN repository (which I don't have +w to).22:46
woleverSo that won't help me here.22:46
woleverI've checked out the new repository with `bzr co http://...`, but I don't know how to copy from one to the other (or even if that's the right thing to do)22:46
radixwhy not just publish the bzr branch? the SVN users from the first repo aren't going to get much benefit with respect to merging and stuff, if you create a completely separate SVN repository22:46
woleverradix: It would be lovely if I could, but "everyone else" (for some value of "everyone else") uses SVN22:48
woleverThat, and I don't have access to the server (apart from `ssh://...` access)22:48
radixare you trying to fork the project, or somehow allow the original developers to get access to your branch and be able to merge it?22:48
radixif the latter, the best format for them will probably be a patch22:49
woleverI've forked a project, and now I want to give the people I'm working with access to what I'm doing22:49
radixok22:49
radixI'm not sure if it's possible, but I guess you could create a new SVN repository ("svnadmin create" IIRC) and try pushing your branch to it22:50
woleverA patch won't work because the changes are significant and I'm not sure if the original project is still being developed.22:50
jamwolever, radix: Is it possible to 'svndump' a repo you don't have +w to?22:50
radixIt's an "svnadmin" subcommand, which gives me the impression it requires local access22:50
jamradix: that was my guess22:50
jamand a general problem with a SVN repo22:51
jamif they aren't using it, nobody gets to22:51
woleverjam: I believe so... At least, I've used svnsync to do it22:51
radixah, well22:51
jamwolever: right, you could svnsync their repo22:51
jambut I don't know how they would get your changes back22:51
radixah, ok22:51
jamyou could sync, 'bzr svn-push' into your mirror22:51
jambut then you have an SVN repo they can't *really* use22:51
woleverOk, lemme try with svn-push22:51
woleverThe problem with merging is that it complains that the two repos don't share a common base, and when I give it one, I get nothing but conflicts:22:52
woleverbzr co file:///svn/repo foo; cd foo; bzr merge -r 1..$HEAD /bzr/repo/22:53
woleverbzr: ERROR: These branches have diverged. Use the merge command to reconcile them.22:54
woleverErr, and a `$ bzr svn-push file:///tmp/svn/` came before that22:54
lifelesswolever: indeed, they are separate repositories; svn repos have a UUID in them22:58
woleverWell, yes... It would make me very happy if there was something I could do about that, though22:58
lifelessgiven that you have forked, why not encourage the folk you are working with you use bzr? might give a better all-around result. You don't need any server access to publish your branch22:58
lifelesss/server a/special server a/22:59
woleverlifeless: As I mentioned, I'd love it if I could do that, but as I'm sure you know, getting people to switch RCSs isn't that easy22:59
woleverWhat with everyone knowing how to use SVN, SVN's integration with $IDE... etc, etc23:00
lifelesstrue true23:03
bpetersonbuno, lifeless: I get the SSH error when I'm pushing to code.python.org. It hangs, so I use ^C and get this exception.23:11
lifelessbpeterson: can you ssh into code.python.org and look in your ~/.bzr.log please23:13
bpetersonI will have to email the administrator23:18
lifelessoh23:19
lifelessyou don't have ssh access?23:19
bpetersonI'm too new to be trusted. :)23:19
lifeless!23:20
lifelessok23:20
lifelesswhat are the last few lines before the exception in your local ~/.bzr.log23:20
bpetersonYou know Barry Warsaw?23:20
lifelessyes indeed23:20
bpetersonwhere's the log again?23:23
lifeless~/.bzr.log23:23
lifelessor run bzr --version and it will tell you23:23
bpetersonah23:23
bpetersonhttp://bzr.pastebin.org/4117123:27
lifelessok23:29
lifelessits failing attempting to unlock() the remote repository23:29
lifelesswhich means it failed earlier and this is masking the real error23:30
lifelessI will wager, oh, a chocolate bar, that this is a permission error on the remote server23:30
bpetersonIt works ~1/3 of the time23:31
lifelessoh23:31
lifelessprobably not that then23:31
lifelesslets find the real error23:31
beunothat's why I recommended trying again23:31
beunowe get that sometimes at the office23:31
beuno:)23:31
beunohaven't been able to track it down yet23:32
bpetersonI've been doing this for about the past week, so you can be sure I've tried again and again.23:32
lifelessif you look at the bzrlib.branch module23:32
lifelessthe line 1625 should be in a finally block23:32
lifelessdisable that line - put a # and a pass line after it23:33
lifelessthis will mean we need to break-lock after a successful push but should let us see the real error23:34
bpetersonBarry sent me the log: http://www.python.org/ftp/python/bzr.log23:35
lifelessI think we need to make the client code change I proposed23:37
lifelessthere is too much noise from the protocol down-grade errors23:38
bpetersonOk, I'll try that23:38
lifelessdo you know a good python text indexer23:43
lifelesspylucence looks painful to ask people to build23:43
bpetersonthe annoying thing is I don't get errors now23:48
lifelessat all ?23:50
lifelesson repeated pushes even ?23:50
bpetersonno, it happily says "pushed revision 39547"23:50
bpetersonI'm doing another push now23:51
beunolifeless, my personal guess with these errors is Memory ones23:51
beunothe branches I've got them in, now that I've got my main server on bzr.dev, I get Memory errors sometimes23:52
beunobut people at work don't even tell me anymore when it happens, they just push/pull again23:53
beunoso I haven't been able to pin-point it23:53
beunois it possible the server doesn't have enough memory at the moment, and it gets masked by the smart server?23:54
beuno(would explain the randomness of it)23:55
bpetersonwould that show up in the server log?23:57
beunoI don't know enough about the smart server to know if it would  :/23:57
* bpeterson has another successful push23:59

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