/srv/irclogs.ubuntu.com/2009/03/24/#bzr.txt

mwhudsonso the fetch over sftp was much quicker, the autopack not so much00:03
mwhudsonspiv: sftp push taking 8 minutes and bzr+ssh being killed after 45 minutes is pretty sad making :(00:04
lifelessmwhudson: in 1.12, if the branch was stacked, its the same code as 1.13 is doing00:14
lifelessmwhudson: _no_ change00:14
lifelessmwhudson: I realise its totally sad, but hey, thats why we added the streaming codepath00:15
mwhudsonlifeless: no stacked branches here00:16
* mwhudson resovles "less pointless grousing"00:16
jelmerigc: hi00:19
spivlifeless: it is a regression since InterOtherToRemote was removed; now InterPackRepo will never trigger if one end is bzr+ssh00:21
spivlifeless: so even non-stacked pushes to packs suck if the server is 1.1200:22
spivlifeless: a "fix" would be to update my unmerged InterOtherToRemote hack that I did for John (that checks _is_remote_before((1,13))) to be in InterPackRepo00:23
igchi jelmer00:23
spivI'd be ok with merging that too, because that with the _ensure_real_inter mess gone that hack wouldn't have to cause get_parent_map RPCs to be skipped too.00:24
spiv(Which was my main objection to merging the hack for John)00:24
jelmerigc: So, I've been looking at implementing a svn-keywords filter00:29
jelmerigc: however, I'd ideally like its value to match the value of the svn:keywords property (to avoid the need to support two settings in the future)00:30
igcjelmer: ok00:31
jelmerigc: svn:keywords however contains a comma-separated list of keywords to expand00:31
lifelessspiv: alternatively we could add a cache when we're pushing, which we can detect00:32
lifelessspiv: or tell people to upgrade ;)00:32
jelmerigc: is there some way to support that atm?00:32
jelmerigc: It looks like the current filter registration function requires a dictionary with all possible settings00:33
igcjelmer: it does00:33
igcjelmer: maybe we want a 'catch-all' handler as well00:34
igcjelmer: basically, the current design makes it easy to ...00:34
igchave different filters for different values00:34
igcjelmer: but I think you want the *one* filter covering all values, don't you?00:35
jelmerigc: yeah, having separate filters, one per keyword, seems overkill00:36
igcjelmer: I don't feel it's overkill - it maps well to the eol case for example00:37
igcjelmer: but it's definitely not what you need I think00:37
jelmerigc: I don't think multiple *filters* is overkill00:37
jelmerigc: I think having one filter for $Id$, one for $Date$, one for $SVNHead$, etc is00:38
igcjelmer: right00:38
igcand the current keywords filter handle all keywords from memory00:39
igcit just doesn't a configurable list of which ones to expand00:39
igcs/doesn't/doesn't take/00:39
jelmerigc: right, so a catch-all handler would basically mean registering a "fn(value) -> filterlist" callback rather than a dictionary ?00:44
igcjelmer: yes, something like that00:45
jelmerigc: ok, I'll look into that00:55
jelmerigc: did you see my patch for lazy registration?00:56
jelmerigc: Do you prefer an extra wrapper function or rather making the registry public?00:56
igcjelmer: just now - approved00:59
igcI prefer a wrapper fn (for now at least)00:59
jelmerigc: thanks01:02
* igc starts reviewing jam's LRUCache patch01:09
trypticonhey I gotta quick question about the FAQ page on http://bazaar-vcs.org/FAQ#head-e6448836a60a73c1954f287ef5e928b79e3ff005 .01:44
trypticonIn section "4.1. Are binary files handled?" what are other tools that can be used to better handle binary files and or media files?01:45
lifelesstrypticon: in what way01:47
trypticonI just wanted to know if there are better tools than bzr for handling binary files.01:47
lifelessI'm not aware of anyone with better answers in the open source version control space today01:48
lifeless                                                             ^distributed01:49
trypticonhumm.... So would it be a good idea to use an app like bzr for handling Binary-only files for version control?01:49
lifelesswell, plenty of folk do; it really depends on your requirements and what you mean by handling, and if your machine has the resources01:49
lifelesslike, if you are versioning 10GB database, files, you'll need 35GB of main memory, or so, to do a commit01:50
lifelessbut if you just want archiving, then maybe rsync is better and don't use version control at all01:50
trypticonI'm trying to set up an archive of binary files (iso's. executables, etc) that I would like to be able to quickly checkout and manage.  I was wondering if bzr would work for this task?01:50
lifelessiso's may be noticably slow, (700MB is a lot to shuffle round), executables shouldn't be an issue01:51
trypticonwhy would you need 35G to handle a 10GB file?01:51
lifeless10GB for the copy you are recording, 10GB for the basis copy to generate a diff, and python has some overhead for objet handling; doing a merge requires 3 copies, and some commits need to do a merge to generate annotations01:52
lifelessthats assuming we manage to perfectly avoid unnecessary copies in memory01:52
trypticonsounds to me like bzr probably isn't the tool I should be using.  Humm.....01:54
lifelessI suggest giving it a spin and seeing if it does what you need01:55
lifelesswe are improving things continually, and at some point will create drastically better handling for large files01:55
SamBjelmer: pong02:00
trypticonthe thing is that I need something strictly for handling binaries though.  Binaries as large as 4.5gigs.  I don't have any more than 3gigs on my system so I'm not sure bzr will be able to do what I want it to.  Either way I will take some time and look through the site because it sounds like a great system.02:00
lifelesstrypticon: yes, I suspect you'd have some trouble using bzr for 4.5GB binaries on a 3GB memory system :)02:02
trypticonI'll continue to research02:06
trypticonthanks so much for your help02:07
lifelessmy pleasure, good luck02:07
spivmwhudson: lp:~spiv/bzr/remote-pack-hack probably fixes your performance issue02:17
spivmwhudson: as a bonus, I think it improves pushing to stacked packs on old servers too02:17
mwhudsonspiv: cool02:17
spivmwhudson: e.g. pushing up that branch only took 175 RPCs (1m 27s)02:18
spivmwhudson: which is still much worse than a 1.13 server :)02:18
* spiv tries with bzr.dev to compare02:18
spivOh, hmm, a test failure.02:19
BasicOSXI must have not been paying attention, 1.14dev NEWS file is totally different then 1.1302:24
* SamB wonders if he should bother to report that bzr repo-push doesn't work on launchpad urls ...02:32
thumperSamB: what should repo-push do?02:35
spivmwhudson: yeah, it's a bit better than bzr.dev even on this trivial branch02:36
spivmwhudson: it should make a world of difference to pushing up a stacked branch with a large delta (ObNag: although still not as awesome as 1.13 on the server :)02:36
mwhudsonspiv: that's coming02:37
spivmwhudson: I know :)02:37
spivmwhudson: just think of me as the kid in the car repeating "are we there yet?"02:37
mwhudsonspiv: two can play that game02:37
* mwhudson mumbles something about lazy inventories02:38
lifelessmwhudson: heres one we prepared earlier02:43
lifelessBasicOSX: yes02:46
lifelessBasicOSX: its restier02:46
BasicOSXheh, isn't that more RESTful? Anyway, how can I do a local convert of the docts into html? I got some un-restier markup and PQM hates me02:47
BasicOSXmake rst2html?02:48
lifelessmake docs02:49
spivOr to just do the NEWS file, "make doc/en/release-notes/NEWS.html"02:51
lifelessigc: ping02:52
emmajanew00t! /me continues to be a bad influence: * esmerel makes a brief mention of source control in one of the book chapters, and includes bzr cuz of  you03:01
* emmajane bets that didn't make sense to anyone else.03:02
pooliecan some people help with a quick test: go to bazaar-vcs.org and tell me if you see a search box in the top right03:03
spivpoolie: I do03:03
emmajanepoolie, are you fixing templates again?03:03
emmajaneI cleared cache and am still seeing a search box top right (under community and plugins)03:04
pooliei'm trying to help newz fix them03:05
pooliethere's meant to be one03:05
pooliei don't see it, and i don't know why03:05
emmajanepoolie, which browser?03:06
BasicOSXpoolie:  the merge of NEWS from 1.13.1 into bzr.dev with the format change was messy, think I got it, PQM is happy, but need another set of eyes looking at it03:06
pooliejaunty's firefox03:07
emmajanepoolie, firebug is having a hard time finding the actual markup for the search box.03:07
poolieah i see03:07
pooliei had my account set to use his preview stylesheet, not the default03:08
emmajaneah03:08
emmajanethe tab index is screwy because of the edit stuff being at the bottom. not that it really matters, just "point of interest"03:09
SamBthere is an attribute for tab indexes ... or is that how the problem arises?03:18
Stanlinhello03:29
Stanlinis there any how to start with bazaar ?03:30
SamBtried the manual ? the wiki ?03:30
SamBhttp://bazaar-vcs.org being the latter03:31
lifelessjelmer: I'm hearing scary rumours03:32
lifelessjelmer: about dulwich & history03:32
SamBwhat's dulwich?03:33
lifelessthe bzr-git git implementation03:33
SamBand what are the scary things you've been hearing about it & history?03:35
StanlinSamB thank you, first opensource project with documents03:36
SamBStanlin: what? you've never seen documentation for an open source project before?03:36
spivpoolie: have you seen the Branch.open jail / ignore_fallbacks thread on the list?03:40
spivpoolie: a third opinion on that thread would be welcome03:40
pooliea bit; i'll look03:40
lifelesspoolie: we need a tie break on 'boolean flag used explicitly in the server' and 'trinary flag with 'auto' as the default'03:41
lifelesspoolie: you can nearly entirely ignore the rest of it - we're both happy with the code and its been reviewed etc03:41
poolieso if it was not "automatic in the server" then if some code in the server called it with "yes, open" it would run into the jail wall and fail?03:43
lifelesspoolie: unless it had explicitly opened the jail first03:44
poolieinteresting thread...03:44
poolieyou know it's spiv when there's a correct unicode diaresis on "naïve"03:45
pooliediaeresis*03:46
* igc lunch03:46
spiv:)03:46
lifelessæ surel03:46
lifelessy03:46
poolie"næve"??03:47
lifelessdiæresis03:48
poolieoic; maybe03:50
pooliei tend to only use unicode when needed03:51
lifelessme too03:51
lifelessI can't see any of the unicode glyphs I just typed03:51
poolielol03:51
lifelessä03:52
lifelessî03:52
poolie*anyhow*03:52
lifelessï03:52
lifelessah yes03:52
spivlifeless: stop flushing your vowels in public :P03:52
lifelessI'm in my own living room thank you very much :)03:53
poolielifeless: i think you marked bug 181367 invalid03:54
ubottuLaunchpad bug 181367 in bzr "bzr update should work in a treeless bound branch" [Low,Invalid] https://launchpad.net/bugs/18136703:54
pooliedespite filing it yourself :)03:54
pooliei have an old tree that starts to fix it03:54
poolieshould i discard it?03:54
lifelessuhm03:54
lifelessI'll tell you once you tie break03:54
pooliesent04:03
pooliedon't mix gaol and jail :)04:04
lifelesspoolie: so, I don't think update() on a treeless bound branch is safe or sensible, you need a tree, as my last comment describes why04:04
pooliei agree with your reasoning04:05
pooliei just wasn't sure if you'd had educated second thoughts or what04:05
lifelessif you have a branch that makes update cleaner and safer, that is good; if your goal was just to fix that specific bug - delete it04:05
spivpoolie: I only use gaol in the branch nick :)04:06
pooliespiv: still.04:06
pooliepeople may search for it04:06
lifelesswe need some fun!04:06
spivThis is a good moment for lifeless to say "they should use bzr search" ;)04:06
lifelessthey should use bzr search04:06
lifelessand it should know04:06
pooliehee hee04:06
lifelessanyhow, we restrained from creating commonwealth gaol in the api04:07
pooliethat was good04:07
poolieso the blackbox test fell to 23 calls because it was previously opening the fallback across the wire?04:07
poolieit would be nicer if this was not done in per-thread state but i suppose that's the only practical way for testing04:09
lifelesspoolie: no04:09
lifelesspoolie: it was because the server was opening the fallback04:10
lifelesspoolie: and the hook to record events was getting the events generated by the server during its opening of the fallback; each of the 23 commandline client generated hpss calls that was on a branch was triggering many hpss operations in the server (to the server itself)04:11
* ToyKeeper misses feature branches and bzr's merge-aware bisect tool04:14
* ToyKeeper is isolating a bug with hg :(04:14
poolielifeless: oh huh04:17
lifelesspoolie: so fixing third-party access requests fixes the apparent request count :)04:26
lifelesspoolie: btw, did you see jam's 'dont use =======' in news?04:26
poolielifeless: yes i thought i fixed it04:26
spivHmm, not according to my copy of bzr.dev.04:27
lifelessnot in .dev, it starts with ============= Bazaar Release Notes ...04:27
ToyKeeperow...  my head hurts.  In this hg tree, revision 1 is between r783 and r784.04:29
lifelessfun04:29
ToyKeeperA bisect narrowed it down to r771 to r773, then jumped back to r491 (which apparently actually happened in-between).04:30
ToyKeeperI guess all I'm saying is...  I love you guys.  :)04:31
lifelesscool :)04:31
poolielifeless: oh ok, i changed the others but not the toplevel one04:35
pooliei'll change that too04:35
pooliethough, it's odd to me that resolve thinks they're conflict markers04:35
pooliewhich should be just '======= '04:35
pooliei mean it should require 7 followed by a space04:35
lifelessI'm happy however you want to fix it :)04:35
lifelessthough requiring whitespace to be significant is a little ugly too04:35
lifelessI mean, why not '=======\n'04:36
* lifeless shrugs04:36
pooliespiv, jml, i just got05:23
poolieLockFailed: Cannot lock LockDir(lp-46121936:///~mbp/bzr/controlfiles/.bzr/branchlock): Transport operation not possible: readonly transport in _remote_lock_write05:23
poolietrying to push to https://code.edge.launchpad.net/~mbp/bzr/controlfiles using bzr.dev05:23
pooliei thought this was strange05:23
poolielifeless: apparently cvs established the convention that there must be a space there05:24
poolieand some tools expect it so we had to do it too05:24
mwhudsonpoolie: it's a mirrored branch05:24
poolieah ok05:24
mwhudsonthere has to be read only access to it for stacking05:24
pooliethat's a bit unobvious but of course you're right05:24
mwhudsonand um well05:25
mwhudsonaccessing it :)05:25
pooliewbn if it said "mirrored branch is readonly" but i understand05:25
jmlpoolie: it'd still say "Cannot lock ...: Transport operation not possible: mirrored branch is read only"05:26
mwhudsoncan a readonly decorator be customized to complain in a specific way?05:26
poolieit would have given me a clue05:26
pooliemwhudson: sure just raise whatever you want05:27
poolieum and maybe refactor ReadonlyTransportDecorator to remove the duplications of that string05:27
mwhudsonright, i meant the one in bzr05:28
poolieit would need either changing the one in bzr to allow passing in a string when it's constructed05:29
poolieor subclassing it05:29
poolieit's probably easy05:29
pooliei'll do the bzr bit if you're keen to do the lp bit05:29
james_wwould it also be possible to improve the situation with lp: and no launchpad-login?05:31
pooliewhich particular situation?05:32
james_wso that we can get rid of the unpleasant warning in that situation05:32
james_w"bzr push lp:foo" without a launchpad login gives you "cannot lock ...: Transport operation not possible: http does not support mkdir()"05:32
james_wor similar05:32
mwhudsonpoolie: sure, the lp bit should be easy05:32
james_wI added a warning whenever lp: resolves to http to say "you haven't run launchpad-login, if you are doing a write operation it will fail"05:33
pooliespiv i'm just trying your stacking hack branch against lp05:33
james_wwhich is obviously not great05:33
spivpoolie: cool05:33
poolieand it's not drastically better :(05:33
poolieit might be a bit better?05:33
lifelesspoolie: also, you're pushing to https ?05:34
poolielifeless: no, of course i'm pushing to the ssh branch described on that page05:35
poolieso that was, to create a new stacked branch, 404 round trips in 5m16s05:35
pooliea new stacked branch with a few new revisions mind you05:35
lifelesspoolie: there is no of course :)05:35
spivpoolie: on a small branch from bzr.dev it saved me ~10 round trips when pushing to launchpad05:35
spivWhich seemed about right given the small number of modified texts and new revisions in that file, and the savings were in append calls.05:36
poolieok so fwiw i had 49 append calls using your branch05:39
pooliei'm just rerunning it with trunk05:40
pooliei realize even smalls improvements are worthwhile05:40
igcpoolie: trying to review your doc patch ....http://rafb.net/p/ML5S7O90.html05:41
spivI was expecting it to be more than a small improvement.  Certainly if it does fix the regression vs. 1.13 that part is a big improvement... pushing a full history with that bug would hurt!05:41
pooliehm that's not so good05:41
pooliespiv, ok for trunk it was 489 rpcs in 5m30s05:42
poolieigc, ok, that seems to be a bug05:42
poolieprobably easily addressed in the makefile by setting the path05:42
igc'make docs' is fine in bzr.dev so I'm pretty sure your patch is causing that05:42
spivThat's a pretty substantial saving in rpcs.05:42
poolieyes, it probably is05:42
pooliebecause i moved the script05:42
igcpoolie: the rest looks fine so I'll vote tweak05:45
pooliespiv, it is05:45
Stanlinis there any quickguide, without launchpad marketing??05:51
jmljames_w: we aren't running anything for http that's smarter than apache05:53
james_wah, it has to come from the server side?05:53
jmljames_w: well, it might not *have* to05:53
jmlbzr asks launchpad to resolve lp:foo05:54
jmllaunchpad gives it a bunch of URLs05:54
jmlbzr decides to use the http one since there's no launchpad-login05:54
jmlbzr raises confusing error05:54
jmlthat's the rough flow.05:54
Stanlinwhy i need to sign up in launchpad to use bzr??06:04
jmlStanlin: you don't06:04
Stanlinwell all the docs points to launchpad06:05
spivStanlin: I don't see much reference to launchpad on http://bazaar-vcs.org/ http://doc.bazaar-vcs.org/latest/06:07
Stanlinim trying to configure a server, and give full permission to all users to do what they want... what is the best scenario in this document?? http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#personal-version-control06:09
spivStanlin: simplest is to give each user a normal system account and get the users to put their branches in world-readable directories inside their home directories.06:10
Stanlinbut they want to share the same files06:11
spivAnd have bzr and ssh installed on the server so they can use bzr+ssh:// URLs to access those branches.06:11
Stanlinshould they share the same branch?06:11
spivSure, if they want to write to the same branch.06:11
Stanlinoh its simple as that?06:11
spivRight.  Normal filesystem permissions with users and groups basically :)06:12
Stanlinthey just point to that directory ... commit and voila?06:12
spivYep.06:12
Stanlinoh nice06:12
Stanlinwell ill be annoying here for a while im new in bzr thanks for the cooperation06:13
Stanlinthanks a lot06:13
Stanlintime to sleep06:13
spivG'night.06:13
=== Mez_ is now known as Mez
bignoseif branch ‘foo/’ has a loom, and I ‘bzr branch foo/ bar/’, should I expect ‘bar/’ to have the same loom?06:46
bignose'cause it doesn't :-(06:46
bignoseBazaar (bzr) 1.13rc1, bzr-loom 1.4.0~bzr93-206:46
lifelessbignose: if 'a' and 'a' are the same branch, clearly they will, otherwise not unless you have run 'bzr record'06:46
lifelessbzr help loom may be useful for you06:46
bignoselifeless: ah. you don't yet have UTF-8 working properly?06:46
lifelessno, it will be months06:46
bignoseif branch 'foo/' has a loom, and I 'bzr branch foo/ bar/', should I expect 'bar/' to have the same loom?06:46
lifelessthere is something fucked deep in libx06:46
lifelessbignose: right, you need to run 'bzr record' to record the loom, it is for the loom as a whole what commit is for a tree06:46
bignoseokay, I have *no clue* what that command does, and the help is no help.06:47
lifelessthe loom is a stack of branches06:47
lifelessthis is versioned06:47
bignosewhen am I supposed to run it? what does it do, that I might *not* want to run it?06:47
lifelessrecord records a version06:47
lifelessgenerally you should run it before you branch/push to a loom06:47
bignoseso why would I not want it run, say, every time I commit?06:50
bignoseokay, it requires a message argument. I don't know anything useful to say in the message.06:50
bignoseall the useful stuff goes in a commit message, but apparently this is not a commit.06:50
lifelessan analogy may help06:50
lifelessimagine you are using a loom for a debian package06:50
lifelesswhere the bottom thread is upstream06:50
lifelessand the top thread is 'debian'06:50
bignoseokay06:51
lifelessand the threads in between patch the upstream code06:51
lifelesssuch that you can patch bomb what other packages might have in debian/patches straight out of the loom06:51
lifelessthe list of threads is something that we need to merge - if I merge my loom from you patches[threads] you have deleted need to be deleted in mine06:52
lifelessso record records the list of threads - the (name, revid) for each thread06:52
lifelessnp06:59
vilahi all07:00
igchi vila07:02
=== abentley1 is now known as abentley
* igc dinner07:45
=== stianse_ is now known as stianse
CBro2007hey guys... if developers wanted to UPDATE their branches with what is in the MAIN branch or TRUNK ... do I get them to do a bzr merge or bzr pull?08:34
CBro2007Just trying to understand the difference08:34
bob2pull08:36
Peng_CBro2007: If they're maintaining a mirror of the main branch, "pull". If they're developing independent branches that'll be merged into the main branch, "merge".08:42
Peng_CBro2007: In the latter case, once they have been merged, they can use "pull", but it'll change how "bzr log" is organized.08:42
CBro2007Peng_: I created a trunk copy first and then created their branches from it... so that should be a mirror yeah?08:43
CBro2007I mean its got the exact same dir structures etc of the project08:43
Peng_Ehhhh.08:44
Peng_CBro2007: What's the workflow? Do you use "bzr branch trunk feature_branch", hack on feature_branch, and merge it back into trunk; or do you do stuff directly in trunk?08:45
CBro2007Yeah the branches are each developer's own branch... where they work on different features ... run it past me for a code review and I merge their changes to TRUNK08:45
CBro2007I got that part working... now I want to do the reverse.. where they synch their own branches with LATEST changes that I merged into the MAIN branch08:46
CBro2007so I think a PULL would be the best way to go eh?08:46
CBro2007Maybe for smaller changes I will put the change DIRECTLY into Trunk08:46
CBro2007and then developers can update their branches accordingly... very much like the CVS update command that developers run every day before they start work08:47
CBro2007[dchoon@onyaaltd02 dcrepo]$ bzr pull /goldRepo/08:49
CBro2007bzr: ERROR: Permission denied: "/goldRepo/.bzr/branch-format": [Errno 13] Permission denied: u'/goldRepo/.bzr/branch-format'08:49
CBro2007Got this error when I was trying to PULL from the MAIN branch.08:49
CBro2007have to check the permissions....08:49
CBro2007its hard to get the permissions correct08:51
pygipoolie, poke?10:18
pooliehi pygi10:18
pygipoolie, can I pm you? :)10:19
pygior are you busy?10:19
pooliei am but you can10:19
jelmerlifeless: hi11:32
jelmerlifeless: yes, I dpushed dulwich11:32
lifelessjelmer: why?11:38
lifelessor are you developing it in git or something?11:39
lifeless[it broke mirrors and people tracking it]11:39
jelmerlifeless: yes, pushed into git so that others can contribute to it in git11:43
lifelessjelmer: I'm not clear do you commit to it in git, or bzr?11:57
jelmerlifeless: I personally commit to bzr then dpush12:01
lifelessjelmer: whew :P had me worried.12:05
lifelessjelmer: but why was a rewrite of the bzr history needed?12:05
lifelesssurely just dpushing to a git branch would make it accessible to git users?12:06
lifeless*yawn* 11pm12:06
* lifeless sleeps12:06
jelmerlifeless: well, we don't have roundtripping yet in bzr-git12:13
jelmerlifeless: dpush changes the local history12:14
jelmerlifeless: so that it is in common with the history in the foreign vcs12:14
jelmerlifeless: I can now pull from people who contribute to dulwich in git without problems12:14
MvGHi! I'm using bzr-svn from time to time, and have a local branch for this. After the latest bzr update to 1.13, I had to update bzr-svn as well in order to support that version of the API. While pulling, bzr died with a backtrace and a "KnitCorrupt" error message. That was while operating on a shared repo for all my bzr-svn branches. Initializing a new repo and creating a fresh checkout succeeded. In the original setup, the issue can be reproduced. Do12:30
MvGHint: above problem is NOT about bzr-svn per se, so don't stop reading after hitting that keyword... :-)12:31
jelmerMvG: what bzr-svn were you running prior to that?12:40
MvGjelmer: jelmer@samba.org-20090202154824-ks8tepmvoam9dmpz if I'm not mistaken.12:41
MvGIn case you want to have a look at the error message: http://rafb.net/p/kfbdrg91.html12:44
jelmerMvG: ah, it's the bzr-svn repository itself that you can't fetch?12:53
jelmerMvG: I doubt I can help there12:53
igcnight all13:09
abentleyjam: when you're punched in, can we do a skype call?13:13
MvGjelmer: Sorry, missed your reply. Fetching from scratch works, only updating fails. I guess I'll file a bug report, as I haven't found a related one, and as I don't think I've done anything evil on that repo to warrant this kind of error.13:25
yogsotothHi,13:31
yogsotothI tried to understand what the plugin loom is about13:31
yogsotothand I didn't find any resources.13:31
yogsotothCan someone tell me what this plugin do13:31
yogsotothplease ?13:32
=== nevans1 is now known as nevans
jamabentley: sorry about the delay. I've been on for a bit. Sure we can do skype14:28
abentleyjam: np14:29
NEBAPhi14:31
NEBAPis it correct that "bzr push .." is the only way to upload changes from a branch into the "trunk"?14:32
yogsotothI would say "bzr merge" could do the trick also15:07
NEBAPbut, how I understand, merge can only be used to "download" the changes, but in my case the editor wants to upload his changes..15:08
NEBAPlike you would do in svn ..15:08
LeoNerdmerge just pulls changes into the working tree, similar to a local edit15:09
LeoNerdYuo still have to commit those changes with  bzr ci15:10
NEBAPso what is the correct way? Bind my local branch to the "server-branch" and then commit? Or maybe, merge the "server-branch" into my local branch, then bind the local branch to the server branch, and then commit?15:11
LeoNerdEither works.15:13
LeoNerdThey're basically the same.15:13
LeoNerdDepends if you want to leave it bound, or do a separate push operation15:13
NEBAPok, I try to describe my workflow15:14
NEBAPthere is a "server-repository" where the mainline of the code is stored. Know I want to add a new feature (or bugfix or whatever). For that I want to create a local branch (copy) of the mainline on the server. In this local copy I want to create a new branch with the name of the feature. Then I work on the feature branch and do local commits there. After I finished all, I want to merge thoses changes back into the server mainline...15:17
jammorning vila, how goes the battle on the starward front?15:17
vilajam: it's bloody and uncommitable so far, but I have good hope :)15:19
vilajam: I'll get back to you once I get at least failing tests instead or erroring out ones15:30
jam:)15:30
jamI'm happy to chat if you want15:30
vilajam: Thanks. I know that, but I need more meat first :)15:31
SamBhmm, how can I do a bzr push over SSH to a system where bzr is only installed in my home directory?16:08
SamBoh, sftp://16:09
jelmerMvG: have you tried running "bzr reconcile" in the repository before pulling?16:11
MvGjelmer: not yet, trying...16:11
MvGBTW: filed as https://bugs.launchpad.net/bugs/34797916:12
ubottuUbuntu bug 347979 in bzr "KnitCorrupt listing _KnitGraphIndex when pulling" [Undecided,New]16:12
MvGjelmer: No luck with reconcile.16:17
MvGRan it in the repo dir, not in a branch. Is that correct?16:18
abentleySamB: You can also configure the location of the remote bzr using the BZR_REMOTE_PATH environment variable or the bzr_remote_path config variable.16:18
SamBthe config variables sounds more promising16:19
SamBhmm, I'd want it as a per-host option though ...16:19
SamBhow come the usual SSH paths aren't supported?16:21
SamBer, I mean, how come you can't say, e.g., sftp://cs.widener.edu:devel/dosemu/ to mean ~/devel/dosemu on cs.widener.edu?16:22
Kinnisonsftp://cs.widener.edu/~/devel/dosemu/16:24
Kinnisonbecause the colon is the port separator?16:24
SamBoh. there *is* an ietf draft about this, and what you say is consistant with that.16:26
SamBwhere is it documented in bzr's help/docs?16:26
Kinnisondunno, it's always how I've used sftp URLs in gnome etc.16:28
SamBoh, hmm, I guess that's normal16:28
SamBI just hardly ever create that form myself ...16:29
SamBstill, I think it should be documented ...16:29
KinnisonIs it truly up to bzr to document how URLs are formed?16:30
SamBwell, the draft doesn't even have an RFC number16:30
KinnisonShould it explain about http[s]://[user[:password]@]hostname[:port]/...16:30
Kinnisonmost URLs are scheme://[auth info@]hostname[:port]/path16:31
SamBtrue16:31
Kinnisonit's not a stretch to assume that for sftp16:31
SamBbut most VCSes document the path formats they accept ...16:31
SamBe.g. see git-clone(1)16:32
fR33b1Rdhi. i've problem with .bzignore! Patterns only work for the topmost directory. Any patterns für subdirs don't work. any idea what could be wrong?16:32
KinnisonTrue16:32
KinnisonfR33b1Rd: Odd, I find plain patterns work anywhere. Did you put a slash in your pattern?16:33
fR33b1Rdi tried many different patterns. "*.tmp" etc. just doesn't work16:34
KinnisonAre you editing .bzrignore directly, or typing "bzr ignore *.tmp" ?16:37
fR33b1RdI tried both. There's no difference16:37
fR33b1Rdis searched the whole docs, different forums, buglist etc. seems like nobody had such a problem before.16:37
KinnisonWell it works for me16:38
KinnisonI just did "bzr ignore '*.tmp'"16:38
Kinnisonand then it ignored .tmp files in the top level and in subdirs16:39
fR33b1Rdokay, I just found the problem. "bzr ignored" doesn't show ignored files if the specific subdir is unknown, which is absolut plausible behavior.16:48
fR33b1RdI thought it would be better to setup the ignore rules first and then add the dirs and files to version control. obviously not the best idea.16:50
jamvila: how's it going?16:51
vilajam: it's going :-) I get a bit distracted by unrelated failures since... bbc has a couple now :-) Last trip ended up in one more failing test for loom :-/ I thought I excluded them with -x '(?i)loom' but it came back by the window :0)16:54
jamvila: I was grabbing some food, and realized that it is ~ time for you to be done with work, right?16:56
jamDid you want to skip the call today?16:56
vilajam: yup, gf just came in anyway16:56
jamvila: k, have a good evening16:56
OllieRHey, run into a problem on mac osx. I have done a complete restore from a backup and the system is running as it should but bzr has gone a little wrong, bzr: ERROR: Couldn't import bzrlib and dependencies. Please check bzrlib is on your PYTHONPATH. ImportError: No module named bzrlib. So from googling I have found out that i need to add bzrlib as a pythonpath but i can't figure out how to do this16:59
KinnisonHow did you have bzr installed before?17:02
OllieRits looks like it was a macport17:02
KinnisonI'd suggest just reinstalling it then17:02
Kinnisonit possibly didn't get backed up properly17:03
OllieRok i am going to try the dmg17:03
OllieRnot sure how this is going to react to the old macport version17:03
OllieRyes a simple reinstall solved things :)17:11
fbondHi, is there any way to get bzr diff to put revision numbers instead of dates?17:15
abentleySamB: If you specify it in locations.conf, it's a per-host or even per-path option.17:22
fbondOh, I found bzr-diff-revid.  Will core diff integrate this change?17:30
james_wwhat does it do?17:31
james_wah17:32
james_wit has been suggested that an extra comment line be added with the revision ids17:32
james_wit could certianly be an option IMO17:33
abentleyjam: I'm looking at these iter_reference callsites.  The two approaches I can think of so far are: 1. Implement a reference cache on RevisionTree when read_locked.  2. Pass iter_entries_by_dir output into WorkingTree.initialize, build_tree and _build_tree.  Thoughts?18:07
rockyjelmer: hey i just instlaled bzr-gtk manually using the sdist ... how do i get nautilus to "pick up" the integration features?18:10
rockynvm, found readme18:11
exarkunIs there something like "bzr missing <repo url>" which doesn't involve typing <repo url> where <repo url> is the remembered push location for the working copy?18:11
jelmerrocky: hi18:12
jelmerrocky: did you see my review of your trac-bzr patch?18:12
=== bac is now known as bac_afk
abentleyexarkun: "bzr missing :push".  And of course, you can alias that to anything you like.18:14
rockyjelmer: sorry got dc'ed earlier, didn't catch what you were saying ...18:26
rockyjelmer: how would i go about troubleshooting the bzr-nautilus integration? is there a nautilus log i can view someplace?18:26
rockydon't suppose anyone knows if there is a $HOME dir script that gets run before nauitlus launches in ubuntu such that it can setup some env vars that will be available to nautilus ?18:39
fbondrocky: ~/.gnomerc18:41
fbondGets run when your Gnome session starts.18:41
rockyohh18:41
jelmerrocky: you can restart nautilus, and it will write to stdout18:43
rockyjelmer: what i'm trying to accomplish here is to use the nautilus integration of bzr-gtk where bzr (and bzr-gtk) are installed in a virtualenv ;)18:43
rockyand i just got it to work, woot18:44
rockythanks fbond ;)18:44
fbondrocky: No problem.18:44
rockyjelmer: bzr-gtk doesn't display any sort of emblems on files in nautilus to show they're versioned?18:45
rockyscratch that18:49
=== bac_afk is now known as bac
jelmerre18:57
jelmerbeuno: ping18:57
jamabentley: back to iter_references call sites...19:13
jamA cache while read locked seems fine19:13
jamthough I'm not 100% sure what paths are benefiting19:13
jambranch/sprout/whatever is an obvious case that needs to know about references, which is the 'fetch' fix we were talking about19:14
jamwe don't really have a RevisionTree at that time19:14
jamfor building the tree19:14
jam(checkout)19:14
jamit seems that build_tree could cache references it finds on the WT object19:14
* adrianrf newb q: want good repo setup strategy for managing multiple Drupal client projects. want all to share core Drupal distro code, and also per site have some shared contrib modules, some unique. can I nest repos? or should I treat each client site as a branch of the main distro?19:16
jamadrianrf: I'm not really sure how drupal projects are laid out. In general, if you want to version a group of files independently from others, then they should be in their own branch19:20
jamso that would hint that the various contrib modules would be independent branches19:20
jamyou may want to look at the 'scmproj' plugin, as a way to aggregate multiple branches into a meta-project19:20
jam(we have some nested trees work, but that isn't fully baked yet)19:20
jamyou *can* nest repos19:22
jamthough you may be thinking of what we call "branches" and calling them a "repo"19:22
abentleyjam: in principle, BzrDir.sprout can use the same RevisionTree for create_workingtree and iter_references.  Though at present, it can't even accept a RevisionTree.19:29
abentley(create_workingtree can't accept a RevisionTree)19:29
jamabentley: so your idea is that if it created a working tree, it has already found the references, and it can just return those in the 'iter_references' call, right?19:30
abentleyjam: Right.19:30
jamOne can also contend that during the *fetch* portion of sprout, we would know the references19:30
jam(I think)19:30
abentleyjam: For the purpose of fetching, yes.  Not for the purpose of creating branches or trees.19:31
abentleybecause we wouldn't have encountered the references if fetch didn't do anything.19:31
jamabentley: so is this so that sprout recurses to create child working trees?19:32
abentleyjam: right.19:33
jamis there a reason that create_workingtree wouldn't be the one creating them?19:33
BFrank_hey, can someone help me. I created a directory, and added a symlink and commited. Now the symlink has changed. How do I commit just the symlink?19:33
abentleyjam: Are you proposing that sprout first fetches everything for all branches, then creates all branches, then creates all working trees?19:34
BFrank_anytime I try to commit the symlink by typing commit <symlink name>. I get this message... bzr: ERROR: Not a branch: "/symlink_path"19:35
jamabentley: I'm saying that a call to the top-most "create_workingtree()" then creates the children19:35
jambut I suppose you're saying the issue is that we haven't fetched them yet19:36
abentleyjam: In order to do that, it would need to create the branches first...19:36
abentleyAnd possibly the repositories.19:36
abentleyBFrank_: That's a bug.19:36
BFrank_is it a known bug? Or is there a place I need to file it or something?19:37
jamBFrank_: at the moment we have a bug with dereferencing symlinks at the wrong time. The workarounds are to commit the containing directory of the symlink19:37
abentleyBFrank_: It's a known bug.19:37
jamand if that isn't specific enough19:37
jamyou can use something like "bzr shelve" to temporarily remove your other changes19:37
jamthen "bzr commit" then "bzr unshelve"19:37
BFrank_ok, unfortunately, commiting the container directory will also commit a bunch of stuff I don't want to commit yet19:37
BFrank_ahh19:38
BFrank_I haven't messed with shelve yet19:38
* adrianrf @jam: many thanks! will check out scmproj, and do some more experimentation. 19:38
BFrank_also, with blame, is there any way to get the --long parameter to put the date and time on the line, instead of just the date?19:39
abentleyjam: It's a whole layering problem.19:42
abentleyjam: I don't think create_workingtree should be creating branches and repos.19:45
abentleyjam: That sort of functionality seems to belong in sprout.19:45
jamabentley: sure, though it seems like create_workingtree should be creating working trees ...19:46
jamBFrank_: use "gannotate" or "qannotate" from bzr-gtk and qbzr respectively :)19:47
jambut no, I don't think annotate has a way to do so19:47
BFrank_hmm19:48
abentleyjam: Actually, I worry that such behaviour would be too smart for such low-level functionality.19:49
jamBFrank_: you'll find that gannotate is a much richer interface in general19:51
jamshowing the commit message19:51
abentleyjam: I don't think putting all this on fetch solves the problem either, because if you're creating nested branches, you need to know about all references, not just those that were fetched.19:51
jamand the whole information, etc.19:51
jamabentley: which is why fetch should be creating the branches19:51
jamand create_workingtree should be creating the child workingtrees19:51
jam...19:51
BFrank_thanks, I will have to look into that19:52
jamat least that feels like an appropriate layering to me19:52
abentleyjam: But fetch doesn't have enough info to create all the branches.19:52
jamI don't have a specific problem passing the Revtree down to the working tree create19:52
jamsince if we already have it19:52
jamwe really should be using it19:52
jamabentley: it has all the information to create new ones19:52
jamand if it created them the last time it was fetched19:52
jamonly things that have changed should be 'new'19:52
abentleyjam: It won't fetch CHK nodes for revisions that are already present in the repo.19:53
abentleyjam: But those CHK nodes must be used to determine which branches to create.19:54
jamabentley: but the previous time those nodes were fetched would have created them19:54
abentleyjam: But you can branch something multiple times.19:54
abentleySo when you branch the second time, into a new location, you don't create the branches.19:55
abentleyi.e. the subtree branches.19:56
abentleyWhich would be bad.19:56
jamabentley: but you would have the revisions in the shared repo...19:57
abentleyjam: But fetch won't have seen them, because they're already in the shared repo...19:58
jamsure, but you can't really create the branches until the meta-workingtree has been created, because otherwise you don't have the containing dirs created19:59
jam(you could create them ahead of time, but that would conflict with 'co')19:59
jam...19:59
jamso what happens in a tree-less repository?19:59
jamor when doing 'bzr co --lightweight'20:00
jamor switch... ouch20:00
jamanyway, I think having the option to pass a revision tree to create_workingtree is a good idea20:00
jamif you can leverage that for iter_references, it is a fine starting point20:01
abentleyjam: The more I think about it, it doesn't seem like a solution, because we still have to call iter_references with no cache when creating a treeless branch.20:04
abentleySo it doesn't fix the case you were describing.20:04
abentleyjam: If we assume 1. revision present in repo, 2. treeless repo, I can't see any way to avoid hitting the tree.  (Except changing the data format or indexes)20:07
jamabentley: I posted some of this to bug 34707020:14
ubottuLaunchpad bug 347070 in bzr "'bzr branch' with revisions transferred takes 20s" [High,Triaged] https://launchpad.net/bugs/34707020:14
jamit seems robert's reply got messed up by my mail client20:14
jamI'm not sure if you saw the same thing20:14
abentleyjam: I haven't been reading bug mail.  Looks okay on the web, though.20:24
abentleyjam: Your summary looks good.20:25
=== bac is now known as bac_afk
lifelessjelmer: does that mean you'll be continually rewriting the local history of dulwich ?21:29
jammorning lifeless21:43
jamlifeless, abentley: I just discovered a significant effect of api friction between "iter_files_bytes()" and TT.create_file()21:44
jamIt seems the former returns a string21:44
jamand the latter calls f.writelines(contents)21:44
jamwhich works for strings21:44
jambut takes 6.7s to write all of launchpad21:44
jamrather than 1.0s when using f.write()21:44
lifelessjam: interesting21:56
jamyeah, I'm trying to decide what the best fix is21:56
jamisinstance(contents, str): f.write()21:56
jamor changing iter_files_bytes() to return chunks21:56
lifelessuse type(contents) == str rather than isinstance21:56
jamlifeless: I believe that is type(contents) is str :) going by the recent patch submitted to change class comparisons to 'is' :)21:57
lifelessjam: yes :)21:57
jamlifeless: so you would change TreeTransform? (that was my basic feeling, but I thought I'd ask for feedback)21:57
lifelessIIRC iter_files_bytes is allowed to return chunks21:58
lifelessI'd need to check the docstring, but if a single string is valid for output,then yes, I'd change TT to cope21:58
jamlifeless: well it claims: bytes_iterator is an iterable of bytestrings for the file.21:58
jamof which21:58
jama string is a valid iterable of single-character bytestrings21:59
jamjust a really crummy one21:59
jamhmm.... it seems that RevisionTree.get_file_text() assumes that the return value is *exactly* a string22:01
jamespecially since RT.get_file()  wraps StringIO(self.get_file_text()) which wouldn't work for a list22:02
igcmorning22:02
jammorning igc22:02
igchi jam22:04
lifelessjam: they are possibly not honouring the contract and should be fixed22:07
thumperabentley: could I get a few line summary about the regression relating to nested trees?22:22
jamthumper: "iter_references()" takes a long time because it walks the whole tree looking for tree-references22:27
jamwe are trying to find a way to either make that faster, or only do it when we are already walking the tree for some other reason22:27
jam(store a separate list of tree references, do it as part of building the working tree)22:27
jamthe problem is that "bzr branch" in a shared repository with no trees22:28
jamnever does an operation that walks the content22:28
mwhudsonjam: so you have to do "for entry in tree: if entry.kind == 'ref': yield entry" sort of thing22:28
jammwhudson: that sort of thing, yes22:28
mwhudsonrather than "return entries.select(kind=='tree')"22:28
jammwhudson: we don't have an "index" or tree kind22:28
mwhudsonright22:28
mwhudsonugh22:28
jams/or/on/22:28
jamAnd if we need to create that index22:29
jamthen we need a disk-format change22:29
mwhudsonwhat format would need to change?  inventory + dirstate?22:30
=== cprov is now known as cprov-afk
=== fta is now known as fta_nano
=== fta_nano is now known as fta
jelmerlifeless: no22:50
jelmerlifeless: old revisions don't change22:51
jelmerlifeless: not even in git :-)22:51
lifelessjelmer: but, if you commit in bzr, then dpush, and that rewrites your branch, your branch will be continually changing?22:53
lifelessjelmer: we're tracking bzr22:53
jelmerlifeless: it only rewrites the new revisions in bzr22:58
jelmerlifeless: and I don't publish them before I push to git22:59
lifelessso you push to git then pull to the public bzr branch?23:00
lifelessSeems like a lot of swings and roundabouts to me, unless you're getting lots of git-side contributors23:00
jelmerlifeless: there's one additional command in my workflow23:01
jelmerlifeless: basically, before I push my changes to a public location, I dpush to git first23:01
poolieigc, if you're still in usertest mode, could you try to fix the trafficlight display on orcadas?23:05
lifelessjelmer: well its up to you; I know I'd be treating bzr as master and merging from git contributors - or have them mailbomb me23:05
jelmerlifeless: I am merging from git contributors23:07
jelmerlifeless: my current workflow allows me to not have to touch git23:07
jelmerand still keep contributors happy23:08
lifelessjelmer: ok; well I look forward to the day that the bzr trunk looks like it originates in trunk :)23:08
lifelessjelmer: how many git contributors are you getting?23:08
jelmerlifeless: one, but should be a major one23:08
poolieactually i see it just hasn't updated for some time23:08
jelmerlifeless: the guy who is working on pyrite ("Mercurial UI + Git file formats") is ditching his own implementation in favor of Dulwich23:09
lifelessjelmer: what are they doing? (And who is it, if thats not too nosy :)23:09
lifelesscool23:10
lifelessbrb23:10
lifelessspiv: I hear its a hot day23:10
jelmerlifeless: in the short term, this will mean a proper git index implementation in dulwich23:12
jelmerlifeless: in the long term, it'll hopefully mean bug fixes and speed improvements23:13
spivlifeless: :)23:14
spivlifeless: sure, I can head to Epping.23:14
igcpoolie: I'll take a look today hopefully23:16
mwhudsonjelmer: so we should start our tests of git imports with the linux kernel, right?23:23
mwhudson:)23:23
jelmermwhudson: How much terabytes of RAM do the Launchpad servers have ? :-)23:46
mwhudsonjelmer: only a couple :)23:46
mwhudsonjelmer: do you know what needs to be done to support large imports?23:48
jelmermwhudson: yes23:49
mwhudsonjelmer: good23:50
mwhudsonjelmer: maybe i'll be able to get some time to helping you at some point :)23:50
mwhudsonwow, the performance of converting a packs branch to knits blows23:51
fullermdWell, it's probably faster than converting to weaves at least  ;)23:51
lifelessmwhudson: 'don't do that'23:52
lifelessmwhudson: it shouldn't be slow slow, just writing one knit and index per file, unless you're also changing rootedness23:52
mwhudsonlifeless: i'm doing it so that i can test auto-upgrading of branches by the import system23:53
mwhudsoni guess i should have found a smaller one to play with23:53
fullermdSo apparently tomorrow I'm going to be trying to explain to somebody how to use bzr on windows.23:53
mwhudsonhm23:53
mwhudsonbzr: ERROR: Cannot convert to format <class 'bzrlib.branch.BzrBranchFormat5'>.  No converter23:53
mwhudsonseems to have worked though23:53
lifelessmwhudson: there isn't a branch downgrader23:54
mwhudsonah ok23:54
lifelessmwhudson: so use a custom format via bzrlib23:54
mwhudsoni guess i should have said upgrade --dirstate-tags, not upgrade --knit23:55
fullermdYou could init/pull instead of upgrade, too.23:55
SpamapSDoes anyone know of bazaar users that have migrated from Perforce? I'm wondering if bazaar's changeset tracking is as good as Perforce's merge tracking.23:55
fullermdWell, going to knit lets you test the full gamut too; all 3 formats are different there.  d-t -> packs is only 1 difference.23:56
bob2better!23:56
fullermdIs it?  I thought p4 had decent cherrypick handling.23:56
fullermd(of course, it's got plenty of insanity aside from that...)23:56
bob2I don't know!23:57
SpamapSwe've been relatively happy with Perforce23:59
SpamapSits just expensive.. and doesn't have any decentralized abilities..23:59

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