/srv/irclogs.ubuntu.com/2009/09/18/#bzr.txt

=== kiko is now known as kiko-afk
pooliehi zsquareplusc, sure00:11
=== chx is now known as chx_afk
spivGood morning.01:00
=== chx_afk is now known as chx
pooliezsquareplusc: that looks ok to me on a brief read01:10
poolieexcept it seems like you should be telling people to do init-repo in the project base directory01:10
pooliethen init under that to make the branches01:10
pooliehi spiv01:10
zsquarepluscpoolie: so its fully clear to you that i can push several branches? i was expecting to read something about shared repository but it's probably me who does not yet fully understand that01:12
zsquarepluscok, with init-repo you would make a local shared repository for better efficiency (?), but that does have no impact on how the server stores them01:13
pooliei'm suggesting you should init-repo on the server01:15
pooliebzr init-repo bzr+ssh://.../project01:16
pooliebzr init bzr+ssh://.../project/trunk01:16
zsquarepluschm ok. to late for me, i already pushed several branches :-)01:19
pooliespiv, sorry, i didn't get back to your review01:24
pooliei'll try again today01:24
=== chx is now known as chx_sleeping
lifelesspoolie: OMW01:30
poolieme too, soon01:32
mwhudsonwhy can't a RegistryOption have a short_name?02:09
spivmwhudson: good question!02:10
lifelessmwhudson: noone has made it work ? :)02:55
mwhudsonlifeless: yeah, fair enough02:55
RenatoSilvaIt seems that I usually forget this, but how to overwrite a lp revision without deleting the original branch?03:34
lifelesspush --overwrite03:35
RenatoSilvaI thought I was thinking wrongly (that's probably why I did not thought of that flag :) )03:36
RenatoSilvathank you again :) btw, is it my impression or bzr command interface needs some standardization?03:42
RenatoSilvae.g. some commands you need a -d ,and other you don't for the same thing03:43
lifelessspiv: bug 406687 - where is that up to? looks like a stale report to me ...03:49
ubottuLaunchpad bug 406687 in bzr "insert_stream doesn't check references are satisfied" [Critical,In progress] https://launchpad.net/bugs/40668703:49
lifelessRenatoSilva: not really, -d isn't ever really needed, is it?03:49
RenatoSilvalifeless: can't recall for what command...03:50
lifelessplease do file a bug in such a situation03:50
RenatoSilvalifeless: pull from a bzr patch (that one generated by bzr send and that I always forget the name)03:51
lifelessbzr pull filename ?03:51
=== chx_sleeping is now known as chx
RenatoSilvaisn't it -d filename?03:52
lifelessno03:52
RenatoSilvabzr pull [-d] thing ---> one you say it is a patch, other you say it is a master branch03:53
RenatoSilvacan't recall now03:53
lifelesshave a look at bzr help pull03:53
RenatoSilva-d if for when . is not your branch right03:56
RenatoSilva*-d is03:56
lifelessthats correct03:56
RenatoSilvaok thanks03:56
pooliespiv, should we merge https://code.edge.launchpad.net/~spiv/bzr/lockcontention-bugs/+merge/922803:56
spivlifeless: right, it should have been marked Fix Released in both targets; fixed now.04:00
spivpoolie: it got stuck trying to decide if this was actually a good fix, IIRC.  I think long-term we will want to pass paths like this back through the pathfilter in smart server... I'm not sure if this is a good interim step or not if that's the goal.04:04
* spiv -> lunchb04:55
spivlunch, even!04:55
pooliespiv, i haven't (re)read it, i just want it off my list05:50
pooliethis might indicate some kind of lp use case05:50
poolie"i don't want to think about this more til something happens"05:50
spivpoolie: well, how about I mark that proposal as rejected, for now05:52
spivpoolie: it'll still be in my list of recent branches, to remind me, without cluttering the review list for everyone else.05:52
pooliewfm, and just put it back to an inprogress bug05:52
spivOk.05:52
pooliegoing back to your patch now05:53
pooliereally :)06:06
pooliespiv: homedir +106:33
pooliewell, one question06:33
spivpoolie: yeah, setUp/tearDown is consistent with transport Servers (even though that class isn't a Server)06:40
spivpoolie: it never even occurred to me as I wrote that code to write "setUp" any other way :)06:41
spivpoolie: I'll make them set_up and tear_down; we may as well start using the preferred naming style.06:42
spivpoolie: thanks for the review!06:42
poolieyou're welcome06:50
lifelesspoolie: http://babune.ladeuil.net:26862/builders/timing-at-jaunty/builds/13/steps/Timing%20tests/logs/stdio/text is a subunit stream with timing data07:01
lifelessspiv: my 2c are that I'd use setUp/tearDown because its the idiom we've used everywhere; its not a strong reason though07:04
lifelesspoolie: subunit-ls --times < text  | grep blackbox | awk '{ n += $2} END{print n}'07:08
vilahi all07:16
vilalifeless: regarding config imports, my delete-useless-imports day is friday, couldn't do it yesterday, sorry about that07:16
pooliehi vila!07:17
vilalifeless: the timings run#15 should be as accurate as possible, at least the noise was certainly very low07:18
vilaand the botnet is fully green, "Dormez bonne gens !" :D07:19
poolievila, is binding the jail to the test instance really needed?07:42
poolieit seems a bit like unnecessary coupling to me07:42
vilaoh in theory yes, in practice that the easiest thing to do07:43
vilaSaid otherwise: there are two test base classes proposed here, as you can see they are pretty trivial no you can redo your own binding even in a test method if you want07:44
vilaI don't consider the proposed implementation as final anyway, I just want it to be easily usable,07:45
pooliefair enough07:46
vilaAnd I've been able to paste fully copy/pastable examples here and there in the bug reports (cough, a bit too much may be, but well, I viewed them as part of hte experiment)07:46
vilaerr, I meant: "In theory no (you don't have to bind the ScriptRunner to a test instance, you just need to provide a ensure_jail())"07:47
poolieyes, they look07:56
poolieanyhow, i'm going back tothat patch08:00
lifelessvila: no need to apologise.08:04
pooliei meant to say, they look great08:04
vilalifeless: joke :D08:04
vilalifeless: thanks for the heads-up was the hidden message08:05
vilalifeless: I wish we had better ways to identify useless imports... is it pyflakes that can be used for that ?08:07
vilaspiv: ^08:07
poolievila: it can, but lazy_imports seem to upset it08:07
vilapoolie: ha right, thanks08:08
pooliei'd like to write that import effort test sometime08:08
poolieprobably not this afternoon though08:08
vilaargh, 'bzr pull' is not undoable :-(08:09
spivvila: it can, and mwhudson has a branch of it on lp that understands lazy_imports08:13
* vila . o 0 (Yet another botnet job... remaining hidden until successful)08:14
mwhudsonvila: and you can hook it up to flymake in emacs08:16
vilamwhudson: err, .el somewhere ?08:17
vilamwhudson: we really need a wiki for that kind of tricks08:17
poolieok i'm off08:22
bialixhi *bzr08:22
spivmwhudson: and there's a similar thing for vim, now08:23
mwhudsonvila: https://dev.launchpad.net/EmacsTips08:23
mwhudsonspiv: yeah well, who cares about that? :)08:23
spivmwhudson: :P08:24
vilamwhudson: OMG, Christmas time !08:24
vilamwhudson: "unused imports and unrecognized games" is the later a typo or a joke I miss ?08:25
vilahi bialix !08:32
bialixbonjour mon cher vila08:33
jmlvila, it should be "names", not "games"08:40
vilajml: ok08:40
vilajml: wow, already fixed, you're quick :)08:41
AnAntHello, is it possible to split a bzr repo into several repositories ?09:09
AnAntI asked this question few months ago, and I was told that there will be a new format that makes that easy09:09
mvohello! I stumbled accross this error message just now: http://paste.ubuntu.com/273312/plain/ - it first says ssh can not find the hostname (a problem with my nameserver) and then a very different bzr error message09:31
NET||abusehey guys.09:56
NET||abusei have a quick question on workflow....09:56
NET||abusethere's 2 of us, well, my self on my linux machine, and my windows machine is branching from the linux machine.09:57
vilaspiv: ssh-homedir landed, Yes !09:57
NET||abuseas i code on linux, i do bzr add; bzr commit;    and that keeps the local bzr branch updated...09:57
vilaNET||abuse: then you push from windows and suddenly your working tree is not up-to-date anymore ?09:58
vilaNET||abuse: Issue 'bzr update'09:58
NET||abuseas i do design on the windows machine(flash and photoshop work mostly) i want to push up to the linux branch, so,, bzr init-repository; bzr branch ssh://me@linuxip/path/to/bzr/repo; hack hack.. bzr commit; bzr merge; bzr push???09:58
NET||abuseis that the series of events?09:59
NET||abuseahh, and after i push from windows, onl linux i do what you say, bzr update;   will that overwrite any changes i make on linux if say the same file was edited on windows and checked in later than the commit occured onlinux?10:00
NET||abusedo i not have to bzr merge on linux?10:00
NET||abusei ithink,, i'm confused as to the functionality of some of the commands.10:00
NET||abusebzr merge and bzr update,, what's the difference?10:00
vilaon windows: bzr branch bzr+ssh://you@linux/path/to/branch; cd branch; hack, hack; bzr commit -m 'blah'; bzr push10:00
fullermdIt's a plausible series of events.  Not the only, but workable.10:01
vilaon linux: 'bzr update if you did push from windows10:01
NET||abuseok,10:01
fullermdTotally different commands; it's like asking the difference between a motorcycle and a tree stump.10:01
NET||abusewhat's the difference between a motorcycle and a tree stump?10:01
vilaNET||abuse: It may be clearer to use a master branch where both users push though10:01
fullermdTree stumps are hard to change the plugs in   :p10:01
vilaWhat's a stump ?10:01
NET||abusevila, yeh, i'm more used to an svn style workflow10:02
fullermd'update' is a command that works between a working tree and its branch.  In general, it means "catch me up with changes in the branch".10:02
lifelessmvo: thanks10:02
lifelessmvo: kindof a known cleanup issue10:02
NET||abusei guess it's only while i'm doing flash stuff and whatnot that i branch off the linux laptop to work on it... 90% of the time i'm just hacking away on my linux machine.10:02
fullermd'merge' is a command between branches.  In general, it means "bring over changes from that other branch"10:02
NET||abuseso i just have a solo project style..10:02
fullermd(technically, it's between your local WT and that other branch, since it doesn't _commit_ the merge, just _prepares_ them.)10:03
NET||abusefullermd, ahh,, ok,, so on the windows machine, why would i not just do bzr update also?10:03
* vila . o 0 (Of course the question *has* to be asked to fullermd ....)10:04
fullermdWell, you could, but it wouldn't accomplish anything toward getting changes from the branch on your Linux machine.10:04
NET||abusevila, sorry, i don't mean to make you feel left out :)10:04
fullermdAll it would do is update the WT to the local branch (which is presumably a no-op, since the only way you get new revs into that branch is through that WT anyway)10:05
vilaNET||abuse: I don't :) fullermd speaks better than me :)10:05
NET||abuse;)10:05
NET||abuseahh, ok,, so a flow of how the data moves from the remote branch to the local WT is waht i was missing.10:05
fullermdPfft.  vila just knows that when *HE* asks a question of me, he ends up spending half a day tracking test failures.10:05
NET||abusewhen you pull down from the remote, i wasn't sure where the changes came into, i thought they were stored in the local branch in the background and then updated into the local WT10:06
fullermdWhen you 'pull', that's what happens, yes.10:06
fullermdWhen you 'merge', it prepares a new commit in the WT that contains those revisions (they sort of sit in limbo until you commit them, then they get hooked in)10:07
NET||abuseso a pull would just pull the remote branch to the local branch in the background, and the local WT wouldn't see the pulled updates.10:07
fullermdNo, pull updates the working tree.10:07
NET||abusearrr...10:07
fullermdBut you can't pull unless you're an ancestor of the remote tip.  If you have local commits, for instance, you can't pull.10:07
fullermd(well, you can pull --overwrite, but that throws away your local commits.  Probably not what you want.)10:07
NET||abuseyeh, see i'm seeing it now as there are 2 copies of the code base on the machine, a branch that lives as parth of the the working history repository in the .bzr  directory and the working copy.. but i feel i'm not right in thinking that.10:08
NET||abuseneed to study the documentation more closely again and really try to understand the data flow behind the scenes,10:09
fullermdspiv: That bzr+ssh ~ support does all the work on the server side, right?10:09
* vila . o 0 (Oooh, *1* half-day ? Really ?) :-P10:09
NET||abusethese code management things have always taken a while to click in my head10:09
vilafullermd: AIUI (bzr+ssh) yes10:09
vilafullermd: that way old clients benefit too10:10
fullermdNET||abuse: Try this.  The important unit is the Revision; a given state that you commit'd (there are other ways to create them, but that's 99.99% of them)10:10
fullermdYah.  But new clients with old servers don't  :p10:10
fullermd(I mean, it's not much of a question...   it _can't_ be done anywhere but server side, so I don't know why I asked...)10:10
NET||abuseok, i think i just need to continue using it for now..10:11
fullermdNET||abuse: So everything you do is in some way related to manipulating revisions (rather, moving them around, since they're immutable once created)10:11
NET||abusethese concepts will slowly sink in as i see them happen.10:11
NET||abuseyeh, your only creating new revisions by branching the previousrevision.  that makes sense,10:11
fullermdNET||abuse: The three bits you work with are Repositories, Branches, and Working Trees.  And most of the time you don't actually work with Repositories, so you can pretend they're just a part of the Branch.10:11
fullermdSo you can think of the Repo/Branch as SVN's repo, and the Working Tree as a SVN checkout.10:12
fullermd(except of course that on a SVN project, you need to move heaven and earth to have multiple repos talking together.  And even then it's iffy.)10:12
fullermdSo, you have two Branches (and their associated Repos); one on the Linux box, and one on the Windows.10:13
fullermdAnd each branch has a Working Tree.10:13
fullermdSo the question you need to answer at any given point is "What am I doing with the Revisions?"10:14
fullermdThe answer can be "making a new one", which basically means editing files in the WT, fixing old bugs and creating new ones, and then 'commit'ing them to make a new Rev.10:14
fullermdOnce that's done, you have a new Rev in that Branch (and _not_ in the other Branch, so they're now out of sync, even if they were perfectly sync'd before)10:15
fullermdThe other main answer is "copying Revs from one of these Branches to the other"10:15
fullermdThat can happen via a variety of commands, the most pertinent being merge, push, and pull.  Each of those applies in a slightly different situation.10:15
fullermdpush and pull are (almost) symmetrical, it just being a question of whether you're in the source pointing at the destination, or in the destination pointed at the source.10:16
fullermdEither of them works in the case that your source already includes everything the destination does (and presumably has new stuff on top)10:16
fullermde.g., you commit on the Windows Branch, then you 'push' that new rev to the Linux Branch.  Or you commit in the Linux Branch, and then you go into the Windows Branch and 'pull' that new one down.10:17
NET||abuseaha, ok .... just one thing, i can't for the life of me imagine how from linux i could pull from windows..10:17
fullermdOh, it's possible in various ways.  But you may not want to bother figuring it out, since it may not matter (after all, you can just push from Win)10:18
NET||abuseis that just a network protocol access problem more than anything :)10:18
fullermdProbably.10:18
fullermdClear so far?10:18
NET||abuseso from your own perspective, you can treat one working copy as a master repo like i am doing, pretty successfullyl.10:18
NET||abuseyeh, so far it's making sense.10:19
fullermdOK.  So that just leaves us with 'merge'.10:19
NET||abuseyeh, this is the fuzzy one.10:19
fullermdMerge is what you use when you can neither push nor pull (simplifying things).10:19
fullermdWhich is to say, that _neither_ branch is an "old version" (so to speak) of the other.10:19
fullermdSay you commit on Windows, and then you go commit something else on Linux.10:19
fullermdNow _each_ branch has stuff the other doesn't.  So you can't pull/push either way (without losing stuff).10:20
NET||abusewhen there are parallel changes in both branches, the local windows one and the linux one it pulled from.10:20
fullermdRight.  So now we need a way of pulling these two heads together.  Or, should we say, merging them.10:20
NET||abuseaha, ok that's making a little more sense.10:20
fullermdSince accessin Win remotely has its issues, we'll just assume you're sitting at the Win box when you go to resolve this.10:21
NET||abuseyeh, ok10:21
NET||abuseand merging goes straight into the local windows WT10:21
fullermdSo you'd do a "bzr merge bzr+ssh://linux/foo" (or whatever the path; it will default to the same location as 'pull' if you don't explicitly give one, so you probably don't need to give one at all)10:21
NET||abuseyeh, i don't have to. :)10:21
fullermdWhat that would do, is bring over that Rev (or Revs, if there are more than one you don't have locally), merge the changes in the Working Tree, and stash the actual Revs in limbo.10:22
fullermdThat gives you a chance to review the changes made, fix any conflicts, and then when you're satisfied with the merge, commit it.10:22
fullermdWhat that gives you now is a new Rev, which has _two_ parents, instead of the _one_ that you normally have.10:22
fullermdTo wit; your previous local head Rev, and that head Rev you got from the other branch.10:22
fullermdSo NOW, this local branch is a superset of the remote branch, and you can 'push' without losing anything.10:23
NET||abuseok, that's pretty well explained,10:23
fullermdOK.10:23
fullermdSo since update was brought up, let's skim that real quick10:23
NET||abuseok10:23
fullermdUpdate is most useful when your Working Tree is out of date with your Branch.10:23
fullermdThat will happen in this scenario when you've made changes on Windows (whether purely local or involving merge's, doesn't matter), then you 'push' them to the Linux box.10:24
fullermdOver remote protocols, push doesn't update the working tree.10:24
fullermdSo now your WT on Linux considers itself "based on" an older revision, which is no longer the head of the branch.10:24
fullermdAnd you can't commit from that state; you can only add on to the 'end'.10:24
fullermdSo you'd need to "bzr update" on Linux to 'catch up' the WT with the branch.10:25
fullermdWhen you 'pull', you generally do it from within a branch, so 'pull' will update the WT as a matter of course after it does the Branch changes.10:25
NET||abuseso if i did a bzr commit on the linux WT at that point, before doing update, it would complain?10:25
fullermdRight.  Also, I think 'status' warns when the WT is pointing at an older rev.10:25
NET||abuseah, ok10:25
fullermdPretty much what happens with SVN if you try and change a file after somebody else commit'd to it, but without update'ing.10:26
NET||abuseyeh, ok10:26
fullermdIt just happens less often in bzr, since Most Of The Time(tm), people aren't push'ing revs into your branch behind your back.10:26
NET||abuse:P10:26
fullermdThe only way you get new revs is by commit'ing them, or pull/merge'ing them from elsewhere.10:26
NET||abusesneaky commit's10:26
fullermdBut in some cases, like this one, you have a branch that is both "a branch you're working in", and "a branch you're pushing into from elsewhere" [the Linux one], so new revs can show up without the WT knowing about it.10:27
fullermdAnd there's nothing at all wrong with that.  It just means you sometimes have to nudge the WT.10:27
NET||abusehuh, that goes along way to explaining how you can merge copies of code from various different members of a team.. it is a bit more of a learning curve than svn... but i can see some plausible use cases10:28
fullermd...   I think that's sufficient confusion   :)10:28
NET||abuseso one last area that's confusing me, init-repository, branch and pull?10:28
fullermdinit-repo is used to create a shared repo, that can be shared across branches.10:29
NET||abusei've seen people say you should init-repository on , for example, my windows machine, before branching.10:29
fullermdIf you 'init' a branch without one (or create a branch another way, like with 'branch'), it builds an internal repository.10:29
fullermdThe downside there is that if you have 2 or 3 or 30 branches of the same project, every branch has a full copy of the history, and most of it will naturally be duplicated.10:29
fullermdIf the branches share a repository, though, all that duplicated history only gets stored once.10:30
fullermdSo if you expect multiple branches of one project, it's better to init-repo a shared repo for them before you start.10:30
NET||abusehmm, trying to think how you'd end up with multiple branches in a project..10:30
fullermdBut it's not a big deal.  You can create a repo later and change the branch[es] you already have to use it.10:30
fullermdHeck, I've got dozens of branches of projects around   :p10:30
NET||abuseoh, so you could branch for a specific feature,10:31
fullermdIt's not like SVN where that repository has some semantic meaning, or acts as a boundary.10:31
NET||abuseand then have 2 or 3 branches of the same code base10:31
fullermdThe only real difference is makes is saving your disk space and I/O bandwidth.10:31
jszakmeisterfullermd: how do you do that?  Switch a branch to using a shared-repo, that is?10:31
fullermdWhich is well worth it, to be sure.  But running commands between branches works the same whether they share a repo or not.10:31
fullermdjszakmeister: See the help for 'reconfigure'10:31
jszakmeisterThanks!10:32
NET||abuseok,, so you can create a branch by bzr branch [remote branch]   or bzr pull [remote branch] ??10:32
fullermd(this is actually a _slight_ lie, because there are some edge cases where the repo will change behavior.  But they don't really matter until you get deep into stuff)10:32
fullermdpull won't create a branch; it only updates one you already made.10:32
fullermdThat's one of the asymmetries between 'push' and 'pull'; push will create the target if it doesn't exist, pull won't.10:33
NET||abuseahh, so you don't start a fresh branch with pull ,,10:33
fullermdRight.  You basically create a branch one of two ways.10:33
NET||abuseinit-repo or branch?10:33
fullermdWith 'branch' (make a new copy of an existing branch to work with), and 'init' (create a new empty branch)10:33
NET||abusecool..10:33
fullermdinit, not init-repo.  init-repo just makes a shared repo for branches to use.10:33
NET||abuseand from an init'd branch you could pull code from a remote branch somewhere10:33
NET||abuseahhh10:33
fullermdWith a bare Repository, you can't _do_ anything.  It just exists for Branches to use behind the scenes.10:34
NET||abusehmm10:34
NET||abusethat's a new concept.10:34
fullermdSure.  You could "bzr init x ; cd x ; bzr pull http://some/where" instead of "bzr branch http://some/where x", and they'd do pretty much the same thing.10:34
fullermd(it would be silly, but you could do it  ;)10:34
NET||abusecool, ok that much makes sence.10:34
NET||abuseyeh, i wouldn't bother doing it, just to make sense of some of it that helps.10:34
fullermdYeah.  It can be a bit of a change from SVN, because in SVN the bzr concepts of Branch and Repository are sorta both crammed into the Repository.10:35
fullermd(well, half of the Branch concept anyway.  The other half doesn't really exist, and just gets faked up with other primitives.  But that's details.)10:35
NET||abuseyou couldn't do bzr init ./blah; cd blah; bzr branch [remoterepo] ./v1; bzr branch [differentrepo] ./v2;     would that be wrong?10:35
fullermdWell...    it would be weird.10:36
fullermd(and you branch a Branch, not a Repo)10:36
NET||abuseok sorry, branches then.10:36
fullermdWhat you'd end up with is three branches, one with nothing in it, and two others that happened to be below it in the filesystem.10:36
fullermdMaybe you meant init-repo there?10:36
NET||abusehmm, ok so that'd be why you use init-repo for shared repo.10:36
NET||abusenot really, just getting the difference between the 210:36
fullermdBasically, everything you directly interact with is a Branch.10:37
fullermdYou commit onto a Branch, look at the log for a Branch, etc.10:37
fullermdRepositories are basically giant buckets that Revisions get dumped into.10:37
fullermdBranches point at a Repository and say "look in there for [these revisions], those are the ones that are part of me"10:37
NET||abuseif you worked in a group and had a central master branch you all checked out of, but wanted to be able to push specific changes over to a co-worker but not he central branch, you could set up pointers to eachothers local branches?10:38
fullermdMostly, the only time you directly look at or interact with a Repo is when you run init-repo.10:38
NET||abuseok10:38
fullermdUsually, you'd go the other way; tell them to pull (or merge) from your branch.10:39
NET||abusechecked out? there goes my svn centric concepts again.. a master branch you all branched out of...10:39
fullermdNo, you could all checkout the master branch too.10:39
NET||abuseeh?10:39
NET||abuseby checkout are you making a destinction from branching from the master branch?10:40
fullermd'checkout' creates a Working Tree for a given branch.  And usually it's used for making multiple WT's on the Branch.10:40
fullermdWhich is the same flow you have in SVN.10:40
NET||abusehmm10:40
fullermdNo, by checking it out.  "bzr checkout http://some/where"10:40
fullermd(well, probably not http, since you presumable want to be able to _write_ there, so bzr+ssh:// or something)10:40
NET||abusewell, web dav will allow you to write.10:41
NET||abusebut anyway.10:41
fullermdThen you basically have one shared branch that everybody has a WT on.  When you commit, everybody else needs to 'update', just like in SVN.10:41
fullermdThis is a workflow that DVCS's in general kinda shun, and nobody but bzr (TTBOMK) really first-class supports.10:41
fullermdMe, *I* use it all the dang time, because it's really useful.10:41
NET||abuseoh?10:41
NET||abuseTTBOMK>10:42
NET||abuse?10:42
fullermdTo The Best Of My Knowledge10:42
NET||abuseahh, just urban dictionary'd it.10:42
fullermdOgod, I'm speaking urban now?10:42
NET||abuse:P10:42
fullermdBy default, checkout creates what's called a "heavy" checkout, which means that it also copies down and stores the full history, just like 'branch' does.10:43
fullermdThat means that things like "bzr log" don't have to go across the network to the server.10:43
NET||abusehmm, why would it be useful? It just would prevent you from being able to ever use the WT to branch from again if you wanted to push work up from another machine, like in my case, I have 3 pc's, linux windows and a netbook, which i code on sometimes when traveling..10:44
fullermdWith a heavy checkout, you _can_ use that checkout as a source for 'branch'.10:44
NET||abuseohhh,,, yargg..10:44
NET||abusenot sure i get the difference between that and a regular branch then.10:44
fullermdThe difference is that the Branch for that WT is the one off on the server you checked out from.10:45
fullermdSo when you 'commit', the rev goes there.  When somebody else has commit'd, you get told you're out of date and to 'update' before you can commit.10:45
fullermdIt's something you might commonly use for 'trunk' branches, for instance.10:45
NET||abuseso it's more like a pure svn approach for that instance.10:45
fullermdRight.10:45
OllieRHey I am having problems with bzr export. http://pastie.org/621552 - I run an export but the zip it produces is 0kb...10:45
fullermdOllieR: Dunno, sorry; I don't know much about export   :(10:46
fullermdNET||abuse: Let's invent a setup much like what I use.10:46
NET||abusehaha, ok ..10:47
fullermdNET||abuse: We have a project, project1.  There's a central server with a 'trunk' branch on it, that me and the other 6 guys all work on to move this thing forward.10:47
NET||abuseyeh, sure.10:47
fullermdI'll create a shared repo at /project1 (yeah, I base everything off the root dir for examples)10:47
fullermdSo "bzr init-repo /project1"10:47
NET||abusecool, we've init'd a shared repo. great.10:48
fullermdNow, I make a checkout of the trunk: "cd /project1 ; bzr co bzr+ssh://server/project1/trunk"10:48
fullermdBeing a heavy checkout, it copies down all that history, and stores it in the shared repo instead of internally.10:48
NET||abuseright, we've got our heavy checkout of the trunk branch..10:48
vilaOllieR: 'bzr version' ? What happens if you don't specify '--format zip' ?10:48
fullermdSo now I can work SVN-style by working and commit'ing and update'ing and all in /project1/trunk10:48
fullermdAnd in fact, if the other 6 guys are all SVN-heads, I can basically move them to bzr with this setup, and the only difference they'll see is they run "bzr whatever" instead of "svn whatever".10:49
fullermdThey don't need to know anything about local branches or distributed whosafudge.10:49
fullermdBut I do, see.  'cuz I'm smart and stuff.10:49
NET||abusehaha, cool, cause i have 5 guys in the office here all on svn, and i've broached the bzr scenario with them and they're... meh.. about it.10:49
fullermdSo I want to work on adding nobbles to it.  But that's gonna take a while and break stuff while I do it.  People get pissed when I break trunk, for some reason.10:49
fullermdSo, I make a new branch: "cd /project1 ; bzr branch trunk add-nobbles"10:50
NET||abuseyeh, i get that too.. but my commits usually break buildbot.10:50
fullermdNow I have trunk, still a checkout of the central trunk.  Anything I do there goes straight to the central server.10:50
fullermdBut I also have add-nobbles, as an independent branch, existing nowhere but on my drive.10:50
NET||abusecool, so we've branched from our heavy checkout to another local branch but both in a shred repo. one history.. gotcha.10:50
fullermd(and that happened fast, because 'trunk' and 'nobbles' are both using the shared repo at /project1, so it didn't have to actually _copy_ any history)10:51
OllieRvila: http://pastie.org/62155210:51
fullermdSo now I can go ahead and work on add-nobbles for the 9 weeks it takes me to finish it, without bothering turnk.10:51
fullermdAnd without having 9 weeks of changes sitting uncommitted in a checkout, just begging for disaster.  I can keep on making a few commits an hour there.10:51
NET||abuseyeh, this is a scenario i really like.10:51
fullermdOf course, trunk keeps moving ahead while this is happening too.  I can still be working on fixes there and commiting them into trunk.10:51
OllieRvila: added version output and export without --format zip. It seems it just exports an empty directory...10:51
fullermdSo every couple days, I "cd /project1/add-nobbles ; bzr merge ../trunk ; (check them over) ; bzr commit", to bring in the trunk changes.10:52
vilaOllieR: 'bzr ls -RV' ?10:52
fullermdThis way I don't diverge too far, and when I get conflicts, they're small and easy to fix, rather than trying to do one giant merge at the end.10:52
fullermdOf course, this doesn't affect trunk at all.  Just add-nobbles.  But it means that I'm keeping up with those changes all the time.10:52
fullermdEventually, I finish up, and it's ready to go.  So I "cd /project1/trunk ; bzr update (just to be sure) ; bzr merge ../add-nobbles ; (check) ; bzr commit"10:53
OllieRvila: null - so does bzr export only work within a working tree10:53
OllieRI am using it from a treeless repo10:53
fullermdMy network churns for a while, uploading all those new revs to the server, and presto; the branch is landed into trunk.10:53
fullermdNext time everyone else 'update's, they get all those changes.10:54
NET||abusefullermd, brb, one sec, have to move some application certificate for boss...10:54
vilaOllieR: Could be, may be worth filing a bug10:54
fullermdNow, a few things here; first, that last merge is _EASY_, because I've already pretty much caught all the conflicts and fixed them with the periodic merges of trunk into add-nobbles.10:54
fullermdNET||abuse: Second, it's not just the equivalent of doing a big "diff | patch"; every single one of those hundreds of revs I put into add-nobbles is now in trunk, so if we need to track back into them for something later, they're ready and accessible.10:55
fullermdNET||abuse: In fact, I could "rm -rf /project1/add-nobbles" now if I wanted to; everything that was in it is in trunk now.10:55
fullermdNET||abuse: And third, all of that work was local.  Nobody else even had to KNOW I was working on nobbles, and nobody needs to ever know or care that I did it in a separate branch.10:56
fullermdNET||abuse: So 95% of your team can totally ignore branching, and just work lockstep in trunk like SVN.  And the 5% willing to shoulder the extra mental load of dealing with multiple branches can reap the benefits without getting in anyone else's way.10:57
fullermdNET||abuse: And that 95% can slowly start using branches if they want too.  Maybe when you're working on something big in a branch, and want to share it with other people.10:57
fullermdNET||abuse: The two (or 3, 4, etc) of you can share the branch among yourselves, merge'ing each other.  Or put it on a 'central' server, whether the same central server as trunk, or a different central server, and all create your own 'checkout's of it.10:58
fullermdNET||abuse: (and then your own local branch's of THAT checkout, and...   *headsplode*)10:58
OllieRvila: Yeah works from a checkout!10:59
OllieRhttp://pastie.org/62155210:59
NET||abusefullermd, back, sorry, had to move a certificate for an applicaiton.11:00
OllieRNothing about that in the manual11:00
fullermdNET||abuse: NP.  That's what backscroll is for  :)11:00
NET||abusefullermd, :)11:00
fullermdSo you can start working just like SVN, and scale up (individually or as a team), when you're ready to handle the extra complexity and have a situation where it's worth it.11:01
vilaOllieR: right, you can copy that paste into a bug report (slightly edited may be)11:01
fullermdIn my work, a lot of stuff still just happens on trunk.  Small bugfixes, tiny features...  roughly "anything that fits in one revision", I tend to just do straight on trunk.  Simpler.11:01
fullermdThe longer or more involved or more breakage-inducing it is, the bigger the advantages of making a branch for it.11:01
fullermdI can choose on a case-by-case basis.11:02
fullermdvila: Diff too large for email (1008 lines, the limit is 1000).11:02
fullermdvila: You couldn't have made that 8 lines shorter?   :p11:02
NET||abusefullermd, hmm, that's fascinating,, i'm going to have to digest it before i use it more broadly, but i can imagine myself doing so in time..11:04
vilafullermd: I'm trying to do that right now for a follow-up :D11:04
fullermdNET||abuse: Sure.  Pick up new bits when they're helpful.11:05
NET||abuseone of the reasons i'm looking into bzr is because of launchpad, we're very happy with trac here, but,, launchpad is pretty awsome... and we'll likely setup a copy and play with it :)11:05
NET||abuseso i'll have to look into migrating our svn history into bzr somehow11:05
NET||abusethen connect up launchpad as a web companion to the bzr projects we work on.11:05
fullermdFor a diversion, imagine I checkout'd /project1/trunk without making a shared repo at /project1, because I'm just gonna use the checkout, not branches anyway.11:05
fullermdBut later, I suddenly decide I want to use branches.  But I don't want to keep copying all the history.11:06
NET||abuseyeh, that was a question that was on my mind throughout this discussion.11:06
fullermdI can "bzr init-repo /project1" to create a repo there (empty; trunk still has its stuff internally)11:06
fullermdThen I can "cd /project1/trunk ; bzr reconfigure --use-shared" to move the history into the shared repo, and switch trunk to using it (and throw away its internal copy)11:06
NET||abusehah, that's neat11:07
fullermd(you can also go the other way around and "bzr reconfigure --standalone" to create an internal repo for the branch and copy the history out of the shared into it.  But you don't need to do that too often.)11:07
NET||abusei was thinking bzr co /projectco; then     bzr init-repo /project1; cd project1; bzr co /projectco ./trunk;11:07
fullermd(it's also not QUITE exactly the mirror operation, for reasons we don't need to go into 'cuz you'll probably never use it)11:07
fullermdThat would probably not work so well.  Having a checkout of a checkout is icky.11:08
NET||abusehmm, yeh, maybe not.11:08
fullermdIt may not work at all.  It may sorta work, sometimes.  I don't actually know.11:08
fullermdWith straight branches it's easier, since they stand by themselves.11:08
NET||abuseyou'd have to redirect the parent / target repo of the second checkout back to the main repo.11:08
NET||abuseor main trunk.11:08
fullermd(before reconfigure grew those options, using 'branch' into and out of a repo to move things in/out was SOP)11:09
NET||abuseaha, ok...11:09
NET||abusewow, brain melt..... in a good way though.11:09
fullermdNow, if you already had the [heavy] checkout at /projectco, and didn't want to re-transfer all the data across the network, I'd do something like this:11:09
fullermdbzr init-repo /project1 ; bzr branch /projectco /project1/tmp (just to 'prime' the repo) ; rm -rf /project1/tmp (cleanup) ; bzr co bzr+ssh://server/project1/trunk /project1/trunk"11:10
fullermdSince that temporary 'branch' primed the repo with all the revisions, that last checkout didn't have to transfer much of anything; just check that we already had everything.11:10
NET||abusewell you could do bzr init-repo project1; mv projectco ./project1/; cd project1; bzr reconfigure --use-shared;    no?11:10
NET||abusearrg, cd project/projectco;  sorry11:10
fullermdThat would also work, yep.11:11
NET||abusemeh,, ,missed the 1 in project1 also...11:11
NET||abusecool though.11:11
fullermdAnd if you decide "hey, that should be called 'trunk', not 'projectco'", you could also "cd /project1 ; mv projectco trunk"11:11
fullermd(mv, not bzr mv, note)11:11
NET||abuseah, handy11:11
NET||abuseyeh, of course.11:11
fullermdAs long as the branch stays _inside_ the repo, you can move it around to anything you want.11:11
NET||abusesame as svn, using mv subcommand is only for moving items inside WT11:12
fullermdIf you mv it outside the repo, though, it'll start weeping the first time you do something that makes it look for a rev.11:12
NET||abuseoh really.11:12
NET||abusethat's interesting.11:12
fullermdYah.  'cuz it'll start looking for its repo, and...   umm....   where'd it go?11:12
fullermd(that's one of the main cases you use reconfigure --standalone; to prepare for mv'ing it out of the repo)11:13
NET||abuseso you can move it into the shared repo. reconfigure to --use-shared   and after that just mv ./projectco ./#trunk11:13
NET||abuseetc etc.. as much as you like, and it's still tied the the shared repo.11:13
fullermdRight.  A branch finds it shared repo implicitly, by looking at .., then ../../, then ../../../, etc.11:13
NET||abuseahh, that's very simplistic, but good i suppose.11:13
fullermdSo you could mv it to /project1/foo/bar/baz/quux/trunk if you wanted.11:13
NET||abusegood tune. La Noy11:14
fullermdSo you can mv the branch around inside the repo, or even mv the repo around as a whole.  As long as the branches stay 'under' the repo, everything's cool.11:14
NET||abusearrg,, La Noyée11:14
NET||abusethat's nice .. i like this shared repo idea..11:14
fullermdA thing to note here, too, is that shared repos are entirely local.11:14
NET||abusereally handy for tying branches of related work together.11:15
fullermdImagine you have the trunk and 2 feature branches in a shared repo on the central server.11:15
fullermd/project1/trunk, /project1/feat1, /project1/feat2 (/project1 being a shared repo)11:15
fullermdYou could have co's of each of them in a shared repo at /myproject1 on your box.11:15
fullermdOr you could have co's of them in /myproject1 _without_ a shared repo, each having its own copy of the history.11:15
NET||abusethey are totally ignorant of eachothers shared repos'11:15
fullermdOr have trunk at /myproject1, and feat1 and feat2 in a repo at /myproject1features.11:16
NET||abusegotcha,, yeh, that makes sense.11:16
fullermdRight.  This is an aspect of "Repositories aren't semantic".  Everybody's setup can be different.11:16
NET||abusenot bad, not bad.11:16
fullermdThe only thing you ever directly look at is a Branch.11:16
NET||abuseyeh, i get that concept now..11:17
fullermd(now, a downside of this is that we don't currently have something like "mirror-repo", or "pull-repo", to mirror/update the whole set of branches)11:17
OllieRvila: many thanks for your time  - https://bugs.launchpad.net/bzr/+bug/43238511:17
ubottuLaunchpad bug 432385 in bzr "BZR export from a treeless repository outputs an empty file/dir" [Undecided,New]11:17
fullermdDoesn't necessarily mean we _can't_, but it's more involved.  Some future work is looking in that direction.11:17
vilaOllieR: thanks for filing that bug !11:18
fullermdBut one reason we've gotten by this far without it is that you often don't need it, so...11:18
OllieRvila: np11:18
NET||abuse fullermd: couldn't you just cp the shared repo,11:18
* fullermd of course uses 'we' to mean 'somebody competent, not me' :p11:18
NET||abuseyou don't need a specific mirror command,11:18
fullermdSure.  You could tar it up and move it around, or rsync it, or whatever.11:18
NET||abuseso that's a simple way to mirror the repo.11:19
fullermdGets more expensive than it has to be for updates though.11:19
fullermd(and of course you can't mirror just a subset that way)11:19
NET||abuseok, but in situation where you only have http access to the repo, you may not have permissions to edit, so you may want to mirror the code base to fork the project or something.11:20
fullermdRight.  You'd generally use 'branch' rather than 'checkout' for that.11:20
NET||abuseespecially if you still want to pull the downstream updates back from the master project.11:20
NET||abuseyeh,11:20
NET||abuseupstream, downstream... umm which ever way that indicates....11:21
fullermdThen you could just "bzr branch http://where/ever upstream", and never do anything in that upstream branch except 'pull' updates, and use it as a source for 'merge'ing them into your codebase.11:21
NET||abuseso still reaching for a real reason you'd need pull-repo11:21
fullermd(never doing any merge's or push's into it, or committing, or etc)11:21
fullermdIt would be a lot more efficient for updating it than rsync and friends, for one.11:22
NET||abusewell, you may want to pull-repo if say you have multiple branches for an app that's acorss say, different hardware architectures or something?11:22
fullermdFor another, you might want all the branches in that repo in a repo locally, but ALSO have your own local branches in that same repo (sharing the storage)11:22
fullermdYeah, there are a number of good reasons for it.  Just takes some planning in a VCS that's Branch-oriented like bzr.11:22
NET||abuseok, cool.11:23
NET||abusebleugh... my brain is full i think11:23
fullermdMy work here is done   :)11:23
NET||abuse;)11:23
NET||abusehehe.11:23
SamB_XP_well, pull-repo would be pretty useful if you had, say, an svn-import that you wanted mirrored without actually using bzr-svn on the mirroring system ...11:23
NET||abusewell thank you.. i owe you beer if ever we meet ;)11:23
fullermdYay, positive karma.  Now I can blow it on telling bad jokes to vila!11:24
NET||abuselol...11:24
NET||abuseyou coming to ireland and going to ossbarcamp tomorrow?11:24
SamB_XP_it's kinda funny that bzr can pull every branch from a typical svn repository, but not from it's own native format ;-)11:24
fullermdOh, no.   I hate travelling.  I don't even like going across town.11:25
SamB_XP_how big a town ?11:25
SamB_XP_and is there any public transit ?11:25
fullermdBigger than my front lawn, so obviously way too big to bother crossing.11:25
SamB_XP_wow you are hecka-lazy11:25
NET||abusehaha, doh.11:25
fullermdPfft.  I'm a 'Merican.  We don't do public transit   :p11:26
NET||abuselol.....11:26
NET||abusei don't drive, i live on trams trains and buses11:26
fullermdI go out every morning and crank my truck up, to let it idle for a few hours and make sure there's enough CO2 in the air.11:26
SamB_XP_fullermd: that doesn't stop me!11:26
SamB_XP_it depends on where you live, I guess11:26
NET||abusewell, ireland, lotsa public transport here.11:27
SamB_XP_so, like, what part of stupidville are you from ?11:27
fullermdYeah, if you live in a real City, it's much more of an option.11:27
NET||abuseit's functional but badly managed..11:27
fullermdYou're happier not knowing   :p11:27
SamB_XP_oh, the bible belt then ?11:27
fullermd*I*'m happier not knowing...11:27
SamB_XP_I'm a christian and I still think they're pretty crazy out there ...11:27
fullermdYeah, and I'm atheist, so imagine the fun I get.11:28
NET||abusedo you live less than a 4 hours drive to a body of water11:28
fullermdLuckily, I'm a grumpy misanthrope, so it doesn't get me down  :)11:28
fullermdI live less than a 4 minute WALK from a reasonably sized body of water.11:28
NET||abuseahha, so you do leave your garden.11:29
fullermdI didn't say I GO there.  Just that it's in spitting distance   :p11:29
SamB_XP_fullermd: how do you know it's not in his garden?11:29
NET||abuseis it an indoor swimming pool?11:29
fullermd33k acre reservoir.11:29
NET||abuseah hwell.11:29
SamB_XP_hehehe11:29
SamB_XP_piss in it ;-P11:29
NET||abusei like ireland, ther's no where that's more than an hour drive from a beach.11:29
fullermdIt's probably about 3 hours to the ocean.11:31
fullermd(but, yuck.  Sand, and hot, and crappy bandwidth.  Who'd want that?)11:31
NET||abuseand i'm only 20 minutes from the ocean here.. which is nice, and that's only cause i gotta drive along the coast to get away from the city ocean front.11:31
NET||abuseyeh, not a fan of sand,, never said it was hot...11:32
NET||abusebut i can get 3g on the beach.11:32
fullermdPlenty of hot here.  I can ship some too you if you'd like...11:32
NET||abusehehe,11:32
fullermdRound here, we have two seasons; summer, and January 15th.11:33
NET||abusewill you take some of our rain?11:33
fullermdMy lawn could probably use it...   'course, then I'd have to mow it.11:33
NET||abusewe have a saying in dublin.. when you look south, if you can;t see the wicklow mountains, it's raining... if you can see the mountains.. it's about to rain.11:33
spivfullermd: yes, totally server-side.  Read the NEWS entry ;)11:59
=== AnAnt_ is now known as AnAnt
NET||abusefullermd, hmm, just thinking about how to push releases up to a web server now..12:06
NET||abusefullermd, i saw someone before mention a way to just do a push to an alias that is a branch on a web server, which has a hook of somesort that just pushes the updates straight out to a web directory.12:07
fullermdAh, now you're wandering off from the stuff I touch.  I don't use my VCS as a deployment mechanism.12:09
fullermdThere's a bzr-upload plugin that does some things to push up just the working files (no history).12:09
fullermdIf you have bzr on the server, you can make it a branch that you use 'update' to keep up to date with pushes, possibly semi-automated in various ways.12:09
fullermd(you could setup a cron job to fire it every so often.  There's a push-and-update plugin which basically does a "ssh server bzr update" after each push.  Probably other choices...)12:10
=== AnAnt_ is now known as AnAnt
OllieRfullermd: "I don't use my VCS as a deployment mechanism." - what do you use out of interest?12:32
fullermdinstall(1)12:32
=== mrevell is now known as mrevell-lunch
siliconmeadowI can't seem to find any books on Bazaar - are there any?13:35
* siliconmeadow notices a lot of drupalers here...13:35
vilasiliconmeadow: not yet but some are in the works AFAIK13:36
siliconmeadowthank vila :-)13:36
siliconmeadow^thanks13:36
=== mrevell-lunch is now known as mrevell
vilagood morning jam.sig ! :D14:53
jammorning vila14:53
fullermdWho?  I can't see him in my clone...14:53
james_wbzr's gone crazy for me today14:53
vilajam: sorry about that mail, I overreacted, that bug drove me a bit nuts to say the truth :)14:54
fullermdIt WHAT?!  It told me *I* was the only one!14:54
james_wheh14:54
james_wUnexpectedInventoryFormat: Invalid format version '5'14:54
james_wanyone know what that could be?14:54
vilamake ?14:54
vilaI'm pretty sure we've seen that one recently14:55
james_wI've done make14:55
vilaubottu: UnexpectedInventoryFormat: Invalid format version '5'14:55
ubottuError: I am only a bot, please don't think I'm intelligent :)14:55
james_wI pulled across the API version change for the first time today14:55
james_wso I'm now trying to remove the page of warnings every time I invoke bzr14:56
fullermdloom?14:56
james_wthat's from trying to pull bzr-svn14:56
james_wlp:~jelmer/bzr-svn/0.6/14:56
* james_w tries lp:bzr-svn instead14:57
james_wsame14:57
awilkinsubottu: dance14:57
ubottuSorry, I don't know anything about dance14:57
vilajames_w: in a clean branch ?15:00
james_wthe other issue is that I can't update a checkout15:00
james_wvila: no, pulling in to my existing branch15:00
james_wa new branch works fine15:02
vilaDid jelmer upgrade bzr-svn to 2a ?15:03
vilaor did you upgrade your local branches to 2a ?15:03
james_wI'm rich-root-pack locally15:03
james_wthe remote is15:03
james_wBranch format: Branch format 715:03
james_wRepository format: Development repository format - rich roots, group compression and chk inventories15:03
vilajames_w: file a bug, I can't remember the details, sorry :-/15:04
vilajames_w: you can work with the new branch or are you blocked ?15:05
james_wI've just deactivated the plugin15:05
james_wI rarely need it, and I can always blow it away and pull15:05
vilahuh ? Yo mean it's a bzr-svn issue ?15:05
vilahuh ? You mean it's a bzr-svn issue ?15:05
awilkinsI think it's an issue with his branch of bzr-svn15:06
james_wI deactivated bzr-svn so that I don't get the API version warning15:06
james_wI was trying to pull to get rid of that, but deactivating it is as good right now15:06
vilajames_w: ok15:07
jamvila: don't worry about the email. It isn't a great method to convey humor/sarcasm, so it was easy to misinterpret what I originally said.15:32
vilajam: ok, but you were right, adding a test is needed :) Especially since I'm not sure neither of us is fully right about some bug details15:34
vilaconcretely, you said the file name can end in .sig.gz, but the SigStore don't do that15:34
vilaand it goes both ways about conveying humor, I failed to explain what we did with fullermd to become confident we fixed it without breaking something else (granted, that was under the assumption that sigs were tested somewhere, which I'm less sure about now :-/)15:36
fullermdI must say, I find it humerous that after all the work that's gone into dealing with the most insane sort of charset and unicode weirdnesses, I managed to utterly trash the test suite by use of a hostname consisting of 7-bit ASCII all-lower-case alphabetics.15:39
vilajam: hmm, looking at the code right now, endswith is enough since it comes after a splitext that takes care of the optional final '.gz' so I think all is needed is a test, but if we don't have enough sig tests... it will be weak15:40
jamvila: I'm ok with being a bit weak on weave formats .. :)15:40
vilajam: LOL15:40
fullermdIf they were tested too well, people might start using them...15:41
vilafullermd: that's karma for you ! When I met my gf 20 years ago, we argue about whether using accented letters in *comments* was a good idea15:41
vilafullermd: the truth is we had troubles converting from Unix to DOS because some accented 'e' were transformed in CR along the way...15:42
fullermdThose cross-platform relationships never work out...15:42
vilafullermd: I quickly switch to rwiting my comments in american to get rid of the problem.... and never came back :)15:42
vilanever get rid of the gf though...15:43
fullermdWell, obviously you HAVE to keep her now.  It would take too long to train yourself back into using the accents.15:43
fullermdvila: Re revspecs: It doesn't.  The changes don't really make it any easier or harder to hack in the change...15:47
vilaNot easier ? I'm a bit surprised...15:48
vilaAt least better localized no ?15:48
fullermdNot really.  It always treated revnos directly in the main code path.15:52
fullermdThis would just be also checking for "r[numeric]" as well as "[numeric]", stripping and trying.15:53
vilaYes, but your change should make it easier to address that bug no ?15:53
vilaShould be a one-liner there15:54
vila(not counting tests of course :)15:54
fullermdNo, it would just be the same change in a different place, AFAICS.15:54
vilaok15:54
=== EdwinGrubbs is now known as Edwin-afk
vilared-button-alarm: bug #43239016:16
ubottuLaunchpad bug 432390 in bzr "beta-ppa fails to build 2.0rc2" [Critical,Confirmed] https://launchpad.net/bugs/43239016:17
vilajames_w: does that have an influence on bringing 2.0 into karmic ? (I don't think so, but better checking)16:20
james_wfixing now16:21
james_wit's an error because some paths changed but the packaging didn't change to accomodate16:21
vilajames_w: sorry about that :-/ A whole week has passed >-/16:22
james_wnp16:23
james_wuploaded16:27
bialixjames_w: hello16:36
bialixjames_w: I don't remember I've received your confirmation about uploading qbzr 0.14.2 to karmic, maybe I'm missing your mail?16:37
james_wbialix: yeah, sorry, haven't got round to it yet16:40
james_wI still plan to16:41
=== davidstrauss__ is now known as davidstrauss
bialixjames_w: ok16:44
james_wah, I can't upload to bzr-beta-ppa16:44
james_wvila: you are an admin of that team, would you add me?16:44
idnarI'm converting a darcs repository to bzr using darcs-fast-export / bzr fast-import; the original repository is about 131MB, the import has been running for around 3.5 hours now and has so far produced a 27GB bzr repository16:45
idnarcan I expect that size to be reduced in some way once the import is complete?16:45
james_wwow16:45
james_wan increase like that suggests to me it's not a case of "more stuff that will be cleaned up at the end", but instead a bug in the conversion process16:46
vilajames_w: me ? Forst news :-) Which user do you want ? The regular one or the daily debs one ?16:46
bialixanybody help? what is English word for append to the beginning? "prepend" seems wrong...16:46
james_wvila: james-w please16:46
james_wbialix: that is the correct word16:46
vilajames_w: done16:46
james_wthanks16:47
awilkinsprefix also would work16:47
awilkinsMaybe16:47
idnarthat 27GB is almost entirely composed of a single file in .bzr/repository/upload16:47
bialixjames_w: strange... spellchecker is sutmbled16:47
idnarI don't really know anything about the internal repository structure, so I'm not sure what's what16:47
james_widnar: that means everything is going in to one pack file16:47
james_wwhich is rather odd I would say16:48
idnarthe conversion rate has been steadily going downwards throughout the conversion process, but that may be because it's reaching the limits of the physical memory on this box16:48
* bialix mutters: esr's jargon file has "prepend", ok, go on16:49
idnarbut it's nearly finished, so I guess I'll just let it finish and see whether the result is garbage or not16:49
* vila mutters to bialix, go on, prepend is ok ;)16:50
james_widnar: that's probably the best thing if it is nearly finished16:50
idnarI previously tried this with an older version of darcs-fast-export, which took about 10 minutes to get halfway through the conversion before it bombed out with an exception16:51
vilaidnar: 'bzr info -v' as soon as it finish, then 'bzr check', and be ready to tell your story in a bug report :)16:51
idnarso this is incredibly slow by comparison; I probably would have killed it a long while back if I'd been around to notice16:51
* vila . o 0 (Tell your tale ? Too obvious for native speakers ? )16:52
vilaidnar: this is abnormally slow but killing it now would be losing the opportunity to understand why it's slow16:52
idnarI was using bzr-fastimport from bzr, but I didn't realise darcs-fast-export had been merged into that project, so I was using some older version of darcs-fast-export that I had lying around16:53
vilaidnar: that slowness itself is worth a bug, that's why I give you upfront the commands to use to put their results in the bug report :) Also, your .bzr.log file may contain useful hints about what happened so keep it handy16:53
idnar*nod*16:54
idnarI was just looking at .bzr.log, but it just has the same output I saw in the terminal where I was running it, which just consists of the progress reports16:55
rockyis there anyway to tell bzr to forget a push location for a branch? (without using --remember to remember a new location)16:55
idnarit claims to have "finished" now, but it's thrashing around doing something or other (might just be process termination, it's at around 80% of physical memory now)16:56
vilarocky: short of editing branch.conf, no16:57
rockyk16:58
dsuchhmm would someone please direct me to any blog/mail discussion where emulating 'svn lock16:58
dsuch' has been discussed to death already?16:59
viladsuch: you mean a centralized lock in a distributed environment ?16:59
idnarhmm, I suspect I'm going to run out of memory here shortly16:59
dsuchyea16:59
dsuchanything that resembles it, bonus points for not using a lightweight checkout17:00
dsuchwe have this 'awesome' tool at work and we really really need to serialize access to it17:00
viladsuch: no solution today, no precise pointer for the discussion, but Russel Winder was involved IIRC17:00
vilaor was it Nicholas Allen...17:01
dsuchokay, will google for that names17:01
dsuchthanks vila17:01
viladsuch: I think one the latest tricks proposed was to rename the file fileis-locked-by-dsuch and commit that17:02
dsuchand to rename it back to the original name when done with changes?17:03
vilagross of course, but there is no such thing as centralized locks in distributed environments...17:03
dsuchyea I know17:03
dsuchthat's why I'm saying 'emulating'17:03
vilaOn the other hand, if you believe in that, I have a bridge you may be interested in :)17:03
viladsuch: sure17:03
dsucha bridge?17:03
vilaA tower ?17:04
dsucha rook!17:04
vilafullermd: is that a bridge or a tower ?17:04
james_woh, I haven't fixed it17:05
james_wthis is weird17:05
dsuchvila: the trick won't work here though, the file in question is required by the tool and it needs to be foo, can't be dsuch-foo-copy and it's a proprietaru software we can't do much with17:05
dsuchvila: what kind of bridge anyway?17:06
viladsuch: A tower, I can sell you the Eiffel tower if you're interested17:06
dsuchah sure17:06
dsuchthat sounds interesting17:06
viladsuch: "proprietaru software we can't do much with" hmm, any free software alternative instead ? :D17:07
Takis there a package deal with the arc de triomphe?17:08
viladsuch: seriously, you have binary files that can me modified in parallel ?17:08
dsuchthere is one, but it's been abandoned for some time17:08
vilaTak: sure, some price17:08
dsuchno, it's not binary but it produces incomprehensible XML, extremely hard to merge it17:09
dsuchvila: I thought you were talking about some new alternative svn-to-bzr 'bridge' ;-)17:09
viladsuch: ouch, sorry :-)17:10
viladsuch: do you really need to put it under version control if you can't understand it then ?17:10
dsuchI don't need to understand the underlying format, just the output it produces :)17:11
vilalet me rephrase, why do you need a lock ?17:11
dsuchthere are about 20-30 people possibly interested in modifying it, the tool chose to store all its data in XML,17:13
dsuchand when people are applying changes in parallel it's quite to merge the changes,17:13
dsuchquite *hard I mean17:13
vilaquite hard or impossible ? Still needed or refused now because it's too much work ?17:14
dsuchbesides, the very process of producing the output is under the control of one person (and it ought to be like that),17:15
dsuchtoo much work17:15
vilabut other people still need to be able to read it right ?17:15
dsuchwe'd rather focus on the real stuff not on grokking the XML, it's a completely unneeded knowledge17:15
dsuchyea17:16
vilaSo your use case is a bit simpler...17:16
vilabut only a tiny bit17:16
dsuchmhm?17:16
dsuchyou think so?17:16
vilaYou should be able to hack around a solution with a commit hook and one master file replicated on a read-only file17:17
vilaThen the hook checks that only one people can modify the master and copy it to the read-only one, all other attempts to modify the read-only one should be refused17:18
vilaStill quite hackish since that means people modifying the "read-only" version will need to revert it before getting the new changes :-/17:19
dsuchnot to mention that it's currently way above what I know about bzr :)17:19
GaryvdMHmmm  selftest --coverage seems to only show the coverage of the first test run on windows.17:20
idnarhrm, well that was exciting17:20
dsuchyou said I needed a commit hook, you mean a push hook, right?17:20
idnarI nearly ran out of memory, but it managed to get far enough to explode with an exception17:20
idnarguess I'll file that bug report now17:20
vilaidnar: too bad :-/17:21
dsuchbecause I still would want to be able to hack on it and commit locally17:21
bialixGaryvdM: hello17:21
idnaroh, hmm, it deleted the data too, I guess17:21
idnarso that doesn't help much17:21
viladsuch: push time is too late, you'll run into conflicts at merge time and will need to find a way to always revert to the "right" version (come to think of it, that may be easier: no code to write :)17:22
viladsuch: oooh, you want to commit it anyway... but then you don't want a lock !17:22
idnarbleh17:22
vilaidnar: report it anyway !17:22
idnarthe exception traceback occurred in an error handling path, masking the real exception17:23
dsuchvila: I'd like to commit to it /locally/ and then push it to the central place17:23
vilaidnar: I'm not up-to-date about fast-import, others may know better17:23
bialixheh17:23
dsuchvila: and to make sure no one has introduced any changes in the time I was working with it17:24
viladsuch: and you expect the lock to occurs how and when then ?17:24
* bialix trying one more time17:24
bialixGaryvdM: hello17:25
GaryvdMhi17:25
bialixhow's you?17:25
dsuchvila: not saying it needs to be a lock, but right now, with SVN, I'm able to get the lock, work on it (no local commits unfortunately), then commit it to the repo17:25
bialixGaryvdM: I've almost released 0.14.217:25
bialixrats17:25
viladsuch: If you're the one modifying it (and the 20-30 others are using it) AND you're the one managing the trunk THEN all you have to do is ensure that nobody else than you modifies it,17:25
dsuchvila: right17:25
vilaOR if you realized someone modified it anyway, push your own version on top of theirs17:26
* bialix wonder what client Gary used17:26
vilai.e. no lock but monitoring the changes :)17:26
jamdsuch: note that fundamentally even svn locks aren't what you want17:27
dsucheh17:27
jambecause you don't find out that someone has the lock until you *commit* it.17:27
jamwhich is too late17:27
dsuchvila: and merge manually?17:27
dsuchjam: not really, I know it when I try to get a lock17:27
jamunless, I guess, people are disciplined enough to take the locks out first17:27
dsuchyep17:27
jambut in that case, there is some easy plugin-ish things that you could od17:27
viladsuch: you decide, you can refuse to merge and just keep your version and erased the OTHER's changes17:27
james_wvila: I'm too stupid to figure out how to fix that build failure right now, and have to head out to meet someone17:28
james_wI will try and fix it over the weekend or something17:28
vilajames_w: thanks a lot17:29
jamdsuch: so *I* would hack together a "bzr lock-file" plugin that would write a file on the central target location17:29
jamthat says what files are currently locked17:29
jamI'm happy to discuss the shape of something like that17:29
jamfor example, is this using a checkout (heavy or light)17:29
jama preferred submit branch17:29
jametc17:29
idnarreported as bug #432586 if anyone is following along17:29
ubottuLaunchpad bug 432586 in bzr-fastimport "darcs -> bzr import extremely slow before failing" [Undecided,New] https://launchpad.net/bugs/43258617:29
dsuchwell I'll be happy to test it when you create it :)17:29
jamthe locations of the locks could be put somewhere hard-coded17:30
jamor could be per project, etc17:30
james_widnar: did you pipe darcs-fast-export to a file, or directly in to bzr?17:30
dsuchbut I completely don't know anything about bzr internals, I took a peek at the code when it was at 0.0.0.8 I think :)17:30
jamdsuch: can you give more information about how your work is laid out?17:30
jamwhat branches people use, where things are stored, etc?17:30
dsuchbut now I can see it's somewhat larger17:31
dsucher, but we don't use bzr right now17:31
idnarjames_w: I piped it17:31
idnarer17:31
idnarjames_w: I piped it in over stdin17:31
vilaidnar: now that you know that your PC didn't die...17:32
james_widnar: is this a public repository?17:32
vilaidnar: you should retry with the latest bzr and bzr-fast-import versions17:32
james_widnar: piping to a file and getting the size of that file could be interesting17:32
dsuchjam: we're using SVN and we're evaluating the alternatives (a colleague is looking at git)17:32
james_wif it's 300GB then that might indicate the problem is in the export17:33
idnarjames_w: I'm trying that now17:33
james_wthanks17:33
jamdsuch: so you don't actually have a layout yet17:33
bialixgaryvdm: hi again17:33
idnar3.3GB so far, but that's uncompressed17:33
garyvdmHi bialix17:33
dsuchjam: no bzr layout, no17:33
bialixhow's you?17:33
jamidnar: so it is expected that the fast-export => fast-import process is going to generate some large intermediate steps17:33
bialixgaryvdm: can we finish qbzr 0.14.2 this weekend?17:33
jamidnar: you did 'fast-export > to_file.fi" first?17:34
bialixgaryvdm: don't disconnect please please please17:34
garyvdmbialix: What needs to be done?17:34
jamIs that your 27GB file?17:34
idnarjam: no, the failed attempt was piping darcs-fast-export into bzr fast-import -17:34
jamidnar: so first off, I don't recommend piping17:34
jamI recommend redirecting to a file17:34
jamand then loading from there17:34
idnarthe 27GB was a single pack file in the repository which got deleted along with everything else when it failed17:34
bialixgaryvdm: PPA17:34
garyvdmbialix: ok17:34
idnarI'm trying that now17:35
garyvdmbialix: ubuntu karmic?17:35
jamdsuch: so there are lots of potential issues17:35
jamfor example, how should locks be coordinated between branches?17:35
bialixgaryvdm: karmic, yes. james_w promised to help, but not yet17:35
jamdo you want anyone working on any branch to (cooperatively) block someone working on another branch?17:36
garyvdmOk17:36
jam(equivalent in SVN is that you lock branches/*/file/foo trunk/file/foo, for example)17:36
bialixjames_w: can you coordinate with Gary?17:36
idnarsome brief mental gymnastics suggests that 27GB might not be unreasonable for the size of the uncompressed export file17:36
jamor just always lock trunk/file/foo17:36
dsuchjam: in my use case, they shouldn't, there's only one file (a directory, really) that needs to be locked upon starting the work17:36
dsuchjam: and right now, it's always in trunk17:36
bialixgaryvdm: ok, so I'll build installer soon17:37
bialixgaryvdm: and will do announce after PPA17:37
jamdsuch: but if you aren't using checkouts, then presumably you *want* people to be working in separate branches17:37
dsuchmhm, I think I do17:37
garyvdmbialix: I'll only be able to get to it on sunday.17:37
bialixgaryvdm: ok for me17:38
jamdsuch: so if you take out a directory lock, does that lock all files underneath?17:38
dsuchit does17:38
garyvdmbialix: going to SFD tommorrow, and then to my Dads17:38
jamdsuch: so if people are working on independent branches, then you want to be blocking *across* branches when they go to commit17:38
bialixgaryvdm: what is SFD17:38
garyvdmIt's my birthday tommorow :-)17:39
bialixgaryvdm: ?17:39
garyvdmSoftware Freedom Day.17:39
dsuchbut we also learnt that *sometimes* we can get a lock on the master file only, sometimes it works17:39
bialixgaryvdm: congrat17:39
bialixso, see ya later17:39
dsuchjam: oh sure, if people are generally going to work in their own branches then I'd like the lock to be kept across them17:39
bialixbya all17:40
dsuchjam: which seems to be kind of impossible in general case17:40
bialix.me means bye17:40
garyvdmbialix: http://softwarefreedomday.org/teams/africa/SouthAfrica/Pretoria17:40
dsuchjam: but hey, who am I to tell you what's possible :)17:41
bialixgaryvdm: looks cool17:41
idnarhmm, I should probably attempt this on a faster system17:43
jamdsuch: so basically you just configure a central location where the locks are stored17:45
dsuchaha17:45
dsuchI understand you're thinking aloud of some not yet written feature?17:46
jamdsuch: well, being written as we chat :)17:46
dsuchheh17:46
dsuchwant me to grab it from somewhere?17:47
jamdsuch: given that it doesn't really exist as of yet, I'll let you know when I get somewhere17:47
jammost likely I'll put it up as lp:~jameinel/+junk/file-locking17:47
jamto eventually become lp:bzr-file-locking17:47
dsuchheh that's what I meant :)17:47
jamor something along those lines17:47
phinzejam: back from canada? :)17:49
=== deryck is now known as deryck[lunch]
garyvdmvila: When you said that NEWS entries must be sorted alphabetical, is that the actual text in the entry ?17:50
vilagaryvdm: yes17:51
garyvdmthanks.17:51
jamphinze: yep18:04
jamgaryvdm: yeah, it makes for really weird reading18:05
jamfor it makes reading really weird yeah,18:05
jam:)18:05
jamOdd that the sorted version is still rather readable18:05
garyvdmjam: lol18:06
jamgaryvdm: but yeah, within any given section (like Bugs) we sort by the first words of the sentence18:06
jamit isn't a great system, but it has reduced the amount of spurious conflicts (a little bit)18:06
garyvdmbye all18:09
RenatoSilvabzr+ssh is just ssh actually, right?18:10
awilkinsRenatoSilva: No, it speaks the HPSS protocol across the SSH to an instance of bzr at the other end18:10
awilkinsRenatoSilva: If you want "just ssh" you want sftp18:10
jamdsuch: I'll probably be offline for some of the afternoon, but I'll let you know where I get to.18:10
jamits an interesting problem that has been brought up before18:11
dsuchsure, thanks anyway jam18:12
dsuchit's not that we need to migrate right now18:12
jamdsuch: sure, mostly you just brought up the idea18:14
jamof course, there are *tons* of complications, so I'm trying to figure out how much to implement18:14
jamfor example, if I lock "dir/"18:14
jamand you rename "dir/foo => otherdir/foo"18:14
jamshould "foo" stay locked?18:15
dsuchremember that it doesn't need to solve all people's use cases18:15
jamwhat about if I add "dir/bar", should that fall under the lock18:15
jametc18:15
RenatoSilvaawilkins: the SSH protocol is not related only to os shells, right?18:15
RenatoSilvaawilkins: so on the server I can put bzr and send bzr commands instead of shell commands, right?18:16
dsuchjam: if it helps, 1) yes, it should stay locked in my case 2) adding a file when 'dir' is under the lock shouldn't be possible18:16
RenatoSilvaawilkins: is the HPSS a proprietary protocol of bzr?18:16
awilkinsRenatoSilva: Yes (not sure I got the acronym right either)18:17
RenatoSilvaawilkins: yes for which question ? :)18:18
awilkinsYes, it's the bzr network protocol18:18
RenatoSilvaah ok, thanks18:19
RenatoSilvanow I got why it is called bzr+ssh18:19
jamdsuch: should it fail to 'add' or should it fail to take a lock on the dir?18:19
awilkinsRenatoSilva: you can do bzr:// on it's own, but it's got no security of it's own18:20
RenatoSilvait's ssh, but not over the ssh port, which is for shell18:20
awilkinsRenatoSilva: Yes, it's over the ssh port18:20
RenatoSilva22? oh18:20
LarstiQRenatoSilva: ssh is the transport, bzr is on top of that18:21
awilkinsRenatoSilva: All ssh does is tunnel traffic to an instance of the shell at the remote end (bash, csh, whatever)18:21
LarstiQRenatoSilva: what it does is set up a ssh connection, start bzr on the other side, and then talk bzr across the ssh connection18:21
awilkinsbzr+ssh tunnels traffic to an instance of bzr18:21
RenatoSilvaawilkins: All ssh does is tunnel traffic to an instance of the shell at the remote end (bash, csh, whatever) ----> and in this case the "shell" is bzr18:22
awilkinsRenatoSilva: pretty much, yes. Part of the ssh protocol is you specify what you want to run, and if you don't, it uses the default shell configured for the remote user18:23
jamdsuch: also, how do you want to handle the unlock process18:24
jamhow do we know if a given user has the right to unlock it?18:24
jamIs it just on-your-honor?18:24
jamDo we check the username first18:24
jamand if that fails, allow them to 'break' the lock?18:24
jametc18:24
RenatoSilva<LarstiQ> RenatoSilva: what it does is set up a ssh connection, start bzr on the other side, and then talk bzr across the ssh connection --> how about the mentioned HPSS? The way you say is like the talk are just bzr shell commands...18:24
jamdsuch: and if I have 'foo/bar' locked, can you take a lock out on 'foo'?18:25
RenatoSilvaLarstiQ: sorry I think I misunderstood you18:26
dsuchjam: you mean forcibly?18:28
jamdsuch: so for example18:28
jamyou take out a write lock18:28
awilkinsRenatoSilva: It talks the server protocol ; the server is the remote instance of bzr. It's equivalent to running  `bzr serve --directory=/ --allow-writes`18:28
jamthen I should be able to see that18:29
jamcan I break your lock?18:29
jamif I just do "unlock" does it do it automatically?18:29
dsuchyes, you can18:29
jamdoes it check the user?18:29
jamor do you expect something stronger than that18:29
dsuchcurrently it doesn't18:29
dsuchwe're a small team so if someone does it I can always get him on the phone and ask why she did that18:30
dsucheh, *her :)18:30
RenatoSilvaawilkins: ok thanks18:30
jamdsuch: well, do you want logging of how locks have transitioned, then?18:30
dsuchjam: everyone has equal rights here, so everyone can steal any lock18:30
jam(see why this doesn't just exist :)18:30
dsuchYea, lots of questions.18:31
awilkinsIn SVN, locks are more of a warning... you can ignore them (reset the write bit), and steal them18:31
RenatoSilvathanks18:31
awilkinsThey were pretty much an afterthought in the design too - I would guess because people who were used to Visual Sourcesafe and the like wanted them18:31
dsuchjam: a log could be handy for answering the who-stole-my-lock kind of questions18:32
awilkinsSVN logs it18:32
awilkinsWhen you steal a lock you have the opportunity to provide an explanation18:32
dsuchyea18:32
awilkinsAFAIK there are still some bugs about locks not being renamed along with their files in the repository18:33
awilkinsI had to write some admin scripts to purge dead locks18:33
jamawilkins: files are never renamed, they are copied :)18:33
dsuchwhat a great last words :)18:34
awilkinsThe problem with locks is magnified by the DVCS model if you ask me18:34
awilkinsIt's not so great in SVN ; but it works where you are working on the same branch and have files that are (eg) Visio diagrams, etc, binaries that don't merge well18:35
awilkinsBut SVN was designed for edit / merge work cycles not lock / edit / commit like VSS18:35
dsuch*nod* but then again, the case we were discussing involves a human gatekeeper who really needs to be sure he's using the latest version, not modified by anyone18:35
awilkinsdsuch: Which is difficult when there are branches that the server doesn't even know about18:36
dsuchright18:36
awilkinsdsuch: I suppose you could have a "lock server" feature that keeps a map of lock : file-id18:37
dsuchI think that's what jam is thinking of18:37
awilkinsI should refrain from joining in, my head is full of bursting/bucket tries, I need to work out how to splat them into a filesystem18:39
=== deryck[lunch] is now known as deryck
NaokiHi19:16
NaokiSome Japanese Documents in here: lp:bzr-doc-ja19:17
=== awmcclain_ is now known as awmcclain
phinzelevel -JOINS -PARTS -QUITS20:34
=== pwolanin is now known as pwolanin|afk
idnarbleh, hit 45GB on this export and ran out of space22:08
* idnar throws in a gzip22:08
=== abentley1 is now known as abentley
=== Toksyury1l is now known as Toksyuryel

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