/srv/irclogs.ubuntu.com/2009/01/20/#bzr.txt

=== Spaz is now known as Kittens
=== kiko-afk is now known as kiko-zzz
igcmorning all00:33
james_wheh, oldest bzr bug: https://bugs.edge.launchpad.net/bzr/+bug/370802:06
ubottuLaunchpad bug 3708 in bzr "progress indicators are often buggy" [Wishlist,Confirmed]02:06
james_w(open bzr bug)02:06
lifelessPeng_: are you around?03:05
pooliejames_w, woo, i wouldn't say it's fixed now but it should be when the new system is used by all transports i03:16
poolieimo03:16
lifelessheh, compressbench was compressing 22K copies of the same text. Oooops.03:19
mwhudsonbet that compressed fairly well03:27
lifelessmwhudson: knits got it down to 141MB03:34
lifelessmwhudson: which is an epic fail if you ask me03:34
lifelessmwhudson: gc got it to 500K03:34
lifelessI was wondering how it managed to work on my laptop when I only had 1.5GB free and the corpus is 3.4GB03:39
alevineIs there any way to exclude directories from a checkout? I am trying to import a svn repo into bzr which has a directory of huge binaries.03:39
bob2'slowly'03:39
lifelessbob2: btw I'm here03:40
lifelessalevine: not really; you could filter a fastexport stream to remove them, or something like that I guess; are you using bzr-svn?03:40
alevinelifeless, yeah I am. Tried a branch with --stacked but it said that was experimental and I couldnt branch after that03:42
alevineAnd when I try to download the whole repo the connection inevitably fails03:42
lifelessalevine: try branch -r 1 svn://foo bar; cd bar; bzr pull -r 2; bzr pull -r 3 etc03:48
lifeless(use bigger gaps if you like)03:48
alevinehehe, oy03:49
alevinesuppose that will probably work03:49
alevinethanks03:49
lifelesshi arjenAU03:52
arjenAUlifeless: hey. in Tas @ LCA03:53
`mouseyI've been reading the bzr documentation and noticed this "Bazaar has out of the box integration with Bugzilla, Trac and Launchpad's bug tracker."04:12
`mouseyhow can I integrate my bzr repo with my bugzilla system?04:13
`mouseyohhh i found it after some digging around on the offline hel04:23
lifelessarjenAU: me too04:47
`mouseydoes anyone know if it's possible to load up an external diff tool when diffing revisions in tortoisebzr?05:26
lifeless`mousey: I'm not sure sorry05:26
lifelessmarkh: ^05:26
arjenAUlifeless: yea found out... duh05:30
lifelessarjenAU: :)05:36
pooliehi lifeless05:37
poolieso does that mean all the compressbench numbers are wrong?05:38
lifelessyes05:38
lifeless:(05:38
lifelessI have no sense of the vector yet05:38
lifelessclearing enough disk space to find out05:38
alevinelifeless, so once I get this huge svn repository downloaded, will I be able to quickly branch a subdirectory of this new bzr repo (assuming those huge binaries are not ancestors of anything I am branching)05:54
lifelessalevine: maybe; it depends on exactly how you are converting; you should read the bzr-svn docs some more I think. svn and bzr are verry differnet in what they consider a branch05:59
alevinelifeless, I guess what I'm asking is this: if I have a regular bzr repo that I branch that has folders a and b. a has txt files and b has 800MB files06:01
alevineif i then branch repo/a will that copy over all the 800MB files?06:01
lifelessalevine: the terms 'branch' and 'repo' are not interchangable; but you used them as such above.06:11
lifelessalevine: a branch is a branch, you can't 'branch' a subdir of a branch, unless that subdir is itself a seperate branch06:11
alevinelifeless, so you're saying that you can't make a subdirectory of a branch into a branch?06:18
alevinei think you inferred that but I dont want to assume06:26
pooliehi igc06:45
pooliejelmer: don't suppose you're around?06:49
vilahi all06:57
vilapoolie: I rarely saw jelmer here so early :)06:57
poolieyeah, but you know students and sleep cycles07:00
pooliehow are you, vila?07:00
vilahehe, students07:00
vilafine07:00
igchi poolie07:03
igchi vila07:03
vilaHey Ian07:06
poolievila, igc, do you want to catch up before i go? (i'm leaving tomorrow morning)07:07
igcpoolie: sure07:08
* igc dinner08:54
vilaguilhembi: ping09:18
guilhembivila: pong09:19
Oli``I've got a local repo bound to a remote one so when I commit locally the changes are automatically pushed up. That's great and I'd like to keep that but I'd also like to trigger a remote update at the same time... Is that something I can do?09:32
bob2branch, not repo?09:32
Oli``sorry yes09:32
Oli``so a cross between binding and the push-and-update pluging, I guess09:34
speakmanhi folk, i've a question about merging; Lets say theres three people A, B and C which all have their own branch of the same project. What if A makes a change, which B merges directly from A and person C merges from both A and B (which both seems to have modified branches, not knowing it's the same commit). Now when person A finally merges some changes from person C, the bzr log of person A will look very ugly, something like circular merge commits. Ho09:40
=== kiko-zzz is now known as kiko
=== bac` is now known as bac
=== abentley1 is now known as abentley
=== bac is now known as bac_snow_whee
=== bac_snow_whee is now known as bac
speakmanI see alot of people joined lately. I'll paste my question again:12:27
speakmanhi folk, i've a question about merging; Lets say theres three people A, B and C which all have their own branch of the same project. What if A makes a change, which B merges directly from A and person C merges from both A and B (which both seems to have modified branches, not knowing it's the same commit). Now when person A finally merges some changes from person C, the bzr log of person A will look very ugly, something like circular merge commits. Ho12:27
markhspeakman: even though your message seems to have been truncated, you will probably need to come up with a test-case which demonstrates exactly how person a's log is ugly and explaining how you thing it should look instead.  That doesn't sound trivial, so it might be better suited on the mailing list...12:29
speakmanmarkh: Thanks for your comments. I think I'm too new to distributed versioning to really have an idea how it should look like. But in one of my current project, and web developing project, there will be like three or four parallell developers which I will randomly merge from to get their eventually changes.12:32
james_wspeakman: it won't end up circular12:33
speakmanAnd if I'm person A and person B just merged from me (and commited it to his branch) it will, when I merge from him next time, look like he had done some real changes.12:33
markhspeakman: is this a real problem you are seeing, or a theoretical problem you are concerned you might see?12:33
james_wspeakman: yes, there will be an extra revision which is B's merge from you12:34
speakmanmarkh: we havn't started really yet, but I did some test with three different branches on my local machine and it ended up like this.12:34
speakmanActually; we're trying to find a suitable workflow for improving the phpBB3 code base for our own purpose (we're running a public forum which will customize the forum code to our needs)12:35
speakmanIf anyone have a better idea how to manage the development, I'm really listening :)12:35
markhspeakman: as james_w says, the log will show the merge - is that your concern?12:37
speakman(i'm also thinking of another option where there will be a PQM which handles merge of patches/bundles through a mailinglist/mail account. But I've never setup an PQM and I'm not 100% sure of how it's working)12:37
markhif not, you will need to be more specific...12:38
speakmanmarkh: person A's log will show persons B's merge of person A, and the log from merge from person C will show his merge from both person A and person B. Alot of spam in the log, but no code change.12:38
speakmanI'll make a test right away, please hold on.12:38
markhspeakman: alternatively, do a log of bzr.dev or something similar, and identify the revisions you think are noise?12:40
speakmanThis is how it could look: http://pastebin.com/f27a1b1d12:43
james_wspeakman: if you don't like that then alias "merge" to "merge --pull"12:44
markhspeakman: IOW, oerson B should have done a simple 'pull' instead of a merge as his branch doesn't seem to have diverged.  james_w: is that correct?12:46
markhbut if person b's branch had diverged, he would have checkins which would have been merged and would be shown.12:47
markh(IOW, only merge when you have actual changes to merge)12:48
* markh thinks... :)12:48
james_wor investigate rebase, but it's not really recommended12:48
speakmanoh, never though of "pull". What's the difference with "bzr pull" and "bzr merge --pull" ?12:48
james_wmerge --pull will do a merge if needed12:49
james_wpull will tell you a merge is needed12:49
james_wif the branches have diverged then a merge is required12:49
james_wthe only way to avoid the extra revisions is to re-write history12:49
speakmanoh, so the default action should actually be "bzr pull" for everyone?12:50
speakmanand use only "bzr merge" when really needed?12:50
james_wdepends how you look at it12:50
speakman(this should *really* be included in the docs!)12:50
markhspeakman: yeah, and yeah, it should!12:50
james_wif you always use "bzr merge" then your mainline records what happened to your branch12:50
james_wif you ever use pull then it synchronises your branch to the other, so the mainline shows what happened to their branch12:51
speakmanI think the Docs are really good in general, but it lacks real world issues. Something like a web developing project example.12:51
james_weither one of those could be desirable12:51
james_wspeakman: if you point to where you would have expected to find this in the docs we can fix it12:51
Peng_lifeless: pong :P12:51
markhbzr suffers from an "embarrassment of riches" in some respects - too many possible workflows...12:52
speakmanjames_w: I guess somewhere close to the "Workflows"-section imo12:52
speakmanI think the Workflows-section is really good, but the "Real world examples" sounds like a section on its own12:53
markhit could be said there are lots of scenarios, but not much in the way of real world guidance...12:53
speakmanI think web developing (in php) is pretty commong12:53
speakman-g12:53
markhI think what I do is pretty common too ;)12:53
markh(which isn't that ;)12:54
speakmanAnd the mess PHP programming can result in, it's a pretty hard case too ;)12:54
james_whttp://doc.bazaar-vcs.org/bzr.dev/en/user-guide/#team-collaboration-distributed-style12:54
james_whttp://doc.bazaar-vcs.org/bzr.dev/en/user-guide/#pseudo-merging12:54
speakmanmarkh: I don't like PHP very much myself, but I really think it's one of the most wide spread languages and even used12:54
james_wso the doc explains the recommended workflow12:55
james_wwhich you didn't want12:55
james_wit could perhaps do with more on the difference between merge and pull12:55
markhjames_w: well, I'm not sure I agree with that :)  In fact, I've heard jam argue that in many cases, asking every core developer to use a *checkout* of the trunk is best practice - particularly to avoid the whole "overwriting of history" thing which push can do and the details of which currently escape me...12:56
james_wyeah, and that's in the doc12:57
james_wif you have a trunk12:57
* speakman 's reading the docs...12:58
markhthe broader point is that for someone completely  new, the "best practice" isn't always clear - especially when coming from a VCS which only has *one* workflow :)12:58
james_wtrue12:58
speakmanmarkh +112:59
james_wbut you appear to have decided that you wanted the no-mainline approach12:59
speakmanAnyone knows how "git" handles this?12:59
james_wyou just wanted the less preferred "pull" workflow to go with that13:00
james_wwhich isn't documented, to reduce the number of documented workflows13:00
speakmanI could go with a mainline, but then more people than me must be able to merge things into it.13:00
james_wit does "merge --pull" by default13:00
speakmanThe main problem is more that I need to introduce an easy way to real bzr newbies (and not very skilled users at all) to make use of bzr through the PHP development.13:02
speakmanThe actual problem is the PHP language which seems too easy to start with, and therefor will never filter some sort of people out ;)13:02
markhspeakman: so *my* preferred approach is to have a nominated "trunk" which people do *checkouts* from into a local dir.  They then *branch* this local dir into another dir for performing changes, and make checkins to the second dir.  When ready, they merge the second dir back into the first.  This merge will leave an uncommitted merge into the initial checkout.  They then test the merged changes, and perform a "checkin" into this checkout of13:03
speakman(this would probably never be a big issue if it was skilled C programmers)13:03
speakmanmarkh: your message got truncated after "into this checkout of..."13:04
markhspeakman: i doubt it has much to do with the language :)  If the developers may struggle with the dvcs concepts, you may be best "emulating" SVN with pure checkouts everywhere...13:04
markh... They then test the merged changes, and perform a "checkin" into this checkout of the trunk - the checkin then actually changes the remote trunk.13:05
speakmanmarkh: They've no clue what's SVN...13:05
markhspeakman: conceptually, a single "checkout" they use and perform a simple "checkin" to with a single set of changes might be easier to convey...13:06
speakmanBut your example above seems like a way that could work...13:06
markhwhich would change my example to avoiding the use of the second dir completely...13:06
speakmanHow about setting up an PQM and make them "bzr send" their changes?13:06
markhie, just do a checkout, make changes, test, checkin.13:06
markhspeakman: that's more than I know about, but probalby something you might consider further down the track...13:07
speakmanmarkh: that seems like the easiest way, but then I could go with SVN as well right? :)13:07
markhspeakman: well, with svn you would be *limited* to that approach13:08
speakmanWith SVN I could setup an SVN server which they could commit their changes to, which even handles authentication and ACL. A thing i really miss with bzr serve.13:08
markhbut the more advanced developers could still use branches and merging if you use bzr13:08
markvandenborre1hi! we're deciding on a vcs to use here13:08
speakmanmarkvandenborre1: go with bzr :)13:09
markvandenborre1and my colleague is wondering if there is some kind of visual studio 2k8 integration13:09
markhmarkvandenborre1: not a functioning one I am aware of :)  However, there is a good "tortoise" for general integration with explorer, "file open" dialogs, etc...13:10
speakmanmarkh: point taken, next thing is to setup permissions for some users to commit checkouts to the mainline. That wouldn't be a problem if the mainline pulled them itself :)13:10
markvandenborre1I can only find a reference to a google summer of code project from 200713:10
markvandenborre1but no code at first sight13:10
markvandenborre1speakman: I'd love to, but I need cold hard technical arguments13:10
markvandenborre1over svn13:10
markhspeakman: if the trunk is behind sftp for example, then it manages write access IIUC.  I've no clue about auth and the smart-server though...13:11
markvandenborre1markh: you mean tortoisebzr?13:11
markhmarkvandenborre1: look at the tortoisebzr project on launchpad - the code is very current and very active - by me :)13:11
markhyes13:11
markvandenborre1ah, I see13:12
markvandenborre1nice13:12
speakmanmarkvandenborre1: IIUC?13:12
speakmansry, markh13:12
markh"if i understand correctly"13:12
markhmarkvandenborre1: the 1.11rc1 binaries are stable and include tortoise...13:16
markh(the 1.10 binaries have a somewhat broken tortoise :( )13:16
speakmanmarkh: leaving ftps access to each committer will make the whole repository very vulnerable. If bzr serve could make use of authentication what would work as a command filter making sure people can only do commits and nothing else.13:21
markhspeakman: I'm afraid I'm not familiar with the various server options or their auth at all...13:22
speakmanThere is another option; using bzr as a CGI/WSGI interface. Then use Apache's own digest for authentication.13:22
speakmanhttp://doc.bazaar-vcs.org/bzr.dev/en/user-guide/#id8013:23
speakmansorry: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/#serving-bazaar-with-fastcgi13:23
markhto clarify, I've no actual *interest* or desire for knowledge in that either ;)13:24
speakman(here at my company we use smart serve with inetd and it works really good, but then it's a local protected network)13:24
markhyeah, I've too much experience in integrating NTLM authentication with various servers to find it remotely interesting... :)13:25
markhI'd rather keep auth as officially "somebody else's problem"13:26
speakmanNTLM?13:27
markhwindows auth13:28
speakmanWindows? (kidding... :) )13:28
markh:)13:29
speakmanI still think there should be a real world use case based on web developing in the docs.13:29
markvandenborre1+113:30
markvandenborre1but then again, I'm too lazy to write that out myself13:30
markvandenborre1(doing other work to help free software, though, like helping to organise FOSDEM)13:31
markvandenborre1markh: thx for the helpful hint on tortoisebzr13:31
speakmanAfter this web project has start working in a great maner, I might write one. But until then I really need a working solution to start with :)13:32
=== kiko is now known as kiko-phone
markhspeakman: there are lots of working options - the most appropriate depends on lots of things though13:36
markhpopd13:36
markhoops :)13:36
vadi2bzr break-lock isn't working for me for some reason: http://paste.pocoo.org/show/100522/13:37
vadi2I tried it several times, but it doesn't want to break13:38
markhvadi2: there is no evidence there of you having run 'bzr break-lock lp-46717904:///~vadi-mapper-dev/vadi-mapper/main/.bzr/branch/lock '13:38
vadi2It still says just error, unsupported13:39
vadi2http://paste.pocoo.org/show/100523/13:40
markhsorry, no idea :(13:42
Peng_"bzr break-lock lp:vadi-mapper13:44
Peng_Augh, I keep copying newlines.13:44
Peng_vadi2: "bzr break-lock lp:vadi-mapper"?13:44
Peng_The error message giving the wrong URL is either a known bug or was fixed a month or two ago.13:45
vadi2ey that worked, thanks!13:45
=== bac is now known as bac_afk
=== bac_afk is now known as bac
=== aumontabe is now known as abeaumont
Le-Chuck_ITAHi there. I made the mistake to bzr add a big directory of never changing binaries, and now I have a huge .bzr. How can I "unversion" the directory and drop it from the .bzr repository forever?15:18
=== fawek_ is now known as fawek
james_wLe-Chuck_ITA: was this in the last revision, or has it been going on for a while?15:26
Le-Chuck_ITAit has been going on for a while15:29
Le-Chuck_ITAjames_w: googling around it seems that the easiest solution is to re-init the repository!15:29
james_wthere's not a good answer for that yet15:30
james_wyou could re-write the repository to remove that data, but the code hasn't been written yet as far as I know15:30
Le-Chuck_ITAjames_w: thanks at least now I know this... will be more careful next time.15:31
awilkinsYou could rebase your repo15:33
awilkinsbranch it at -r <disaster -1>15:33
Le-Chuck_ITAawilkins: that won't make the .bzr smaller15:34
awilkinsHmmph, I'm not thinking this through15:34
Le-Chuck_ITAand I like to pass the .bzr along by email :)15:34
awilkinsOnce you've eliminated the revision with teh binaries you can branch it off to a separate repo and send that instead.15:35
awilkinsBut I'm now not sure rebase will do that :-(15:35
Le-Chuck_ITAthanks I may try later but the history until now was "monotonic" in the sense that we didn't erase anything yet :) Thus if I throw it away I am just fine15:36
awilkinsThat's certainly the easiest route :-)15:37
vilajam: ping15:37
=== asac_ is now known as asac
jonnydeecan anyone tell me when I should merge and when I should pull changes?15:56
jonnydeein my case I have a development branch and branched from it a testing branch. now when the development branch evolved should I merge or pull the changes into the testing branch?15:57
jonnydeeas far as I understand it a pull does pulls in the changes from the development branch which results in two equal branches (assumed the testing branch has not evolved separately)15:59
jonnydeewhile a merge will reflect the merge in the testing branch's history16:00
jamvila: pong16:00
jonnydeeso I get two different branches because the testing branch shows in its history a merge.16:01
jonnydeeam I correct?16:01
=== kiko-phone is now known as kiko-fud
olliehey guys i need a little help getting my head around setting up a bzr repo16:21
olliei have created /home/bazaar/repository/web/project/example.com/16:21
olliethen bzr init in example.com16:21
olliei then do a checkout from a ssh user e.g. /home/developer1/dev/example.com16:22
ollieI have apache setup so that i can view the dev version for my developers e.g. dev1.example.com16:22
olliewhich has a document root at /home/developer1/dev/example.com16:23
olliebut I want to have branches in my repo e.g. /home/bazaar/repository/web/project/example.com/developer1/ /home/bazaar/repository/web/project/example.com/developer216:23
olliewhich i am not sure how to do16:23
ollieor in fact how i would manage the branch changes and merge them back into the trunk16:24
olliethe idea is that every developer has their own space on the server to develop and then i can push from the trunk to a live server when i am happy with the changes16:24
ollieso really just after some advise or pointers. Odly, there seems to be very little that a google returns on this16:25
visik7what's the problem with trac on bzr ?16:28
olliesee http://bazaar-vcs.org/TracBzr16:29
visik7someone told me that DVCS aren't very manageable  with trac16:29
visik7'couse it's slow16:29
olliehttps://launchpad.net/trac-bzr16:29
davidstraussHow do you start the QBzr bundled with the Mac OS X .dmg?16:37
visik7bzr qbzr16:38
jonnydeeregarding my case I just explained, please let me just know what you would do...?16:44
visik7trac or launchpad ?16:47
visik7I can't decide16:47
=== BjornT_ is now known as BjornT
shankhshi17:23
shankhsI installed bzr but bzr is not working behind proxy with authentication.17:25
shankhswhat to do?17:26
=== abadger19991 is now known as abadger1999
garyvdmshankhs: What os are you using?17:52
garyvdmI know you can set the $http_proxy environment var on linux17:52
garyvdmNot sure if it works on windows though.17:53
garyvdmexport http_proxy=http://username:password@host:port/17:54
ericvwI am getting GPG verify error when using the PPA repository.  Has anyone else been getting this error?18:12
james_wericvw: it's signed now18:14
james_wyou could add the key to avoid MITM attacks18:15
ericvwjames_w: how can I do that?18:16
james_wapt-key18:16
james_wyou can get the key from keyserver.ubuntu.com18:17
james_wid is 8C6C1EFD18:17
james_wyou can then check the fingerprint at https://edge.launchpad.net/~bzr/+archive/ppa18:18
james_wif you are using the "bzr" ppa that is18:18
ericvwjames_w: Sorry I am a bit new to using apt-key and adding sources to apt-get, so how do I use apt-key with keyserver.ubuntu.com?18:19
james_wdunno :-)18:19
ericvwinteresting.  I'll search around a bit.  Thanks!18:19
ollieI am having a few problems with bzr ignore. The directory I am trying to ignore is not versioned and has been added using bzr ignore config/*. shows in .bzrignore but when i do a bzr st the folder comes up as unknown and the files in config/* are not shown when i do a bzr ignored. This leads me to believe that it has not worked properly. My terminal output can been seen here http://pastebin.com/m7deae95e. Any ideas?18:20
james_wericvw: http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xD702BF6B8C6C1EFD is where the key is18:22
garyvdmollie: bzr ingore config18:22
garyvdm*ignore18:23
ollieWarning: the following files are version controlled and match your ignore pattern:18:23
ollieconcrete/config18:23
james_wwget -O - "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xD702BF6B8C6C1EFD" | egrep -v "^<" | sudo apt-key add -18:23
james_wericvw: ^18:23
ericvwI got it18:24
ericvwjames_w: thanks18:24
james_wno problem18:24
garyvdmollie: bzr ignore ./config18:24
olliegaryvdm: is it possible to remove a rule?18:26
olliei edit it using vi but it just seems to come back18:26
garyvdmOllie: I normaly just edit .bzrignore by hand18:26
ollieyeah thats what i am doing weird18:26
garyvdmollie: Not sure why18:27
olliebzr ignore ./config/* that should just ignore the directory config in the root dir right?18:27
Peng_Your shell should expand that to all of the files in config.18:28
ollieyeah it does so ./config/site.php then ./config/site_theme_paths.php (great) then config (doh). If i manually remove the last one config it gets written back in18:29
ollieit seems to be trapped in a loop18:30
ollie:(18:31
olliecracked it :)18:34
olliestill don't see why bzr ignore ./config/site.php doesn't work18:34
olliebut hey18:34
olliegaryvdm: thanks for the help :)18:36
garyvdmollie: Pleasure18:37
sevenseekerI am having trouble serving up my branch with the dedicated 'bzr serve' server19:15
sevenseekerclient says 'foo' not a branch19:15
sevenseekerrather bzr://foo/root19:16
sevenseekerbzr info on server branch says it is the 'branch root: .'19:16
sevenseekerI am following the instructions at http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#running-a-smart-server19:17
=== beaumonta is now known as abeaumont
=== spm_ is now known as spm
davidstrausssevenseeker: bzr:// requires a domain name or IP address19:46
sevenseekerI have an entry in my /etc/hosts file, plus I tried using IP... same results19:48
LarstiQsevenseeker: what command do you run on the server, from which directory? And what exact command do you run on the client?19:50
sevenseekerok, I had a relative path for the --directory directive, that was the problem.  I read about that but remembered incorrectly that it applied to only the bzr+ssh option19:52
igcmorning20:11
beunoigc, hi!20:12
beunojust FYI, your plugin for caching revnos has made me extremly happy20:12
beunohaven't started testing it, but I will tomorrow20:12
igcthanks beuno. I thought you'd like it20:19
igcwould it help under loggerhead?20:20
igcor in combination?20:20
beunoigc, it would ROCK in loggerhead20:21
beunoif we had that, and I understood how to access merge points partially, we may be able to solve a lot of the performance issues20:21
beunoas well as change the underlying madness I've been wanting to re-write20:22
igcbeuno: so I think our goal should be to make the two plugins complementary20:22
beunoit was on my ToDO list to write exactly what you did, so I'm very happy that just popped out20:22
igcI don't think we want to cache twice20:22
igcin two separate places20:23
beunoigc, absolutely20:23
gsuvegbzr push:parent works only with developer version?20:24
igcbeuno: I'm also planning to extend it to store depth information and to keep the data in top sorted order, allowing me to make log go faster20:24
beunoigc, this doesn't, OTOH, make the initial hit cheaper20:24
beunoie, I'll have to generate the full revision graph at least once20:25
igcbeuno: right, but you only get that once after the tip moves20:25
igcs/top/topo/20:25
beunoigc, how about caching the merge-points between them as well?20:25
james_wgsuveg: you need a fairly recent version20:25
james_w1.10 perhaps20:25
* james_w waves to igc and beuno 20:26
gsuvegBazaar (bzr) 1.1120:26
igchi james_w20:26
* beuno waves back to james_w 20:26
gsuvegive this and dont wokrs :)20:26
igcbeuno: one step at a time :-)20:26
beuno:)20:26
beunoigc, if the tip changes, the cache gets invalidated?20:27
igcbeuno: I thought it was a good effort for a day's work20:27
igcbeuno: currently20:27
beunoigc, it would of taken me over a week, so it's an amazing effort for a day IMHO  ;)20:27
beunoanyway, I'll start diving into it tomorrow, and will try to actually contribute patches and other useful things20:28
igcbeuno: if there are no merge revisions in the new revisions, I'd like to append to the cache rather than wipe it but that's not done yet20:28
beunoah!  that sounds interesting20:29
beunoigc, I wonder if I combined the partial revno access jam worked on, with this plugin, I can make an even bigger cut in performance20:30
igcbeuno: I'd expect so20:30
jamigc: as long as the mainline doesn't change, you can always append to the cache20:30
jamso even if you merge, etc20:31
jamso if old_tip is in branch.revision_history() then you can append new values20:31
jamthat said, only the lazy_revno branch is able to compute just some of the numbers20:31
jamso you wouldn't save any time with bzr.dev20:31
igcthe trouble is that with really large branches like emacs and OOo, no amount of "make the algorithm faster" competes with "just cache the end result"20:31
jamigc: sure, there are just various ways to reduce the amount needed to cache, etc.20:32
beunojam, by "some of the numbers", do you mean "only mainline revnos"?20:32
jambeuno: if you don't change the mainline revisions, dotted revnos never change20:33
jamso if you append new mainline revisions20:33
jamthe existing dotted revnos won't change20:33
jamonly if you 'push' a new mainline would things change20:33
vilaigc: at one point though, you'll hit the "loading cache result" is longer than "calculating only some revnos"20:33
jamright, vila. that was the goal to get to20:33
jambut really hard to achieve from my experience20:33
* beuno is very happy that the revno performance topic is back on the table20:34
igcjam, vila: right.20:34
jamI *am* curious what effect my lazy_revno branch would have on your timing numbers20:34
igcfor emacs, revno-cache comes in at 5M or so20:34
jamsince I think for emacs it would actually do pretty darn good20:34
igcload time in 1.1 secs on my laptop20:35
jamas they don't (yet) have complex merging ancestry20:35
jamIIRC20:35
igcright: 100K revs, 93K on mainline20:35
igcso some merges but nothing like mysql say20:36
vilaigc: hehe20:36
mwhudsonigc: how are you persisting the cache20:36
mwhudson?20:36
igcmwhudson: simply as revno\trev-id\n, one per line20:37
mwhudsonah ok20:37
igcit's readable :-)20:37
jamigc: You could easily use a btree to do so20:38
jambtw20:38
beunohow bad would it be to create files with the revid as their name, and the revno as their content?20:38
jamand then you could look up a single value without having to read the whole thing20:38
jamI think you still need the merge depth20:38
vilaigc: should be easy to index.. (jam was faster :P)20:38
beunoah, btree's accomplish that20:39
vilabeuno: you want to create 100k files ?20:39
mwhudsoni guess for large caches (ab)using sqlite might be faster20:39
mwhudsonor yes, a btree20:39
gsuvegbye20:39
beunovila, well, I want to access a revid without going through a big list. 100k files is a side-product. But I get it, it's not good  :)20:39
igcjam: yes, I still want and need to cache the merge depth too.20:41
jamigc: https://code.edge.launchpad.net/~jameinel/bzr/lazy_revno20:42
jamIf you want to play around with what I worked on20:42
jamYou may want to wait for the next mirror, since I merged bzr.dev and resolved the conflicts20:42
jamor get it from http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/lazy_revno20:43
igcthanks20:44
jamI think it currently has some bugs wrt numbering of ghost revisions20:45
jamPartly because internally we are a bit inconsistent about how we handle them and NULL_REVISION20:46
=== mDuff is now known as nDuff
nDuffBNF-Austin, howdy.20:49
BNF-Austinhello, that you Duffy20:50
davidstraussBNF-Austin: Greetings from near Mopac & US-18320:50
nDuffall, BNF-Austin is Basim Faris, one of the partners behind NossaTV (an early adopter of Bazaar, several years ago)20:50
nDuffdavidstrauss, heh -- I'm over by Braker and 183.20:51
BNF-Austini'm off 620, close to Lakeway. Working from home.20:51
* nDuff is only working with NossaTV on an occasional and informal basis these days, and thus in the process of introducing BNF-Austin &c. to community support resources.20:53
BNF-AustinThanks for all the work that you has gone into. bzr. It has been great to use over the years.  Duff suggested that I join, so that I can bug you guys, when i make beginner mistakes as I try to manage remote bzr instances... thanks ahead of time, I will do my best to avoid wasting your time.20:57
jamigc: so in my quick (and limited) testing, doing:20:57
jam'ian.clatworthy@canonical.com-20090120040338-yxg0r2ab45lqtks9'20:57
jamis virtually instantaneous (.407s versus .377s baseline overhead)20:57
jambut 'v.ladeuil+lp@free.fr-20081205140447-vk9s1veaqyy3ch9t' is 1.7s versus 0.377s overheda20:58
jamthen again, get_revision_id_to_revno_map is 2.87s20:58
jamigc: I would also imagine that you could insert your existing revno-cache into the LazyRevnoMapper code, to seed it with interesting points along the way21:02
igcjam: do you know what overhead calculating the merge depth (vs not) has?21:07
igcfor something like log -rX.Y.Z, we generate the revno map as one step and then topo sort again later to get the merge depth21:08
igcI'm wondering if saving the merge depth in the first step would slow that step down or not21:08
igcI could then change log to ask the branch for the merge depth21:09
igcor perhaps branch.get_topo_sort()21:09
igcif it's already been done, we wouldn't need to do it again21:09
igcrevnocache may as well save the revno,revid,depth in topo sorted order if it knows it21:10
igcand monkeypatch branch.get_top_sort() if we add that21:11
igcjam:^21:11
igcbeuno:^21:11
igcs/get_top_sort/get_topo_sort/21:12
beunoigc, I think that if it saved the depth, then the partial access issue would be solved21:12
beunoigc, I do have a question about the revnocache plugin: does it work both ways?  revid -> revno and revno -> revid?21:13
beunoie, does it work for bzr log -rX?21:13
beunos/work/come into play21:13
beunoor just for converting revids intro revnos?21:13
igcbeuno: it monkeypatches branch.get_revision_id_to_revno_map21:15
beunoI'm testing it a bit, but I don't seem to see a difference in doing bzr log -rX with or without the plugin21:16
igcright. try log -rx.y.z21:16
igcthen try it again21:16
beunoaha!21:17
beunoit makes a big difference with dotted revnos21:17
igcor better still status -rx.y.z (as log in the mainline has speed issues well beyond just finding the revid to log)21:17
beunoso mainline revnos are cheap-ish?21:18
igcyes, they are now and have been in bzr.dev for some time21:18
beunoawesome, it cuts time in more than half21:18
beunoigc, but I don't see a difference when running: bzr log -rX -v --long21:20
beunothat shows dotted revnos, shouldn't it improve significantly as well?21:21
mwhudsondoes it only cache one way?21:25
igcbeuno: see my email reply to Alex sent minutes ago21:31
igcmwhudson: branch.get_revision_id_to_revno_map() goes one way, but it's used by the code that maps the other as well21:32
igcthe API return the full map, not just one value21:32
beunoigc, I can't find it. Is it a reply to the plugin announcement?21:33
igcyep.21:34
beunoigc, did it go to the list?21:34
igcbeuno: sorry. it has now21:36
beunoigc, that's great, thanks21:40
beunoigc, I intend to use get_revision_id_to_revno_map in loggerheadlib, so this is still fantastic news for me  :)21:41
jamigc: For calculating merge  depth, we already do it to compute the dotted revno21:42
jamI would guess we could compute it without it, but for now we have it "free"21:43
igcjam: cool. thanks21:44
jamigc: the original goal of the lazy_revno branch was to replace the object returned by get_revision_id_to_revno_map21:45
jamjust fyi21:45
pickscrapeIs it possible to write a custom HPSS "procedure" in a plugin, and call it from a plugin at the client end?21:54
jbalinthi22:02
jbalintif i have a contents conflict, does this mean bzr thinks this is a binary file?22:02
igcjam: poolie is travelling today and I don't know if lifeless is here or not?22:03
igcjam: did you want a call?22:03
jamsure, you want me to start it?22:04
igcsure22:04
supergonzoHi. I'm looking for some advice :-) I have managed to get colleagues to use bzr at work. But we are all using different editors and I would like to make sure tabs are replaced with 4 spaces when they commit. Any hint on how to do that (if it is feasible) ?22:08
LarstiQjbalint: if it doesn't say Text conflict? Yeah, I think so.22:14
jbalintLarstiQ: is there any way to find out why it thinks so? i've checked this file,e there is no zero bytes of anything above 7f and teh extesion is .xml22:15
LarstiQjbalint: iirc there is a heuristic that checks the first 1024 bytes for some binary related characters, \0 but maybe more22:17
nDuffsupergonzo, there's a plugin called "bzr-whitespace" you might look at. It's more for warning or preventing checkins when whitespace is broken than silently fixing it, though.22:18
jbalintLarstiQ: right, but i'm guessing thats not the reason22:18
nDuffsupergonzo, ...err, looks like it's been renamed to bzr-text-checker.22:18
LarstiQjbalint: though it shouldn't trigger that, BOM perhaps?22:18
glatzorhello james_w, how can I call bzr bd inside of a python script?22:19
jbalintLarstiQ: i dont see it http://rafb.net/p/Lxtgiy61.html22:19
supergonzothx nDuff. But plugins need to be installed in either everyone's ~/.bazaar directory, right?22:19
glatzorjaavaaguru, should I call the binary?22:20
nDuffsupergonzo, generally, yes. If you use a PQM, you can have it run that check before accepting a merge request.22:20
supergonzoI'm the company's PQM :-) I'll have a look at that plugin or come up with a similar one. I should take a look at setting up a PQM too... that's one more thing on my 2009' todo list.22:21
LarstiQjbalint: neither do I22:28
LarstiQjbalint: if I add that file to a branch locally, it sees it as text22:28
LarstiQjbalint: how about the other version it is conflicting with?22:29
jbalintLarstiQ: is there any logging or something that would say why?22:29
* LarstiQ looks at the code22:29
jbalintLarstiQ: looks to be the same22:29
emmajanebeuno, Hello. :) I have a question about the upload plugin for bzr: I'm wondering if it is possible to only one sub-directory instead of the whole working tree?22:34
beunoemmajane, hi!  interesting you should mention that, I talked to vila about that yesterday22:35
emmajaneheh :)22:35
beunoit's not currently, it will in the future22:35
* emmajane nods22:35
beunowant to file a bug?22:35
emmajanecan do.22:35
lifelesshttp://paste.ubuntu.com/107500/22:39
lifelessjam: ^ real figures22:39
jamlifeless: what is the "corpus" you are using?22:40
jamThe current inventory xml?22:40
* igc breakfast22:40
jamOr the ones I uploaded to tungsten? Or ???22:40
emmajanebeuno, Ok, it's pretty terse, but I've filed a bug. Hopefully it makes sense. :)22:44
=== bac is now known as bac_afk
Peng_lifeless: ping22:56
lifelessjam: my bzr repo's inventories22:58
lifelessjam: haven't got the test solid enough to move onto the ones you uploaded yet22:59
lifelesshi Peng_22:59
jbalintwhat is file_id22:59
Peng_lifeless: You pinged me a couple days ago? :)23:00
garyvdmjbalint: Each file has a file_id that remains contain even if you rename the file.23:16
garyvdm*constant23:16
jbalintgaryvdm: alright, and thats not changing if you have a new rev, right?23:16
jbalintis there any way to show the id for a given file?23:16
garyvdmright23:16
garyvdmNot sure - other than through code.23:17
garyvdmjbalint: bzr status --show-ids23:18
lifelessPeng_: yesterday :)23:18
lifelessPeng_: I was going to ask if bzr-search was fast enough again now23:19
lifelessjbalint: bzr inventory --show-ids | grep filename23:19
jbalintthanks!, so if i have 6636@bce1ec22-edf6-0310-a851-a6aae2aa6c29 , does the "6636@" represent something specific or is that just an arbitrary path of it23:20
davidstraussIs there a non-ancient RPM for RHEL5?23:21
lifelessjbalint: they are uuids, no meaning at all23:21
jbalintlifeless: sorry i meant the parts before uuid, with the "@" symbol23:22
lifelessjbalint: its all the uuid23:23
mwhudsonigc: i wonder if you're going to end up caching the merge-sorted revision graph23:42
mwhudson(i think this can be updated on the introduction of new revisions in O(number of new revisions)-ish)23:42
Peng_lifeless: Oh. I dunno. I've only indexed a few small branches, so I haven't paid much attention.23:46
Peng_lifeless: Wait, I did index like 30 small branches (switching from the old to new index format), but I don't remember how that went.23:46

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