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

jelmermeteoroid, hi00:03
jelmermeteoroid: getting the cache screwed up is always a bug in bzr-svn00:04
jelmermeteoroid, not sure I follow what you're trying to do00:05
jelmermeteoroid, you branched inside svn or with bzr?00:05
meteoroidjelmer: i use bzr-svn to branch a small portion of the svn repo, then i deleted that bzr branch and bzr svn-import the whole repo..00:30
meteoroidbut, it just pulls this one location that i branched before00:30
meteoroidarguably the most important part but yanno..00:31
jelmermeteoroid: this is a bug fixed in bzr-svn 0.4.1100:32
meteoroidalrighty00:32
jelmermeteoroid: for now, remove ~/.bazaar/subversion.conf and try again00:32
* meteoroid tries just removing that entry00:34
* jelmer gets some sleep00:34
meteoroidthanks jelmer :)00:35
=== rocky is now known as rocky|away
sohailhmm... bzr cloning a 16M repository taking a bit too long...01:31
sohailstill going...01:31
sohailwe have python running at 150M of RAM and 100% CPU01:32
sohailyay01:32
lifelesssohail: thats unusual, what is it ?01:35
sohaillifeless, my own repository01:35
lifelesssohail: has it been this slow for you before ?01:36
sohaillifeless, never01:36
sohailnew situation: I am trying to clone from linux to windows01:36
sohailbut the windows box has version 1.601:36
sohaillinux has 1.301:36
sohailhow can I upgrade the repository format? or do I need to?01:37
lifelesssohail: is it a pack or knit repo ?01:37
sohailI don't know what that means so whatever the default is01:37
lifelesswell, the default changed at 1.0 - did you have this repo before 1.001:37
sohailno01:37
sohailbut the repository I'm trying to clone was created with 1.301:37
lifelesslets check01:38
lifelessbzr info -v on the repository01:38
sohaillifeless, http://rafb.net/p/5XpErU98.html01:39
lifelessthat should be fine01:39
sohailwhen I do bzr clone from the Windows machine, it hangs at "copying inventory texts 2/5"01:40
sohailerr "copying context texts 3/5"01:40
sohailcontent**01:40
sohailgeez01:40
lifelesshas it allocated a lot of memory perhaps ?/01:41
sohailoh yes01:41
sohail200M01:41
sohail250M now01:41
sohailI just did a bzr clone on the host and it finished in 30 seconds01:42
sohail:-/01:42
beuno_lifeless, I did see your export patch, you rock!  I didn't comment because I say you superceded it later on, with something I couldn'y find!01:42
sohaillifeless, at 500M now01:43
beuno_Pieter, the root to whatever it started on  :)01:43
sohailman I am totally out of it today... The repository is 216M not 16M!01:45
sohailok I'll just let it run for a while01:45
lifelessbeuno_: the later was just refactoring01:45
* beuno_ stabs LP for logging him out01:46
=== beuno_ is now known as beuno
beunolifeless, that will go into 1.7 though, right?01:46
lifelessbeuno: assuming it gets reviewed :)01:47
lifelesssohail: ok, I think its swapping01:47
lifelesssohail: are you branching into a new repo on windows or an existing one ?01:47
* beuno searches for the merge request to add his +101:48
beunois BB down?01:49
Peng_Several hours ago, it was slow, but not down.01:49
Peng_Now, it might just be down.01:50
lifelessbeuno: please check and see if the export patch is enough01:50
beunolifeless, sure, I'll give it a spin now01:50
beunolifeless, message id 1218178923.4514.146.camel@lifeless-6401:51
beunoright?01:51
lifelessbeuno: it may not be - I think it will tend to write to a file itself; but let me know01:51
beunolifeless, btw, if you'd like to sponsor jelmer's packaging of bzr-search, we can get Loggerhead's package on it's way soon, with bzr-search as a recommends  :)01:54
markhspeaking of strangeness, I'm seeing bzr spin at 100% cpu and 400MB of ram for over 6 minutes doing "bzr merge --preview ..\other-bzr.dev-branch"01:54
markhprogress bar is stuck at "0/0" and the "spinner" hasn't moved for many minutes01:55
beunomarkh, what does .bzr.log claim?01:55
lifelessmarkh: also look for syscall activity01:55
markhheh - I think I need to go back to bed.  The 2 trees were actually completely unrelated, so I'm sure it was trying really hard to find something to do :(01:56
markhsorry for the nouse01:56
markhnoise too...01:57
* markh has too many directories that start with 'bzr'...01:57
pickscrapebeuno_: Did you mean me here? -> "beuno_: Pieter, the root to whatever it started on :)"01:57
beunolifeless, your patch does *exactly* what I need01:58
beunopickscrape, oh, heh, yes01:58
beunogood catch01:58
pickscrapeI'm still not completely sure what is required. Let's say we are serving from a non-branch directory that contains the path a/b/c, where c is a branch called 'bob'01:59
pickscrapeWhen we browse to the branch, currently we will see this: "bob : viewing / for revision X"02:00
pickscrapeNow, I can make 'bob' into a link that link to the branch root, but that doesn't help you to navigate further up the tree.02:00
sohaillifeless, I am cloning an existing repo02:01
pickscrapeIf we start showing the tree leading up to the branch as well, do you then also need to show the branch's directory name instead of its nic?02:01
beunopickscrape, hm02:02
pickscrapeThat also puts you in a position where the branch root isn't very clearly marked02:02
sohaillifeless, and it died: http://rafb.net/p/C2dh6O38.html02:02
pickscrapeThis is why I didn't mess with what was displayed :)02:02
beunopickscrape, maybe we should just make that part a clear path, instead of the jumbled text it is today02:02
beunopickscrape, if you want to take a shot at making it less of a mess, that would be great. If not, I'll merge in your patch and work on top of that02:03
pickscrapeI can try an idea and propose it for merging. The worst that could happen is it doesn't get merged :)02:04
beunopickscrape, and a big hug for trying!02:04
pickscrapeHappy to be involved :)02:04
pickscrapebeuno: I'm thinking it might be worth merging what's done already so I can sandbox on top of that easily, unless you'd rather wait for the next step?02:05
lifelesssohail: I believe that that bug is fixed in 1.6rc102:06
lifelessmarkh: are tehre rc1 binaries for windows?02:06
beunopickscrape, I sure can, but, on the other hand, we can take this opportunity and learn more about bzr. You can branch your branch, and work on top of that!02:06
markhnot that i've uploaded - I keep trying getting distracted trying to fix things :)02:07
markhI'm just merging my latest test suite fix in and will test them, then upload them02:07
lifelessmarkh: I think sohail just hit a fixed bug in the betas02:07
sohaillifeless, good I'm just installing it now02:07
sohail(building from source)02:07
lifelesssohail: ok cool02:07
lifelesssohail: let mw know if its faster too02:08
pickscrapebeuno: ok. So when I have something to present I just register another branch? Or just push over the one that is already there?02:08
sohaillifeless, will do02:08
beunopickscrape, register a new one. Branch locally, play around, when you're happy, push to a new location in LP02:08
pickscrapeSweet02:08
sohaillifeless, ok so it isn't any faster, that's for sure!02:12
lifelesssohail: can you try something for me ?02:15
lifelesssohail: replace bzr+ssh with sftp in your url02:15
markha binary will finish uploading in 15 minutes02:15
sohaillifeless, ok02:15
sohaillifeless, so you mean bzr clone sftp://...? or bzr clone sftp+ssh:///02:16
sohailerr bzr+sftp02:16
sohaillifeless, oh damn paramiko is needed for sftp... Do you know how to get distutils to use Visual Studio 2005?02:18
markhlifeless: most test failures now on Windows relate to a LockContention error being thrown.  Can you think of any characteristics of your locks that would make them more likely to fail under windows (ie, do you ever assume you can delete the lock file while its open, for example?)02:18
markhnote I'm yet to see a "real" lock contention error - just in the tests02:20
lifelesssohail: replace 'bzr+ssh' with 'sftp'02:24
lifelessmarkh: lockdir is unlikely to be a problem on windows; I'd expect the dirstate os lock is the problem02:25
markhyeah, I think you are right:02:25
markhLockContention: Could not acquire lock "O:/window~1/testbzr-ag21lz.tmp/tatus.test_pending_with_ghosts/work/b/.bzr/checkout/dirstate"02:25
LeefmcQuestion: So with bzr, is a project directory (ie, one which contains the .bzr folder) only ever contain one branch? (coming from a git person).. Say for example you have ~/project_src, if you need to create a test branch, do you then create a bzr copy and place ot elsewhere? ie ~/project_test02:33
lifelessLeefmc: have a look inside .bzr02:35
markhsohail: http://starship.python.net/crew/mhammond/bzr-setup-1.6rc1-mh1.exe should work pretty well02:36
lifelessLeefmc: there are three subfolders in a newly inited project - repository, branch, checkout02:36
lifelessLeefmc: the branch folder has the branch details, so yes, you need a directory per branch. but you don't need a new repository (where most of your data is) or a new checkout (which exists when your source code is unpacked on disk for editing) to have a new branch02:36
Leefmclifeless: So for a project, you would have like ~/project/src/.bzr, and your branches would be ~/project/src/trunk ~/project/src/test etc?02:38
=== techII_ is now known as techII
sohailmarkh, thanks02:39
sohailmarkh, are you the guy from Jurassic Park02:40
markhheh - well, I'm getting a little long in the tooth, but I'm not *that* old ;)02:40
sohail:-)02:40
lifelessLeefmc: yes, exactly02:40
lifelessLeefmc: if you have an expensive working tree - e.g. C projects where you don't want to rebuild02:41
Leefmclifeless: K thanks. I enjoy git, even though i never got that deep into it, but at the same time it seems to have warped my mind for anything non-git heh02:41
lifelessthen  you'd have a one that you use to edit and switch between02:41
lifelesse.g. bzr checkout --lightweight trunk build02:41
lifelesscd build02:41
lifeless./configure02:41
lifelessetc02:41
lifelessbzr switch test02:41
lifelessbzr switch trunk02:41
lifelessand so on and so forth02:41
Leefmclifeless: Hmm, thats one thing i like about git though, is that in my IDE i never have to switch my files.. ie, say i am working on "main.py", if i want to try something i just create a new branch and try it, i never worry about which "main.py" (./test/main.py vs ./trunk/main.py) i am editing because its always my active branch02:43
lifelessLeefmc: so having one tree does that -02:44
lifelessyou only have one copy of main.py on your disk at a tim02:45
lifelessLeefmc: if you have a bzr branch you're working on, its three commands to set this up, and 4 to demo it :)02:45
Leefmclifeless: Yea but with bzr, if you want to take a piece of code and experiment, you make a second branch dont you? And thus, a 2nd main.py file on disk, correct?02:45
lifelessno, second branch doesn't imply second checkout02:46
LeefmcGit must have really screwed with me hehe :D02:46
lifelessdo you ahve any code in bzr?02:46
LeefmcHow is it that i find the "humane" vcs more confusing than one made by Linus! :D (not bashing bzr ofcourse, just poking fun at myself :p)02:47
lifelesswell02:47
Leefmclifeless: I've got plenty to try, but no projects set up with it yet02:47
lifelessgit has some nice things about it02:47
lifelessits very optimised for the editing-C-code workflow02:47
Leefmcright now im creating my directory structures for a new project and i wanted to use bzr because of Launchpad02:48
lifelessthis isn't intrinsically bad, but it does alter how things fit together02:48
lifelessok02:48
Leefmc(I have more faith in launchpad for project hosting rather than Gitorious or Github, for example)02:48
markhI think your previous exposure to any other dvcs does tend to cloud your mind for a while when looking at another.02:48
lifelessgrab a directory somewhere02:48
lifelessdo this:02:48
lifelessbzr init-repo --no-trees repository02:48
lifelessbzr init repository/trunk02:48
lifelesscopy some code - e.g. main.py into repository/trunk and then do02:49
lifelessbzr add02:49
lifelessbzr commit -m 'import'02:49
LeefmcA while back i even used bzr, and it seemed relatively simple and easy (bout too easy), but i had no idea how it worked with my Git-ified workflow of "branch testing"02:49
lifelessbzr remove-tree02:49
lifelessthis will have created a branch in a shared repository with no working files02:49
lifelessnow do02:50
lifelessbzr branch trunk test02:50
lifelessand02:50
lifelessbzr checkout --lightweight trunk working02:50
lifelesscd to working02:50
lifelessit will have your main.py02:50
lifelessbzr info02:50
lifelesswill tell you that you are on the branch trunk02:50
lifelessbzr switch test02:50
lifelesswill make test your active branch02:51
Leefmcbzr add gives an error about the current dir not being a branch02:55
LeefmcPerhaps it was a bad idea to initially learn bzr by the stupid 5 minute tutorial. I should have focused from the ground up.02:56
LeefmcI keep trying to make things relative to what i knew (Git) which is.. not easy heh.02:56
LeefmcI spose i add the file directory? bzr add ./repository/trunk/__init__.py02:58
Leefmchmm, same thing.. im guessing then i need to cd into one of the repos you had me create. Im still confused on what the first two lines did though. To me it seems like you had me create 2 bzr repositories.02:59
Leefmcoh i see i think, bzr uses multiple .bzr files, one for a collection of branches (what git would consider an actual repo), and one for each branch03:00
lifelessLeefmc: oh, init probably honoured the no-trees03:01
lifelessLeefmc: yes, your last point is right03:02
Leefmcok, im reading your steps tryin to make sense of it, and i am a bit confused. It seems you created 3 branches, trunk, test, and working. Now because there are .bzr dirs for each branch, you actually cd around to switch branches (as you do when you cd into "working"); However, you use a bzr switch command when inside of "working" to switch to "test", how is this possible?03:04
Leefmcdoes bzr cd you to a different directory?03:04
lifelessLeefmc: working isn't a branch03:12
sohailhey markh that version worked fine except I get this annoying message: "intl3_svn.dll was not found"03:12
lifelessLeefmc: its just a tree, like a svn checkout or a cvs checkout03:12
markhsohail: bugger - thanks - I'll try and fix that.  If you don't care about bzr-svn, you could probably just nuke the plugins/svn directory03:13
sohailmarkh, yeah I did just that03:13
sohailnow I need to figure out how to get bzr to ignore the symlinks in my repo :-/03:14
markhheh - afraid I can't help you there ;)03:14
Leefmclifeless: Roughly, what would that be in Git? Repositories are collections of Branches, Branches are each a specific revision (with history), so what is a Tree then?03:14
markhsohail: are you using a non-english windows?03:15
sohailmarkh, no, english03:15
markhhrm03:15
Leefmclifeless: The guide sort of confuses me. It says a Branch is an ordered set of revisions, yet the working tree is the directory of those revisions.. which seems to sound synonymous with Branch03:15
sohailmarkh, maybe you can tell me how I can clone a subdirectory? That way I can just ignore the directory with the symlinks03:16
Leefmclifeless: Or wait, i think i see. The "working tree" is Git's version of the Active Branch03:16
Leefmclifeless: Except with bzr, it is an actual directory aswell (containing files of whatever branch)03:17
markhsohail: not sure about that either ;)  I'm still learning the ins and outs myself03:17
sohailmarkh, really! and you are making installers already?!!! :-)03:20
markhheh - well that is what I *do* know about ;)03:20
markhI thought bzr was trying to hard to at least not break with symlinks on windows03:21
markhbut I can't find any good references03:21
sohailmarkh, well afaict it isn't doing a very good job :-)03:22
sohailso does anyone here know how to clone a sub directory of a bzr repo?03:22
LeefmcQuestion: Is "working" the standard name for the.. working directory? Or is it trunk.. or main.. etc?03:39
LeefmcOr does it even matter? Will people only see the branch name, and not my working name?03:39
sohailok I knew how to do this but... bzr clone ...; <do some changes>; bzr commit; bzr push => "No push location known or specified"03:45
sohailhow do I fix that?03:45
taconesohail: bzr push [location]03:45
sohailtacone yeah but what is location?03:46
sohailshouldn't bzr default to where I cloned from?03:46
taconesohail: no03:46
markhsohail: you probably wanted "bzr branch" in the first place then03:46
sohailmarkh, ah!03:46
sohailok then03:46
sohailI have to go just now but that is good to know03:46
taconesohail: if you're using launchpad that could be for example: bzr push lp:~yournick/yourproject/namebranch03:46
markhsohail: heh - actually, "clone" is an alias for "branch"!03:53
markhso yeah, you have to give the same location you branched from if that is where you want to push it.  I recall a long thread on the bzr mailing list about that now03:53
markhit should remember though, and later, you just "push"03:54
LeefmcQuestion: Is there any real difference between a branch and the working tree? Because "bzr checkout" creates a branch correct? Yet lifeless used checkout to create a working tree, so is there any real difference?04:10
lifelessbzr checkout without --lightweight04:23
lifelesswill create:04:23
lifeless - a branch, bound to the source04:23
lifeless - a working tree at the same place as teh new branch04:23
lifelesswith --lightweight04:23
lifelessbzr checkout creates:04:23
lifeless - a branch reference (basically a fancy symlink that works on windows)04:24
lifeless - a working tree04:24
pickscrapebeuno: ping04:27
beunopickscrape, pong04:29
pickscrapebeuno: I need a way to find out if loggerhead is serving a branch at the root level or not04:29
pickscrapei.e. is the directory that http://example.com/ points to a branch, or a plain directory04:30
pickscrapeI've got the directory breadcrumbs working. This is the only corner case I can find that makes it behave badly :)04:31
beunopickscrape, for the directory nav?04:31
pickscrapeYes04:32
beunopickscrape, it already knows, it shows different icons for each type04:33
techII(since i can't find the blog entry I read dealing with this) if I commit to a svn checkout with bzr version 1.3.1, is it going to dump the bzr related stuff into the svn repo?04:33
pickscrapeHere's an example of what I mean. If I'm serving a loggerhead branch at the root, and I'm currently looking at the /loggerhead/apps directory, the link to the root needs to point to /files, otherwise I will jump to the revisions view04:34
pickscrapeConversely, if loggerhead is serving a plain directory at its root, the link to root just need to go to /04:34
pickscrapeI suppose it's something that loggerhead could detect when it first starts up, but that sounds like quite a change :)04:37
* beuno thinks04:38
beunopickscrape, this is mixing the files and directories view, right?04:39
pickscrapeNo, this is just making the directory path displayed at the top of the files view into breadcrumb links04:39
pickscrapeWhich entails a link back to / for completeness04:40
pickscrapeThe way I have it now, when the user is looking at a file they are able to jump directly to any of the file's parent directories in the branch, and the directories containing the branch, right up to the root directory that loggerhead is serving04:41
beunoI like that04:41
pickscrapeThe only case that doesn't work is when loggerhead's root is itself a branch04:41
beunoI see yor problem04:41
beunocan you push the branch, so I can toy around with it a little?04:41
pickscrapeYes. You'll be able to see the problem very clearly that way :)04:42
pickscrapeJust give me a few to commit what I've done.04:42
beunosure04:42
beunoI'm jumping in between dr. house episodes anyway  :p04:42
pickscrape:)04:42
* pickscrape is up to date on that ;)04:43
beunoI'm gladly not04:43
beunoI tend to wait until series are past the 3rd season04:43
beunoso then, when I get addicted, I don't have to wait every week04:43
pickscrapeYeah, it's always a shame when there's nothing left of a good show to see.04:44
pickscrapebeuno: lp:~pickscrape/loggerhead/directory_breadcrumbs04:50
* beuno branches04:51
pickscrapeThe other thing is, the file view appears to have a special case for when it is being run as part of launchpad. I've left that part alone.04:51
beunooh, yeah, don't worry about that04:52
beunopickscrape, so, I *love* the way it works now05:02
beunoI'll start poking at the "am I starting at the root" problem05:02
pickscrapeCool :)05:03
beunoand, I'm thinking we should drop the "viewing path/dir..." nonsense05:03
pickscrapeI just need it to drop the (root) when the root is a branch.05:03
beunoand just make the whole thing a path05:03
pickscrapeYes, I was wondering about that too.05:03
beunoand maybe even make the revision number a link05:03
beunobecause my instinct tells me that that should be clickable too05:04
pickscrapeI just wonder if there should be some way to make it clear to the user what part of the path was the branch directory itself.05:04
beuno(for consistency's sake)05:04
pickscrapebeuno: I found myself trying to click the revision number too :)05:04
pickscrapeThen again, I'm not really sure where it should go05:04
beunopickscrape, maybe a different color for the branch within the path?05:04
beunoor underlined?05:05
pickscrapeI hate choosing colours :) My other thought was underlined.05:05
beunoor path == not bold, branch == bold05:05
beunoI think the revision number should go to "revision/$revno"05:06
pickscrapeI actually like the current bold styling, as it is. Having said that, making it not bold makes it fit better horizontally for longer paths05:06
beunowhere everywhere else links to05:06
pickscrapeYes, for the file_id that is currently being viewed. I like that.05:08
beunohm05:08
beunoif you serve from:  /code05:09
beunoand the branch is in: /code/coolstuff/loggerhead05:09
beunothen root goes back to /code05:09
pickscrapeYes05:09
pickscrapeSince that's your root05:09
beunowhat do you think of going even further, and making the breadcrumbs have the full path?05:09
pickscrapeIt goes as far as it can.05:10
pickscrapeIf you want to be able to browse the full filesystem, just run serve-branches /05:10
beunorightoh, wait, ignore me05:11
beunoit works as I expected05:11
beunoI just need to pay more attention  :)05:12
beunolet me see how we can work out this serve-from-root thing05:12
pickscrapeIf you're in a similar timezone to me, it being late is a good excuse ;)05:12
beunoit's 1am, not sure I can use that excuse yet05:12
pickscrapeIt's 11PM here, and I'd have no qualms about using it being late as an excuse already :)05:13
beunohahah05:13
beunogood, then it's because it's late  :p05:14
pickscrapeThen again I was woken up by my son at the usual time of about 7:15 this morning.05:14
beunoright, and I... well... my dog got hungry around 1pm, and poked me with his cold nose05:14
pickscrapehehe :)05:15
beunopickscrape, got it!05:29
beunowhat was the other use case?05:29
beunopickscrape, add:  tal:condition="python:updir"05:29
beunoto the root bit05:29
beunoI'm already checking if we're at the top level05:30
beunowell05:30
beunohm05:30
beunono05:30
beunothat won't work05:30
pickscrapeThe problem is if you're not at the top level, but the branch is.05:30
pickscrapeIn that case the (root) link basically needs to go away.05:30
beunopickscrape, hrm, also, the link is also invalid for the branch nick05:32
beunobecause it builds a path, etc05:34
pickscrapeAh yes, so it does05:34
beunoso, two problems to fix now  :)05:34
pickscrapeAh, no still one problem05:35
pickscrapeif you edit inventory_ui.py, and change line 80 to be if True:05:35
pickscrapeThe link is correct05:35
beunoI see, you already have a plan to override05:36
pickscrapeAnd that's the if that needs the 'is our root a branch?' question answering.05:36
pickscrapeYes, the code to handle both scenarios is already in place05:36
pickscrapeJust needs the actual fact determining :)05:36
pickscrapeIt's late: I've already forgotten what my own code does :p05:37
pickscrapeI need to go to bed now anyway: he'll be up at the crack of dawn tomorrow as well :) I'l read back here when I wake up tomorrow.05:38
pickscrapeThanks for you help!05:38
beunopickscrape, I'll try and fix and push05:39
beunoyou're welcome, and thanks for working on this  :)05:40
mlhi, anybody here intimately familiar w/ the bzr installer for Mac OS?05:54
meteoroidif i set a commit hook or somesuch like for cia, say, or an email, in a bzr branch, does it travel with the branch, or only apply to that copy?07:05
xshelfdoes making socket reads async and having multiple threads pulling different changeset make bzr faster for pull or clone?07:06
meteoroidzshelf: it would depend on many factors..07:07
xshelfI am yet to see a multi-threaded scm07:07
meteoroidheavy threading is more beneficial on highly multicore systems..07:07
* meteoroid has thought a lot about that07:07
meteoroidi'm on 8-core now and looking at moving soon to a 16-core box07:07
meteoroidwhen i have 30-50 checkouts to make for a deployment i'd love some concurrency07:07
meteoroidesp if i could do a thread per repo / server07:07
xshelfhome PC now have multi core or hyper threading07:08
meteoroidoh i know i'm just saying even with 2-core or 4-core with other things running, sometimes it's not a big deal to lack threading..07:08
meteoroidbut when you have an idle box with 8 or 16 cores, as i sometimes have, and a ticking clock on a systems update, concurrency could be awesome. :)07:08
meteoroidand yeh even a low-end multicore box relatively idle07:08
xshelfso, one can safely assume a majority of users have 1+ core (virtual)07:08
meteoroidwell assume, no, assume likely, yes07:09
meteoroidperforming poorly with one core would be bad, imo07:09
xshelfwe can always have a flag to run in single threaded mode07:09
meteoroidsure.07:09
meteoroidfair enough :)07:09
meteoroidi like the way you think!07:09
meteoroidtoo bad my opinion doesn't matter for bzr ;d07:10
meteoroidyet!07:10
xshelfI had a tool to fetch source from CVS using CVSweb frontend as I was behind firewall07:10
meteoroidouch07:10
meteoroidsounds painful07:10
xshelfIt was a 2 day hack and I had all such fancy features!07:10
* meteoroid doesn't doubt it07:10
xshelfi managed to host that on savannah too and got people using it07:11
meteoroidgood for you!07:11
xshelfAnother idea: With all the distribution and duplication of changesets, would a bittorrent like approach improve speed?07:12
meteoroidwell for large projects, perhaps.. not sure it's a change worth forcing on everyone07:13
xshelfok07:14
meteoroidesp for projects with tons of readers vs. writers ratio07:14
meteoroidbut also the DSCM approach helps07:14
meteoroidyou can have a local master pass-through07:14
xshelfin a torrent like setup, you can pull bits (few changesets) from different machines.07:15
xshelfI just did a google, found an rfc: gittorrent07:15
markhmulti-cores/threads would also only help if the network was fast enough that your cpu was working at 100% - otherwise asynch would do07:16
meteoroidsure.. again for something like linux it might make sense, but for other things a pass-through is even handier.07:16
meteoroidmarkh: well async can also be used to traffic cop for threads07:16
meteoroidyou dont' have to peak each core to take adv of threads07:16
lifelessso07:16
meteoroidyou lose some cpu cache opt from context switches but you can swap out with other stuff and still be faster..07:16
lifelessactually git does some threading, but its a work around for design deficiencies07:17
meteoroida lot of network-dependent apps spend time waiting07:17
markhno - but your total throughput will not improve unless the cpu is at 100%07:17
meteoroidso if you do 50 checkouts in one thread that waiting all stacks up in one time dimension07:17
meteoroidmarkh: again not true if you are able to put more in wait07:17
meteoroidyou don't need 100% cpu for each thread07:17
lifelessbzr is generally latency and network bound over the network07:17
meteoroidyou can have 8 cores and 20 threads if each is spending a lot of time in wait07:17
markha true asynch framework would mean you can have as many as you want running, and none of them blocking07:17
lifelesse.g. twisted07:17
lifeless:P07:17
meteoroid:)07:17
markhexactly ;)07:17
lifelessanyhow07:18
meteoroidwe're arguing about the same thing i think ;d07:18
xshelfhow about stackless?07:18
markhnot many high-perf network bound apps scale via threads07:18
meteoroidi'm just saying you don't need to peak each cpu07:18
lifelesswe chose in bzr to write synchronous code to make it more understandable and approachable for contributors07:18
xshelftwisted makes you create a whole lot of processes07:18
meteoroidif there are a lot of requests happening, there's a lot of latency07:18
lifelessasync code abstractions leak in various ways07:18
meteoroidand you can juggle more threads than cores07:18
lifelesssome of the core of bzr uses threads07:18
meteoroidpython threads? ;)07:19
meteoroidlike zope. ahh.. zope..07:19
meteoroidone process per thread zope..07:19
markhthreads are both easy and very cool - don't get me wrong ;)07:19
meteoroider per core..07:19
xshelfi just did a 'bzr pull --profile' on emacs07:19
markheasy compared to asynch programming ;)07:19
meteoroidwell i mean with twisted generally you mix both..07:19
lifelessxshelf: if you're interested in performance work on bzr07:19
meteoroidyou respond to events in the main interpreter by launching events in thread via C so they don't depend on GIL07:19
xshelfThe top consumer: 406/265 1848.725    4.554 1848.744    6.976 socket.py:278(read)07:19
lifelessxshelf: can I suggest you strt with the btree index plugin and ensure you have 1.6rc1 too07:20
xshelflifeless: I love to work on bzr, I know almost nothing in python07:20
markhyeah - true asynch is *very* hard.  A dedicated thread that does nothing but IO, and everything via waiting for the OS to tell you a request is complete.  Less threads == less OS overhead in moving the bits off the wire.  Then you actually have to do something with the bits, which is where it gets more complicated ;)07:20
xshelflifeless: : My daytime job revolves around performance improvements too07:21
lifelessxshelf: cool07:21
lifelessxshelf: so I'm doing a lot of performance work07:21
lifelessxshelf: my current focus is a new compressor with the goal of reducing the amount that has to be sent over the network07:22
lifelessbut there are several endemic performance issues07:23
xshelflifeless: I have seen that and that really does not make too much of a difference with current network speeds07:23
lifelessxshelf: bzr branch for me saturates the network07:24
xshelflifeless: I worked at McAfee and did some real speedups07:24
lifelessxshelf: so reducing the data sent be 60% will make a huge difference07:24
lifelesscool07:24
lifelessanyhow07:24
lifelesswe have a variety of issues07:24
xshelflifeless: I agree, 60% is big saving07:24
lifelesssome are algorithmic07:24
lifelessworking tree operations take time proportional to the number of files that are versioned07:25
lifelessso do any operation on historical trees - we have to generate an in memory object called an inventory, which is essentially the entire directory structure07:25
lifelessbeing able to do partial operations on that could make a significant difference07:25
lifelessand the repository size issue I mention07:26
xshelfpoint me to a good bzr architecture doc, I will start looking into it07:26
lifelessthe new b+tree indices are 30% of the current index size07:26
lifelesshmm, some operations unnecessarily look at the entire network graph which is another issue07:26
lifelesse.g. time 'bzr log | head -n 1'07:27
lifelessvs time 'bzr log --line | head -n 1'07:27
xshelfYes, I raised that issue on emacs list when talking on moving to bzr07:27
lifelessxshelf: there are various docs in doc/developer and the wiki; but most of the things that need fixing are in discussion on the bzr mailing list07:27
xshelfthat is the first command I type after a pull and it took quite some time07:27
xshelflifeless: I will join the list, which one should I be joining07:28
lifelessyeah07:28
lifelesshttp://lists.canonical.com/mailman/listinfo/bazaar07:29
xshelfwill join right away07:29
xshelfi was working on hg, since emacs might just use bzr, I might invest in bzr07:30
lifelesssome good folk to chat to -07:30
lifelessandrew bennetts does networking - spiv on irc07:30
lifelessI do low level storage as well as algorithmic higher level stuff07:30
lifelessjam is similar to me - thats John A Meinel07:31
xshelfok, algorithms are over head for me :-(07:31
xshelfI do not have formal computer science background...07:31
lifelessthats fine07:32
xshelfi will do my best07:32
meteoroidxshelf: algorithm is just a fancy word for "way to solve a problem", and also a name for an entire formal branch of science / mathematics ;d07:32
xshelflifeless: I realize that but I have failed in some interviews just because they ask an algo by a name and I will not be knowing it07:33
xshelflifeless: In some places (Yahoo), they asked me to solve and I was able to!07:34
xshelflifeless: Google asks many such algos by name07:34
lifelessmeh07:35
lifelesssimple memory is not a good indicator for aptitude IMO07:35
lifelessit may indicate regular activity in an area07:35
lifelessbut my brain routinely pages shit out07:35
xshelflifeless: That is most important07:36
xshelflifeless: Anyway, I am now in a place where I get to learn and play with things I am interested in (NetApp)07:36
lifelessnice07:37
lifelessWAFL is quite interesting07:37
markhlifeless: do you happen to know if there is an implication repo.bzrdir.transport.local_abspath() should return a local_abspath with native backslashes on Windows?  It currently returns "/" and tests are failing due to it.  I'm wondering if I should focus on fixing local_abspath() or just hacking the tests to call os.path.abspath()?07:49
lifelessall internal paths should be / using07:49
markhyeah - but the name of "local_abspath() kinda implied it was an external interface07:49
lifelessAFAIK all os functions will work07:50
markhie, it is converting from internal to external07:50
markhyeah - I understand that - just wondering what the abstraction was supposed to be07:50
lifelessmarkh: if its still in python its internal :)07:50
markh:)  fair enough - so I'll fix the tests ;)  thanks!07:50
=== samurai_ is now known as samurai
xshelflifeless: I got bumped due to drop in network08:12
xshelflifeless: I have joined the bazaar mailing list and looking forward08:13
lifelesscool08:14
Peng_FWIW, if the last message you saw was from 06:50:47 (it being 07:14 now), you didn't miss anything.08:14
lifelessI'm off for the night08:17
lifelessciao08:17
Peng_Good night.08:19
=== bronger is now known as Bronger
=== Bronger is now known as bronger
=== bronger is now known as Bronger
=== Bronger is now known as bronger
xshelflogin11:40
markhif I do a merge that conflicts and leaves conflict markers, is it expected that the first 7 lines in the markers will be identical?12:09
xshelfot: I have heard bzr has the best merge code, if that is true, would it be possible to have a stand alone merge that can be used through scripts?12:12
Pietermarkh: did you check for whitespace differences? e.g. tabs vs spaces12:19
markhPieter: I suspect that might be the case for eol markers (I'm on Windows) - but I suspect that these have been normalized in the file with the conflict markers, masking the error.12:21
markh(ie, it all looks fine in the file with the markers, but the source of the merge may have different eol markers)12:21
markhs/eol markers/eol settings/12:22
markh*sigh* - the file with the conflict markers looks fine.  The source of the merge leading to the conflict markers may have had different EOL style leading to what I see.12:23
markhtoo many branches, too little time ;)12:24
mlhxshelf: yeah I think so .. I know it's been asked before and the response is in the affirmative12:30
mlhbut don't knw the details12:30
mlhyou'll have to wait for  bzr dev12:30
mlh'a' bzr dev12:30
PilkyIs there any way to send authentication details inline with a command? eg "bzr branch lp:myproj --password mypass" or something like that12:50
xshelfis there any hack to use bzr-fastimport with perforce?12:51
xshelflifeless: I was reading you entries on advogato on persistent b+tree/hashtable from python. Ever considered Berkeley DB?13:14
rocky|awayjelmer: fyi, committing to a bzr-svn svn trunk is still very very slow13:15
gnomefreakim guessing bzr-svn wsa never fixed?13:19
rocky|awayjelmer: to commit 7 file's changes (certainly not totalling > 2k) took 1m27s according to unix time command13:19
gnomefreakrocky|away: mines crahsing13:19
=== rocky|away is now known as rocky
gnomefreakhas been for a month or so13:19
rockywhich version you using? i'm on ubuntu hardy heron running bzr-svn 0.4.10, svn 1.5, bzr 1.513:21
gnomefreak0.4.10-213:28
gnomefreak1.5 bzr13:28
rockywhich os ?13:30
gnomefreakubuntu13:32
rockyi don't know what to say, it works for me ... it's just very slow13:34
jonnydeehello, I'd like to create a .deb package of a bazaar plugin for PPA. can someone point me to related documentation or give me some hints? It's my first packaging trial, so I'm a novice regarding packaging. At the moment I'm reading https://wiki.ubuntu.com/PackagingGuide/Complete as suggested by https://help.launchpad.net/PPA...14:39
LeefmcQuestion: I added a file by mistake, how do i remove it before a commit? I dont really wanna comit it.16:49
sabdflLeefmc: try bzr rm?16:51
sabdflhmm... bzr rm --keep16:52
Leefmcsabdfl: Makes sense, and i thought of that, but oddly enough i dont see bzr rm in the bzr command list.. am i blind? I typed "bzr" and it gave me a list of commands, yet "bzr rm" is not on there.. is it?16:52
sabdfl"bzr help commands" will give you a more detailed list16:53
sabdflremove is there16:53
sabdfland i believe rm is an alias for that16:53
sabdflcheers16:53
Leefmck thanks16:54
=== sm_ is now known as sm
=== cody-somerville_ is now known as cody-somerville
beunojelmer, ping20:35
beunojelmer, bzr-upload has been accepted, and I'm poking the DD to upload bzr-search now20:43
thorwili got a bzr: ERROR: exceptions.MemoryError: and filed a bug with traceback. but now i wonder how to fix the upload21:00
thorwilas on pushing again, i get [Errno 39] Directory not empty21:01
thorwildang, gotta go21:07
Adri2000hi21:56
Adri2000when I merge one revision from another branch, and then commit, the commit message of the revision I merged doesn't appear in bzr log, can I change that?21:57
edcryptAdri2000, the commit msg should appear on the log of the branch you merged *to* -- is this what you are doing?22:28
Adri2000yes22:28
Adri2000but it doesn't appear22:28
pickscrapeAdri2000: did you merge using bzr merge -r ?22:28
Adri2000it does appear if I merge more than one revision, but not if I merge only one22:29
Adri2000yes, or -c22:29
pickscrapeYes, in that case you're just merging the patch, and not the actual revision.22:29
pickscrapeAs I understand it, tracking of cherry pick merge meta data isn't implemented yet22:29
Adri2000it should work with -rRev1..Rev2? I though I tested that as well22:29
Adri2000thought*22:29
pickscrapeIt only tracks if you don't specify any revisions at all22:30
pickscrapeIf you use -r (or -c), all that happens is that the patch of the revisions you specify get applied to your working tree22:31
Adri2000ah indeed, so the only case where the commits are shown in the log is when you merge a branch completely22:33
pickscrapeYes, because that's the only case where it has the merge metadata.22:33
Adri2000actually merging a branch up to revision X (-r X) brings the commit messages. so it's just cherry-picking one or multiple commits that doesn't22:35
Adri2000pickscrape: and you say that may be implemented in the future?22:36
pickscrapeI've heard that it is planned, though I don't know anything about when22:36
Adri2000ok22:37
=== rocky is now known as rocky|away

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