/srv/irclogs.ubuntu.com/2008/03/19/#bzr.txt

lifelesspoolie: it rang out, trying again00:07
=== mw is now known as mw|out
lifeless68 failing now00:57
lifeless801:20
=== kiko is now known as kiko-zzz
poolieheads down on ssh locking01:29
lifelesswoo01:58
lifelessfull test time, think its finally hammered into submission01:58
lifelesslunch time too02:01
thatchlifeless: when you get some free time, can I harass you about the get_parent_map/old-server reauthenticate-over-ssh issue again?02:02
jmlwhy doesn't this work: $ bzr log -r date:2008-03-14..02:05
jmlbzr: ERROR: Requested revision: u'date:2008-03-14' does not exist in branch: BzrBranch6(...)02:05
poolienote it is the first one _after_ that date according to the source02:06
jmlstill, it seems a strange error02:06
poolieyou'd rather "no revisions after xxx"?02:08
poolieanyhow is it in fact true there are no revisions on or after that date?02:08
poolieor did you expect it to just log nothing?02:08
* Odd_Bloke would expect it to log nothing.02:28
jelmerLogging nothing or saying "no revisions after xxx" both make sense to me02:29
Odd_BlokeLogging nothing is more consistent with what we do in an empty branch.02:29
jelmerprinting the error message avoids the user wondering why there was nothing logged though02:31
jelmersimilarly, I wouldn't be opposed to printing "Empty branch" when running bzr log in an empty branch02:31
Odd_BlokeNor I, I was just commenting on current behaviour.02:33
Odd_BlokeI can't say I'm massively bothered either way.02:33
jmlpoolie: there are no revisions after that date02:34
jmlwhat jelmer said is what I think (<jelmer> Logging nothing or saying "no revisions after xxx" both make sense to me)02:35
awilkinsI also find the default silence of bzr to be a little eerie sometimes02:44
jmlremind me how to do this: I've made some changes in a working tree, I haven't committed, and now I realise I want them in a new branch.02:52
mwhudsonjml: make a new branch02:52
mwhudsoncd into it02:52
mwhudsonbzr merge --uncommitted ../old-branch02:52
bob2bzr reconfigure --checkout ; bzr branch . wherever ; bzr switch ../wherver02:53
jmlmwhudson: thanks.02:53
lifelessok really the last time. fingers crossed03:38
abentleylifeless: why do you not want the inventory_validator_type in Revision objects?03:41
lifelessI think its making an abstraction violation worse03:42
abentleyI would be quite happy to ditch the validator entirely, but if we're keeping it, I think we need to know what it means.03:43
lifelessI think it is happily hidden behind Repository/Revision themselves.03:43
abentleyThe validator?03:43
lifelessyes03:43
lifelessits exposed at the moment, and only well defined some of the time, but all the uses for it are things that should be methods on either Revision or (probably better given our current object use style) Repository03:44
abentleySo if I were to introduce a new repo format whose revisions didn't have validators in their serialization, that would be fine with you?03:45
lifelessif we can somehow validate the revisions without that, in principle, yes.03:45
abentleyYou mean "validate the inventories"?03:45
lifelessno, I mean the revision - which is a transitive validation of all the stored data03:46
abentleyThe inventory_sha1 does not validate the revision.03:46
lifelessthats true03:46
lifelessI was making a more general statement. I really precise one would be 'if it is no less capable of validating the inventory for that revision', but thats much more awkward03:47
abentleylifeless: It sounds like you're significantly increasing the difficulty level.03:48
abentleyValidating the inventory is one thing-- validating the whole revision is another.03:48
lifelessright now we get revision validation via the revision signature03:48
lifelessclearly if thats not there we only have validation of the data the revision references03:48
lifelessand I did not intend to raise the barrier higher than that03:49
abentleyI don't really get your second statement.03:51
lifelessok, well lets start over03:51
lifelessare you planning on removing inventory validation?03:51
lifeless(aka not reenabling it)03:52
abentleyNo.  I was planning to ignore it until you started saying this was a blocker for rich-root-pack03:52
lifelessI think its a pretty severe defect in the current code03:53
abentleyNow I want to do the minimum necessary to keep you happy and ensure we don't have this problem again.03:53
lifelessI will be happy if: pack-rich-root repositories validate their inventory03:54
lifelessduring 'check'03:54
abentleyIf I simply introduce a new revision serialization just to indicate the inventory serialization, that's going to be wasteful.03:54
lifelesssuch that an edited inventory causes a check failure03:54
abentleyBecause I'll have to introduce at least two, and possibly many more as time goes on.03:54
lifelessI don't think you need to introduce a new serialisation, but you were adamant that you needed to03:54
abentleyIf we don't know what a validator is, we can't hope to use it correctly.03:55
lifelesserm03:55
lifelessclearly that statement is true, but we know what validators we have03:55
lifelessI wrote the code to fix things so that I would be happy03:56
abentleyI think that sticking the validator in the revision is horrid.  It's local data; it doesn't belong there.03:57
lifelessits very simple: change repository.get_inventory_sha to actually use the text, and change fetch to update the sha1 during rich root tree root addition03:57
lifelessthose two changes, in total, made me happy.03:57
abentleyAt the cost of making me tremendously unhappy.03:57
abentleyBecause bazaar is a distributed system, and values should really be write-once.03:58
lifelesswhich is not an acceptable cost03:58
lifelesswell given that the inventory is being rewritten *already*03:58
lifelessthe inventory validator being updated is a consequence of the rewrite being done by the plain->rich root fetcher03:59
abentleylifeless: it is being rewritten, true, but in a deterministic way.  The new values are implied by the existing values.04:00
lifelessthe same holds for the inventory sha change04:00
lifelessin the format under discussion the new inventory serialisation is deterministic, as is the resulting sha04:00
abentleyThe problem with the inventory sha change is that it is tied to the inventory format, but affects the revision format.04:01
abentleyIf the revision format implied that validator, that would be acceptable to me.04:01
lifelessuhm, those two things are part of a repository format though; they can't be used in isolation or arbitrary combinations04:02
lifelessyou can't use an original format revision serialiser today04:02
abentleyYou can shove anything in a bundle, and it will translate as necessary into the target serializers.04:02
lifelessdirectly? or via install_revisions? bundles should not be serialising, they should be using the object model04:03
abentleyI would have to check.04:04
lifelessif they use serializers directly they are profoundly hostile to e.g. bzr-svn04:04
lifelessserialisers are private on a repository04:05
abentleyWell, it looks like it only handles inventory, not revisions.04:06
abentleyIf the repository doesn't use the same inventory serializer as the bundle, then it converts it to an object and calls Repository.add_inventory04:07
lifelessso the basic thing here seems to be - we have individually versioned formats for code reuse and to catch some cases of bugs; There are dependencies between our formats such that changing anything about e.g. inventory changes the value of fields in e.g. revision04:09
lifelessso yes, I think you need a new revision format to be strictly correct; the new format needs no changes other than a version string bump IMO.04:09
lifelessand I think every inventory change will do that if you want to be able to analyse serialised revisions outside of the repository that owns them. (I think that being able to do that is of questionable value FWIW).04:10
abentleyAnd as you can imagine, I don't want that kind of churn.04:11
abentleyI'd rather specify what the validator means.04:12
lifelessmaybe I don't understand what you mean04:13
lifelessbut unless you define the validator as being an arbitrary datatype (and thus needing a format bump _anyway_ when it changes), I don't see it preventing any churn04:13
j1mchello, i've kind of goofed up my bzr history on the bzr repository/server.  i didn't do a bzr bind, and several other people committed changes that i just merged in, and then pushed up a few of my changes.  the content is accurate, but the history is fscked.  is there a way to fix/correct the history?04:14
pooliewhat do you want it to look like?04:15
j1mci want the prior history to be shown.  108 revisions were removed from the branch, and replaced by my generic 'a bunch of updates' commit messages.04:15
j1mc:(04:16
lifelessj1mc: sure thing, what you need to do is do 'bzr branch -r revid:XXX trunk local; cd local; bzr merge -r revid:YYYY ../trunk; bzr commit; bzr push --overwrite ../trunk'04:16
j1mclifeless, can you please explain to me what that will do?04:16
lifelessj1mc: where XXX is the revision id (not revision number) of the last commit that should have been on the mainline before you pushed04:16
j1mc(thanks, btw)04:16
lifelessj1mc: and YYY is the revision id of the tip of your branch (possibly even the current mainline tip)04:17
lifelessj1mc: what it will do is do the merge that bind would have done via 'bzr update'04:17
lifelessj1mc: you can get revision ids via bzr log --show-ids04:18
j1mclifeless: this is on launchpad, will it cause 108 emails to be sent out with the updated revision history04:18
j1mcs/updated/corrected04:18
lifelessj1mc: presumably :(. thumper ^04:18
j1mchaha04:18
lifelessafter you ahve done this04:19
lifelessthere is an option you can turn on in your branch to prevent this mistake04:19
lifelessits in the manual I believe04:19
kgoetzKamping_Kaiser: look at that ^^04:20
j1mcthanks...04:20
abentleylifeless: If we have different types of inventories, we can just specify the validator type, e.g. "inventory6sha1"04:20
abentleyThat means we don't need a different format for every inventory format.04:20
lifelessabentley: so the validator becomes a tuple essentially - (type, validator)04:20
abentleySure.04:21
lifelessabentley: this seems redundant to me, because the repository already knows the type. Which is why I don't think we need a new revision format in the first place.04:21
abentleyThe bundle does not know the type.  It is not in a repository format.04:22
lifelessabentley: but if you feel its essential in the disk format, go ahead I guess. I really think its wrong, but we seem to be at an impasse04:23
lifelessI think bundles are buggy then (grin-joke)04:24
lifelesswell, play on words. I really do think that a bundle has the same duty of integrity as any other revision storage format04:24
abentleyA few minutes ago, you said "I think you need a new revision format to be strictly correct"04:24
lifelessI can see the logic for why you want one; I don't think its needed because its conflating two different things04:25
abentleylifeless: Bundles have very good integrity checking.04:25
lifelessgood; so they _must_ know whether they came from a rich root or non rich root repository04:26
lifelessand if they know that, they know whether the sha in their revision is for a rich root or plain inventory04:26
lifelesssha for the inventory in their revision04:26
abentleyThe one does not follow from the other.04:27
lifelessgiven our data model I think it does04:27
abentleyThey store a sha1 of the expected text output.04:27
abentleyThe sha1 of the fulltext.04:27
abentleyBut this is stored in private data-- the text of the revision is completely ignored.04:28
lifelesswhich clearly will differ if the source and target repository differ04:29
abentleyIf the source and target differ in format, it generates the fulltext of the source, verifies it, and then convert it into the target format.04:30
lifelesswhere you mean 'serialisation of a single object type' by format04:30
lifelessand when I talk formats I mean 'entire repository'04:30
abentleyRight.04:30
lifelessif bundles had the repository format there would be no problem, you wouldn't try to use a fast path that doesn't fit04:31
abentleyOr alternatively, if inventory format didn't affect revision contents, there would also be no problem-- we could mix and match.04:32
lifelessanyhow, we agreed on a compromise in London, which was a new revision format, so lets do that. I'm really unkeen on inventory_validator being (type, opaque_data), because you have to have a new bzr to read new types and validate them anyway04:32
lifelessso I don't see that we gain anything over just revving the revision serialiser itself; which is trivial and tiny amount of code04:32
abentleylifeless: Okay, fine.   I'll implement two revision formats, one for each inventory format.04:35
abentleyBut *you* get to implement the new revision format when you do journalled inventories.04:36
lifelesssurely its04:36
lifelessclass SubX(parent):04:36
lifeless    revision_version = 704:36
lifelessclass SubY(parent):04:36
lifeless    revision_version = 804:37
abentleyI have no idea.04:38
abentleyI suspect it's a bit more than that.04:38
abentleyOnce you've implemented the serializers, you've got to update the places they're used.04:38
lifelessassuming you ditch knit based rich root and subtrees04:39
lifelesswhich I recommend04:39
lifelessthen its just a new subclass of the two Pack repo formats, with a single line override in the same manner04:39
j1mclifeless: you responded pretty quickly to my "history" issue above.  is that a common situation?04:42
lifelessj1mc: no04:42
j1mcyou just know bzr well.  and other people bind their branches.... so it doesn't happen to them?04:43
abentleylifeless: And registering the formats in xml_serializer.format_registry, and I'm pretty sure they pop up in some other places.04:43
lifelessabentley: ok, so 10 lines then ? :]04:44
lifelessj1mc: I'm one of the old hands yeah :)04:44
lifelessok04:45
j1mc:)  thanks so much for your help, lifeless04:45
lifelessI've nuked VersionedFile.get_parents, now to make the implementation within knit.py smooth. Then a patch we shall see.04:45
j1mcbtw, i'm in the general vicinity of john meinel (sp?).  i've met him once before... he's a good guy.04:45
lifelessj1mc: cool, yes he is04:46
lifelessabentley: btw, export-loom, am I expecting a new patch, or should I remove the default and commit myself?04:46
abentleyPlease go ahead.04:46
lifelessabentley: will do04:47
abentleyI'm for bed.04:48
lifelesswow04:48
lifelessmust be very late now04:48
jelmerhmm, I think I forgot something..04:49
abentleyEh, not even 1:00am04:49
lifelessjelmer: hah!04:49
Odd_Blokejelmer: Was it 'going to bed'?  Because I've done exactly the same...04:49
jelmerOdd_Bloke: :-)04:51
SymgeosisI'm new to Bazaar and I'm having problems figuring out how to pull an older revision of a branch. Could somebody help me out with the command?04:54
lifelessSymgeosis: bzr pull -r revno --overwrite04:58
SymgeosisThanks Lifeless.04:58
j1mclifeless: i have an additional question about your prior suggestion.05:01
thumperlifeless: I lost the context, can you explain (launchpad emails)?05:01
j1mcyou wrote, "and YYY is the revision id of the tip of your branch (possibly even the current mainline tip)"05:01
j1mcwould that be a revid of one of the earlier revisions?05:02
j1mci don't know what a branch "tip" is05:02
j1mcthumper: http://pastebin.ca/948485  (context)05:03
Odd_Blokej1mc: The branch tip is the revision that the branch points to.  The head, in git terminology (I think).05:03
j1mcOdd_Bloke: thanks, but i still don't quite understand.05:05
thumperj1mc: you could set you subscription level to "No email" for the change and then edit it back afterwards to avoid the email05:05
pooliehm, so should i do this locking change by passing a parameter down saying "don't wait", or by having the smartserver set a global option not to wait for locks?05:11
poolierelying on global state is undesirable, certainly05:12
poolieotoh it really should not normally be waiting05:12
j1mclifeless: sorry to keep bugging you (if you are even still around), but i'm having a hard time knowing what i should be selecting as the second (XXX) revid.05:13
j1mcwould it be a recent revid (from just before i goofed up the history)?  or one of the ones from earlier in the history?05:14
bob2do you mean second (YYY)?05:18
j1mcbob2: yes, the second YYY05:19
pooliej1mc: it's the last one that had what you consider "good" history05:19
poolieprobably the one just before your merge05:19
bob2YYY should be the revid of the top of your branch (second part of the output of bzr revision-info)05:20
j1mcmaybe it would help if i posted the last good revision to pastebin05:21
j1mchttp://pastebin.ca/94851805:21
j1mc3651.1.108 is the last good revno05:22
j1mci think i would use that for the XXX part05:22
bob2(that's a revision number, not a revision id)05:23
j1mcbob2: correct05:23
j1mcrevision-id:asommer70...05:23
j1mcthat's the revid05:23
j1mci'm hesitant to use the "asommer70@gmail.com-20080318135647-hbbpj5bl819nu1oa" as both XXX and YYY, but that's what i think is being suggested.05:24
bob2XXX is supposed to be the last revision id before things went wrong, YYY is the tip of your currently wrong branch (which, as lifeless said, might still be the tip of the lp trunk)05:25
bob2afaict05:26
j1mcso in that example, my "incorrec" push has a revid of "jwcampbell@gmail.com-20080319032336-pyefchhxbdwyrsjp"  that would be YYY05:27
j1mc(it is the most recent push to the branch"05:27
j1mc(sorry for the typos, it's late)05:27
j1mcbzr branch -r revid:asommer70@gmail.com-20080318135647-hbbpj5bl819nu1oa trunk local; cd local; bzr merge -r revid:jwcampbell@gmail.com-20080319032336-pyefchhxbdwyrsjp ../trunk; bzr commit; bzr push --overwrite ../trunk05:32
bob2does "bzr log" in trunk show what you want it to show?05:33
lifelesshi soerry05:33
lifelessbeen on phone05:33
j1mcbob2: yes.05:33
j1mcon my local copy05:34
j1mclifeless: np05:34
lifelessj1mc: so05:34
lifelessj1mc: to find XXX, run bzr log --show-ids05:34
lifelessj1mc: somewhere amongst your merged revisions will be a commit to the trunk that *should* be on the mainline (that is have a whole number revision number, with no dots), but that is shown nested05:35
lifelessj1mc: the first one of those, is the one you want as XXX05:35
j1mchttp://pastebin.ca/94851805:35
j1mcthe first one listed is the most recent commit and push to the branch.  it's the one that screwed everything up.  the one after that is the last good one05:36
j1mcbased on that, i think this is correct:05:36
j1mcbzr branch -r revid:asommer70@gmail.com-20080318135647-hbbpj5bl819nu1oa trunk local; cd local; bzr merge -r revid:jwcampbell@gmail.com-20080319032336-pyefchhxbdwyrsjp ../trunk; bzr commit; bzr push --overwrite ../trunk05:36
j1mcwhere "asomer..." is the last good one05:37
lifelessj1mc: ok, then use asommer70@gmail.com-20080318135647-hbbpj5bl819nu1oa as XXX05:37
j1mcand where "jwcampbell..." is the tip, or most recent commit05:37
lifelessand whatever revision id revno 3666 has for YYYY05:37
j1mclifeless: in my log, there is no 366605:44
lifelessuhm05:45
lifeless3667 and after a while 3666 and so on05:45
lifelesswhat command are ou running05:45
lifelessto get the log05:45
lifelessdo you have an alias set overriding revision selection05:45
j1mcbzr log --show-ids > ~/Desktop/ids05:45
j1mcno05:45
lifelessthen look further down the file :)05:46
j1mc:)  got it05:46
poolielifeless: i see the smart server locking tests specifically ask for knit repositories05:53
pooliedo you suppose that is an accident, or because they want one that has more locking than packs?05:54
pooliehm05:54
lifelessthe former I believe05:54
pooliei'll mail spiv05:55
lifelessannotate doesn't blame me ?05:56
* poolie looks05:56
pooliebtw did you know gannotate supports Ctrl+F05:56
lifelessyes05:56
poolieah yes, it is you05:57
poolie> Make test_smart use specific formats as needed to exercise locked and unlocked repositories.05:57
poolieso do you still want it?05:59
lifelessyes thanks05:59
lifelessrunning against packs may be interesting too, but running against knits is essential until we stop using them.06:00
pooliei'm confused06:00
poolieyou said it was an accident06:00
pooliebut you still want it?06:00
lifelessoh06:00
lifelessI meant deliberate;)06:00
lifelessgee look at the time, gotta go :P06:01
lifeless(seriously, I woke at 4am, I am rather shattered - getting former and latter confused is not good. I'm going to go have a cat nap)06:03
kgoetzhehehe06:06
pooliesure06:13
lifelessactually, going to call it a work-day06:29
lifelessI need to dig up the python C api and turn a list to a tuple to finish this patch06:31
j1mclifeless: you rock.  your command helped me to fix it.06:47
kgoetz\o/06:48
jml_hi ho07:01
pooliehi07:01
=== jml_ is now known as jml
Odd_BlokeSo many jmls!07:02
j1mcOdd_Bloke: ... I'm j1mc  :)07:03
j1mcbut yeah... kind of strange07:03
jmlI'm on a crippled system atm.07:04
Odd_Blokejml: :(07:06
Odd_BlokeNight!07:13
siretartis 'bzr selftest' supposed to work using the 1.3rc1 debian package?08:26
james_wsiretart: are you seeing failures?09:03
siretartjames_w: http://paste.debian.net/5143509:35
james_wsiretart: wow. you're not in a directory with a directory named "tests" or a "tests.py" are you?09:39
siretartjames_w: no, I'm not09:42
siretartbzr & bzrtools seemed to work anyways, so I've decided to just upload bzrtools 1.3.0 to sid09:43
james_wI saw that, thanks.09:43
siretartis that perhaps because of python 2.4 instead of python 2.5?09:45
siretartno, doesn't seem so09:45
james_wis tests/* shipped in the binary package?09:47
siretartha, it seems that builddeb is breaking selftest09:47
siretartafter removing bzr-builddeb, the 'selftest' command works fine again09:47
james_wah, you're not doing bzr --no-plugins selftest09:47
siretartwell, I wanted to run the selftests on bzrtools09:47
james_wok. I want to prepare a builddeb upload today, and it should fix all of this nonsense.09:47
siretartgreat!09:47
james_wsorry for breaking it.09:48
siretartjust drop me a note, I'll sponsor it09:48
siretartno worries09:48
james_wgreat, thanks.09:48
siretartbtw, are you DM or was that just jelmer?09:48
james_wthat was just jelmer09:48
siretartok09:48
VSpikeI use cygwin on Windows.  Am I generally better using the cygwin supplied bzr or the windows version?10:04
lukscygwin's python is usually slower10:05
VSpikeI'm currently using the Windows version which mostly seems OK but I am having problems with the sftp protocol.10:05
james_wVSpike: would you like to describe the problems?10:05
VSpikeI've found this https://lists.ubuntu.com/archives/bazaar/2008q1/036410.html10:05
VSpikecommit to sftp repo freezes10:05
VSpikeworks from dos box, freezes in cygwin bash10:05
james_wso you have exported that variable?10:06
VSpikeI tried export BZR_SSH="paramiko" and that makes it output an extra line "Connected (version 2.0, client OpenSSH_4.6p1)" before freezing10:07
VSpikeI have not set up keys, so in DOS it prompts for password.  I was basically wondering as next step, either try to set up keys or try out a full cygwin stack instead10:08
VSpikeI can install Cygwin paramiko, but I think I will have to use cygwin bzr to take advantage of it?10:09
VSpikeIn the DOS box, it outputs exactly the same line and then prompts for a password10:10
VSpikeI thought paramiko linked to putty/pageant not openssh?10:11
VSpikemy windows bzr is 1.2 and the cygwin version is 1.1 ... will i have any problems if i downgrade?10:23
awilkinsDue to the fuss from the emacs camp, does 1.3 have any speedups for trees with large file counts?10:30
awilkinscd ..10:31
awilkinsoops10:31
james_wawilkins: I think it was all a bit late for much stuff to go in to 1.310:32
james_wand it's not the large file count that the operations they are discussing are having problems with, it's the depth of history10:32
james_wwhich is >87000 revisions10:32
awilkinsAh, ok then10:33
awilkinsMy problems are the opposite :-) - 8000-ish revisions, about 30,000 files10:33
awilkinsBut it's still worlds faster than SVN10:34
awilkins(except the branching-from-svn part :-)   )10:34
james_wawilkins: that should hopefully be sped up soon. (if you are using bzr-svn)10:37
awilkinsawilkins: Yes, I hear those new pyrex bindings are the bees knees10:37
james_wawilkins: if you are having trouble with large trees posting to the list with the operations and profile data may help.10:37
* awilkins is talking to himself again10:37
james_w:-)10:37
awilkinsjames_w: I think my problems are less to do with bzr and more to do with filesystem performance on Win3210:38
james_wit's more the "don't pack after every commit" that will make a difference, that's a separate issue to the bindings10:38
awilkinsjames_w: I'll consider it, but as I said, it kicks the pants off SVN10:38
awilkinsjames_w: Yes, that too10:38
james_wawilkins: ah, well you're on your own then :-)10:38
james_wseriously though, there may be ways to speed it up, so consider it10:39
james_wI can help you collect the profile data if you like.10:39
awilkinsjames_w: Yup, after thursday I'll have some time ; I want to have a crack at building those pyrex bindings on Win32 (I have MinGW AND the MS 2003 compiler sitting in the wings wiating)10:39
james_wthat would be very valuable, thanks.10:40
awilkinsBig Feature Push on at the moment (ie, meeting the consumers for an iteration meeting tomorrow :-)  )10:40
awilkinsjames_w: I had a try at building them last week ; it's a TOTAL pain in the arse10:40
james_wI can imagine.10:41
awilkinsIt's mostly SVNs fault ; APR is a breeze to build on Win3210:41
awilkins"Load the Visual Studio project we provide and as long as you have the SDK it works"10:41
* awilkins rolls on the drum for Vista SP110:42
awilkins"Your computer will reboot several times during installation" (you could write that on Bill GAtes grave....)10:44
awilkinsjames_w: Are pack repos reverse-delta or forward-delta?10:48
james_wawilkins: they are based on knits10:48
* awilkins is ignorant of what a knit is10:49
james_whang on, which way round is reverse-delta?10:49
awilkinsYou keep the current revision verbatim and store the deltas to get back to the previous revision10:49
awilkins(at least, that's what I mean when I say it)10:49
awilkinsWhat RCS does10:49
james_wawilkins: no, it's forward-delta then I think.10:50
awilkinsI was thinking maybe if you had checkpointed verbatim revisions in there it might make the emacs deep-history thing better10:50
awilkinsBut I am a novice :-)10:50
luksit's graph/index operations that are slow, not the delta decompression of actual files10:51
=== doko_ is now known as doko
james_woh, I think it does store full texts when the delta chain is too long or an individual delta is too large.10:51
awilkinsJolly good, I'm glad something so obvious as to occur to me wasn't overlooked :-)10:52
james_wbut as luks says, operations like log etc. are what they are talking about, which doesn't access the texts10:52
awilkinsAre per-file logs slow?10:52
awilkins(as opposed to whole-tree logs)?10:52
luksany log10:52
* awilkins is surprised10:53
lukslog in bzr needs to sort the graph in many ways, in git just dumps the (almost) raw index10:53
lukswhich is one reason why it's slower10:53
awilkinsFair enough.... time to reboot for me, back in a mo10:54
james_wluks: git does need to sort the revisions, it just has less constraints on the sort.10:55
james_win particular it needs to load all revisions with pointers to their parents, and then traverse the graph once before it can output any revisions.10:56
james_wit still takes bzr about 10s to do even that on the emacs repo10:56
luksjames_w: if I'm not mistaken, git doesn't even topologically sort them by default10:57
james_wluks: true, sorry, it date sorts them.10:57
james_wHowever it can still topo sort them very quickly.10:57
luksbut I was surpsised that with my toy repository format I was playing with a few months ago, I had log faster than in hg10:58
luksand hg does much less work on sorting there10:58
james_wgit log --date-order > /dev/null  2.76s user 0.09s system 98% cpu 2.900 total10:58
james_wluks: that's good to hear. How did your repository format differ?10:58
luksgetting rid of the xml revision format would also help bzr10:58
james_w--date-order is the strictest git log format, and the above is warm cache.10:59
luksdifferent indexes, bulk reads, no xml, ...10:59
james_wluks: that sounds good.10:59
fullermdWell, you can say almost anything, and as long as you include "no XML" it sounds good   :p11:06
fullermd"I like to eat babies with mustard, relish, and no XML."   "Wow, really?  That sounds great!"11:06
Pengluks: What became of your toy format?11:07
luksempty disk space, I think :)11:08
luksor maybe it's still somewhere on the laptop11:08
PengIt sounds like it was good work.11:09
lukswell, in my experience with submitting patches to bzr, something like that would never be accepted11:10
awilkinsSVN working copies used to use XML, they traded "down" to a KV format instead and got large perfomance increases11:11
luksI had a few more interesting private branches here, but almost never finished them because I realized I'm just wasting my time11:11
awilkinsI'm surprised that BZA is using XML in any of it's disk formats, to be honest11:12
luksit's legacy thing, I guess11:12
luksXML is not a serious bottleneck and if it works, why replace it11:12
james_wluks: why do you think they wouldn't be accepted11:12
awilkinsI mean, what, just loading those enormous libraries must account for a substantial fraction of startup time :-)11:12
luksjames_w: because even trivial patches sit in BB for months11:13
james_wawilkins: it doesn't use the large libraries I don't think.11:13
james_wluks: but if it has benefits I'm sure it will be appreciated, and I think it would get people looking at it pretty quickly.11:13
awilkinsjames_w: Hmmph, I wrote a toy library for parsing XML in VB3 once ; I was amazed by the speed you can get when you just walk a pointer through a string buffer on it.11:14
luksjames_w: as an example, see the ML discusion about the revno patch11:14
james_wluks: If you still have it at least I would like to have a look.11:14
luksjames_w: I sent two mails to the mailing list, it improves performance significantly, and I got no responses11:14
james_wluks: true, that one has been overly long.11:14
james_wluks: with code?11:15
luksmails? yes with working code11:15
james_wawilkins: yeah, bzr uses a very basic XML, so it's not hard to parse.11:15
james_wluks: ok, let me dig them out.11:15
luksin my experience, patches by non-Canonical people are reviewed only if it touches somebody's favorite code11:15
luksjames_w: no need, I'm not going to finish that patch :)11:16
luksand if it touches somebody's favorite code, they will nickpick on unimportant details11:16
james_wluks: I'd still like to look.11:17
luksI really see bzr development as "closed" and that's why I somehow stopped being interested in it11:17
james_wluks: http://article.gmane.org/gmane.comp.version-control.bazaar-ng.general/35667 <- that one?11:17
luksno11:17
lukssee jam's "[MERGE] lookup revno by iterating history" thread11:18
james_wluks: that's not the repository format one though?11:22
luksah, no11:22
james_wluks: I agree that should have been looked at though.11:22
james_whopefully jam will pick it up and work on it.11:22
luksthe repository format was never really finished11:22
james_wyeah, but it would still be interesting to look at it to find the good ideas.11:22
lukshttp://bundlebuggy.aaronbentley.com/request/%3C64ab70ac0802041811u61752e66l3a04f025336390ae@mail.gmail.com%3E is another nice example11:25
james_wyeah, I was just looking at that one, it's a real shame there's been no real review.11:27
luksit's not really about real reviews, but at least telling the person that "the patch is completely wrong" or "it looks good but we don't have time right now" would help11:28
luksalso I think there are people on the mailing list capable of reviewing patches like this, but their vote wouldn't count anyway, so they just don't11:29
luksanyway, enough ranting from me :)11:30
VSpikebah11:30
james_wluks: I agree.11:31
VSpikeswapped to cygwin version and now bzr status shows everything as modified or conflicting11:31
james_wI realised the other day that apparently anyone can BB:comment, so at least that allows non-reviewer reviewers to have their comments given some status.11:32
VSpikeeven in a just committed tree11:32
james_wVSpike: that's not good.11:32
james_wluks: thanks for your comments.11:32
VSpikejames_w: heh. nope11:32
VSpikewhat does it mean when a file has a * after it? not seen that before11:33
james_wVSpike: so you're using the same tree as you just were with the native version, but now with the cygwin version.11:33
VSpikeyes11:33
james_wI've no idea actually.11:33
luksVSpike: executable bit change11:33
james_wwere you using the native through cygwin before?11:33
VSpikejames_w: i was executing it from a cygwin shell11:34
VSpikeluks: that could be the problem11:34
james_wok, so it might be the jump of going from windows->posix.11:34
VSpikehow does the windows version comprehend executable bits?11:34
james_wI don't know if native via cygwin behaves as windows or posix.11:34
james_wVSpike: it doesn't11:34
james_wthere's a plugin you can use to change the execute bit if you need to.11:35
luksVSpike: I think it's just that the dirstate is confused11:35
james_wcould you pastebin the output of bzr status?11:35
VSpikejames_w: it would be windows, would be my guess.  Running a windows program from cygwin doesn't change it's environment afaik11:35
luksif you don't have any uncommitted changes, try branching it again off the existing one11:35
james_wok, thanks.11:35
james_wVSpike: yes, try branching, or bzr remove-tree, bzr checkout may also work.11:36
jelmerhi Zindar11:38
Zindarhey Jelmer... how's things?11:39
VSpikepastebin.com/m7a81b1ef11:39
jelmerquite well.. fighting with pyrex11:39
VSpikethat's bzr diff and bzr status11:39
Zindarjelmer: :)11:40
ZindarI'm enjoying the emacs bzr mailing threads :)11:40
Zindarjelmer: I'm writing support for apple Mail.app in bzr send btw... almost done...11:40
james_wVSpike: ah yeah, that's the problem, the windows version has made everything appear executable to cygwin.11:40
james_wVSpike: a branch should save you. Otherwise install the xbit plugin and remove the executable status of them all.11:41
james_wVSpike: or just chmod in cygwin should work and be less effort.11:41
jelmerZindar: ah, nice11:41
VSpikejames_w: I'm just trying to recall, but I think cygwin shows everything +x11:41
VSpikejames_w: I don't think you can remove with chmod11:42
Zindarappletalk is not like other languages :)11:42
jelmerZindar: the emacs thread is interesting indeed. It would be nice if we could get them onboard11:42
jelmerZindar: their requirements would probably drive some more performance work, and would be good pr11:43
VSpikejames_w: oh, ok i lied.  you can11:43
Zindaryeah.. but I understand the performance problems... it's almost too slow for me.. and I'm working with a smaller project than emacs11:43
james_wZindar: that would be cool, thanks. Especially when jelmer's child_submit_to patch lands bzr send will be great, so having it work everywhere will be cool.11:43
Zindarjames_w:  just scratching my own itch :)11:44
* awilkins is infuriated that Branch.rename_one isn't implemented11:45
jelmerjames_w: it has already landed :-)11:45
VSpikeah, that's better.  find -type f -exec chmod a-x "{}" \;11:46
james_wjelmer: ah, cool, I'll start setting it everywhere, thanks.11:46
awilkinsDammit, how do you move files from a python console11:52
awilkins(in bzr, not the plain os)11:52
luksWorkingTree.rename_something11:52
james_wawilkins: Tree.rename() I think11:52
james_wrename_one() maybe11:53
awilkinsBranch.rename_on() isn't implemented.... can you gte a Tree from a branch?11:53
james_wThere's also move() I think, but it has slightly different semantics.11:53
luksyou can't, the other way around11:53
luksyou get a branch from a tree11:53
james_wtree.bzrdir.open_workingtree()11:53
luks(that means, open the working tree, not the branch)11:53
james_wbranch.bzrdir sorry11:54
luksoh11:54
awilkinsI did "frombzrlib.workingtree import WorkingTree ; tree = WorkingTree.open('.')11:57
james_wawilkins: perfect.11:58
awilkinsI'm walking my tree renaming all my .xml files to .pxml11:58
awilkinsIt was taking forever from a shell with all the process spawning11:58
awilkinsIt's taking a while from the console....11:58
fullermdJust proves the earlier point about XML being bad for performance   ;>12:00
awilkinsYeah, they'll be much faster when they are pxml files12:00
awilkins:-P12:00
awilkinsIt's just so my diff tool can use a custom rule on the without applying it to other xml files12:01
datosiretart: are you going to fix your bzrtools upload? it is uninstallable against 1.3. (hint: `bzr diff -c -1` vs `bzr diff -c -2`)12:02
PengSomeone should set child_submit_to on bzr.dev (and all the other branches too)12:03
awilkinsDamn, this rename is still going12:04
awilkins'tis only 3500 files12:05
awilkinshttp://pastebin.ca/948729  << anyone see anything wrong with this in terms of performance ?12:06
awilkinsIs it rewriting my 6 MB dirstate file after each call, for example?12:10
james_wawilkins: nothing specifically.12:11
james_wI may be missing something though12:11
awilkinsI have a feeling it's because I'm using rename_one and the tree has 18,000 files in it12:11
luksseems so12:11
awilkinsIt's only done 1300 / 3500 files12:11
luksthere is a flush call, which seems to save the dirstate12:12
awilkinsThe dirstate is definitely increasing12:12
awilkinsI'll have a crack with .move()12:13
Pengjelmer: bzr-svn (latest 0.4 branch and bzr.dev) fails at branching http://codespeak.net/svn/pypy/dist/: Failed PROPFIND on /svn/!svn/bc/45181/pypy/dist12:15
jelmerPeng: One sec, I'll see if I can reproduce it here12:16
PengThanks.12:16
awilkinsBah, I don't think move() can rename the file, just moves the folder it's in12:19
awilkins(from reading code)12:19
fullermdBrings back memories of when 'mv' and 'move' and 'rename' were separate commands.12:20
awilkinsI don't think theres an API call that can do bulk renames :-( *sulk*12:20
awilkinsWell, not a "public" one, I think12:21
jelmerPeng: this is a server side issue12:33
jelmersvn ls -r45181 http://codespeak.net/svn/pypy/dist fails as well12:33
jelmer(or a svn client library issue, depending on how you want to look at it)12:34
Pengjelmer: Ok. That sucks.12:38
Peng"trivial commit to test pushing from bzr"12:39
=== mrevell is now known as mrevell-lunch
jelmerwow, ok12:43
jelmerthat's either a very big coincidence or there's something funky happening here12:43
jelmerah, 45182 fails too12:43
Peng(45181 is probably related to https://code.launchpad.net/~mwhudson/pypy/bzr-svn)12:45
Pengs/probably//12:45
datosiretart: ok, I'll fix12:49
awilkinsOh you have to be frickin' kidding me12:53
awilkinsSeems the new Vista SP1 has some "security" fixes in it12:53
awilkinsI can no longer change the permissions on "notepad.exe" so that I can overrwrite it with something non-crap12:54
fullermdFriend of mine once had a Win2k machine that did something like that.  It would reappear every time it was deleted.12:54
awilkinsOh, that's not too hard to get around.12:54
awilkinsNo, this is different ; I'm an admin user but I can't change the file permissions12:55
awilkinsI could before12:55
fullermdObviously, anybody trying to harm notepad is a hax0r and must be stopped.12:55
awilkinsI wonder if I reboot in Ubuntu and copy over it it will notice / moan ?12:56
awilkinsBah12:56
siretartdato: BAH, sorry, I was in the wrong branch :(13:13
datosiretart: no worries, fixed now.13:13
siretartdato: thanks!13:13
datonp13:13
siretartI experimented in a private branch for the snapshotting, and botched the merge for the 'offical' branch13:13
siretart:/13:14
* awilkins has remembered the fix for his "notepad nazi-ism" problem13:15
=== mrevell-lunch is now known as mrevell
=== kiko-zzz is now known as kiko
jelmerdato,siretart: hi14:04
jelmerWould either of you be able to sponsor the first upload of bzr-dbus these days?14:04
jelmer*one of14:04
siretartjelmer: There is no debian/watch file, so can't use that to retrieve upstream tarball14:08
siretart(message from bzr bd) :)14:09
siretartjelmer: any reason to not use debhelper 5?14:12
jelmersiretart: it should get a snapshot from launchpad14:23
jelmersiretart: No, that's a mistake on my part14:23
=== bigdo1 is now known as bigdog
jelmersiretart: should be fixed now14:26
siretartwould you care to commit a watchfile?14:27
siretartsee the bzrtools package for an example14:27
datowell, I don't think bzr-dbus has released tarballs?14:28
jelmeryeah, that's the problem at the moment14:28
siretartoh, I see. bzr-builddeb is in export-upstream mode14:29
siretartbzr: ERROR: No such tag: bzr-dbus-0.1~bzr3414:29
jelmersiretart: what version of bzr-builddeb are you running?14:29
siretartii  bzr-builddeb             0.92                     bzr plugin for Debian package management14:30
siretartperhaps http://bzr.debian.org/pkg-bazaar/bzr-dbus/unstable/ doesn't have the necessary tags?14:31
jelmernewer versions will interpret ~bzr34 and export revision 3414:31
siretartaah, I see14:31
jelmeryou can also override it manually by specifying --export-revision=34 (IIRC)14:31
jelmerlooks like it's actually --export-upstream-revision=3414:32
siretartyes, that seems to do the trick14:32
james_wI'm going to get all those fixes together later.14:33
siretartjelmer: the selftests are failing14:40
siretartRan 37 tests in 1.039s14:40
siretartFAILED (failures=2, errors=1)14:40
siretartare you aware of that?14:40
jelmersiretart: ouch, no14:43
* jelmer fix0rs14:43
jelmersiretart: fixed14:44
=== mw|out is now known as mw
siretartdid you push to http://bzr.debian.org/pkg-bazaar/bzr-dbus/unstable/?14:45
jelmerargh, wrong remembered push location14:46
jelmershould be fixed now14:47
siretartjelmer: the testsuite seems to assume a running and working dbus, right?14:49
siretarthttp://paste.ubuntu.com/5872/14:50
jelmersiretart: yes14:52
jelmersiretart: the plugin should however cause no trouble if dbus is not available14:53
jetsaredimis there a "proper" way to do a merge on a file that has conflicts?15:13
james_wjetsaredim: sorry, can you explain please?15:15
jetsaredimlets say I have two completely different versions of a file15:15
abentleyawilkins: A public API that can do bulk renames is TreeTransform.15:16
jetsaredimI know I want all of one and none of the other15:16
jetsaredimif I just plaster the one I want over the one that's there - is that going to screw up any sort of vcs tracking?15:16
awilkinsabentley: Thanks for the pointer15:18
abentleyIt can do anything to a working tree, which is why its API is rather ugly.15:18
abentleyThere should probably be a "renames" method on WorkingTree.15:19
* awilkins thought the same ; was thinking about refactoring "rename_one" into "rename_many" and getting "rename_one" to call it15:20
abentleyI'd implement rename_many on TreeTransform, not refactor rename_one.15:21
abentleyBecause TT will always do what you ask it to.15:21
jetsaredimso - is that a "it doesn't matter"?15:21
abentleyA naïve implementation of rename_many will rename files on top of one another.15:21
fullermdjetsaredim: Overwriting a file with 'cp' isn't any different from the VCS's POV than editing it to remove the conflicts, so I can't think how it would.15:22
jetsaredimok cool15:23
abadger1999jelmer: ping15:27
jetsaredimthanks all15:28
abadger1999Hey guys, brandon_rhodes has some questions about bzr-svn.15:28
abadger1999Can anyone here comment on a few end user questions?15:28
jelmerabadger1999: pong15:29
jelmerabadger1999: sure15:29
jelmerbrandon_rhodes: hi15:29
brandon_rhodesjelmer: Hey!15:29
brandon_rhodesIf I use bzr locally and then commit back to svn, then it can't of course do the merge back to svn with the separate changes I've made listed under the merge change.15:30
brandon_rhodesBut ... does it at least make a cool commit comment or something that lists the local changes that were included in the merge?15:30
siretartjelmer: uploaded15:31
jelmerbrandon_rhodes: Not sure I understand what you mean. bzr merges are tracked in svn15:32
jelmersiretart: tahnks!15:32
brandon_rhodesjelmer: In subversion, if I make 10 changes on a branch then merge to trunk, subversion just says "here's brandon's Big Change To Trunk", and it looses the info that the merge is of ten separate little changes.  Linus complains about this.15:33
jelmerbrandon_rhodes: So, bzr-svn stores information about the merge in svn properties15:33
jelmerso bzr will be able to see where the changes were merged from15:34
brandon_rhodesjelmer: I'd heard a rumor that, in bzr, the "4031 Brandon merges his stuff" change to trunk has, listed underneath it / inside it, the 10 changes I made that then got put together in the merge...15:34
brandon_rhodesWhoa!15:34
brandon_rhodesIt uses svn properties?15:34
brandon_rhodesThat's heavy!15:34
jelmerbrandon_rhodes: However, you won't be able to see what was merged from svn15:34
jelmerthere is no way to adjust the commit message - it would break referential integrity in bzr15:35
jelmerat least until we do a format upgrade15:35
brandon_rhodesOh ... huh.15:35
jelmerbrandon_rhodes: You can include information about the merges in the commit message yourself though15:36
brandon_rhodesSo you couldn't have the message, beneath my own comment, auto-include a bit of text that says "this merge included 9 separate changes: ..." and maybe list one-line summaries of them or something?15:36
brandon_rhodesIt would just be cool to see that info when other developers were browsing svn normally15:37
jelmerbrandon_rhodes: bzr push to svn does the same thing as bzr push to any other bzr branch - it preserves the exact revision15:38
jelmerone of the core ideas behind most dvcses is that a specific revision id can only refer to exactly one unique revision15:39
jelmer(referential integrity)15:39
jelmerchanging the commit message would violate that basic rule15:40
jelmerthere are two possible ways around this:15:41
jelmer- we could set two revision properties in svn: one that svn sees and one that bzr sees. This however can't happen until the next mapping upgrade of bzr-svn15:42
jelmer- it should be fairly easy to write a plugin that edits the bzr commit message and inserts the merge info there15:42
jelmerbrandon_rhodes: still there?15:43
brandon_rhodesYes.15:52
brandon_rhodesSorry, writing up 2nd day sprint report :-)15:52
brandon_rhodesjelmer: I think I'd better play with bzr and subversion some myself, and then I'll understand what's going on with merging. :-)15:53
brandon_rhodesAll I know right now is what someone drew for me while talking15:53
jelmerbrandon_rhodes: ah :-)15:54
jelmerbrandon_rhodes: A better way of describing it is probably to consider what "bzr push" should do15:55
jelmerbrandon_rhodes: you would expect it to make sure that the branch on the remote side contains the exact same contents as your local branch15:55
brandon_rhodesjelmer: Um.15:56
brandon_rhodesjelmer: Oh. You're talking about a situation where the branch actually exists in Subversion?15:56
jelmerbrandon_rhodes: Not necessarily - it is also push to push a new branch into subversion15:56
brandon_rhodesjelmer: I thought I'd heard a guy talking about just copying svn /trunk into a bzr of his own, then merging right back into svn /trunk.  I'd missed the fact bzr was creating a branch in svn.15:57
brandon_rhodesThen it makes sense that you'd copy the changes 1-for-1.15:57
brandon_rhodesBut it still seems subversion couldn't "see" what the merge included like bzr can "see" that the merge to /trunk is the sum of lots of little changes in the branch ... is that true?15:58
jelmerbrandon_rhodes: well, if you use "bzr push svn://.../trunk" you're telling bzr to add the extra revisions you have locally to /trunk15:58
jelmerbrandon_rhodes: yes, that's correct15:58
brandon_rhodesjelmer: As separate revisions? Gotchya.15:59
jelmerbrandon_rhodes: Only the mainline revisions15:59
brandon_rhodesRoger.15:59
jelmerbrandon_rhodes: Since subversion doesn't support merge tracking15:59
brandon_rhodesRight.15:59
brandon_rhodesIt just mushes them all together.15:59
jelmerright15:59
ubotuNew bug: #203941 in bzr "Bzr -r ancestor:badbranch signals errors too late" [Undecided,New] https://launchpad.net/bugs/20394116:17
=== kiko is now known as kiko-fud
jelmerPeng: any chance you can file a bug about that bug in bzr-svn you hit with codespeak?16:59
Pengjelmer: Ok.17:08
Verterokmoin17:10
intellectronicahya, i'm getting the following error when trying to push to a server: ShortReadvError: readv() read 3451 bytes rather than 3640 bytes at 1997614 for ...17:12
intellectronicaany ideas what could that be? bzr 1.2 both locally and on the sever17:13
brandon_rhodesCan bazaar do svn:externals-like stuff?17:14
brandon_rhodesAnd can it do it on files instead of svn which can only do directories (eww!)17:15
Pengbrandon_rhodes: Not yet.17:16
brandon_rhodesIt would be cool to have a VC that could easily version control something like /etc/ or my homedir, where some stuff needs to be checked out from a common repo (so my .bashrc might look the same on all my systems), but pull other stuff from a per-homedir or per-system repo17:17
brandon_rhodesSo that /etc/sysctl.conf could pull from a "debian-common" repo and be the same on my machines, but "/etc/hostname" be per-machine17:19
fullermdI doubt nested-files will ever be around.17:20
fullermdThat calls more for symlinks, or maybe just merges.17:20
brandon_rhodesDrat. :-)17:21
brandon_rhodesAnd it would be neat if the first part of /etc/sysctl.conf could pull from "debian-common" but then have the file end with stuff from a machine-specific repository :-)17:21
* fullermd will hold out for a pony instead.17:21
* brandon_rhodes grins :-)17:23
LarstiQfullermd: what do you mean with nested-files?17:25
LarstiQoh eek17:25
ubotuNew bug: #203975 in bzr-svn "PROPFIND failed branching http://codespeak.net/svn/pypy/dist/" [Undecided,New] https://launchpad.net/bugs/20397517:25
fullermdLarstiQ: Egads!  Don't look; you'll go blind.17:25
jelmerPeng: thanks17:29
jelmercurl is the http library that is going away, no?17:30
PengI'm using curl, aren't I?17:34
PengWell, I am, but how would you know?17:34
PengYes, it is.17:34
ubotuNew bug: #203979 in bzr "ShortReadvError trying to push to a server" [Undecided,New] https://launchpad.net/bugs/20397917:40
=== kiko-fud is now known as kiko
=== kiko is now known as kiko-phone
=== kiko-phone is now known as kiko
LeoNerdHas anyone here ever played with the Python CPAN module..? Module for constructing/interacting with Python objects from Perl code...18:59
LeoNerdI'd like to instantiate a 'bzrlib' object from Python, so as to call various methods on it18:59
fullermdFunny, I've thought passingly about that very thing...18:59
dato*g*19:00
barryhi folks, quick question: we're setting up bzr serve via ssh in an authorized_keys file command="" section.  having some problems and we're wondering if bzr serve logs anywhere?19:15
LeoNerdSo.. Not being a python programmer, could someone suggest me a nice simple line to demonstrate that bzrlib is working..? I now have a shiney Inline::Python perl module here ;)19:15
barrywe're using: command="/usr/bin/bzr serve --allow-writes --inet --directory=/foo"19:16
barryand we're getting an error -1 when we try to bzr push bzr+ssh://19:16
LeoNerdAre you sure you need that --inet there?19:16
datono idea, but I guess you checked ~/.bzr.log already?19:17
LeoNerdOh.. heh. so you do. Never mind :)19:17
barrydato: we're not getting a .bzr.log file19:17
barryLeoNerd: yeah ;)19:17
datook19:18
barrybtw, we're using bzr 1.1rc1 on the server19:18
barrywe figured it out19:24
luksLeoNerd: I think it would be easiest to write most of what you need in python and use only simple functions from perl19:25
LeoNerdHrm... Technically I guess it would work either way around19:26
luksbecause the bzrlib API is full of classes and I'm not sure how well does Inline::Python handles that19:26
LeoNerdInline::Python does classes19:26
LeoNerdIt wraps them in a trampoline object, that supports the same methods19:26
luksyeah, but to what extent19:26
lukshttp://bazaar-vcs.org/Integrating_with_Bazaar has some examples of simple bzrlib usage19:27
LeoNerd.oO( How annoying.. vim can't highlight python in heredocs in perl code.. booo )19:28
LeoNerdHmm....   repo = branch.repository    <== that's an attribute rather than a method call, yes?19:35
luksyes19:35
luksmethod calls have (), this is not perl :)19:35
LeoNerdHm... OK19:35
datoluks: well, it could be a property19:36
dato(no idea if that'd be relevant for what LeoNerd is doing)19:36
luksright19:36
luksbut that's the same for Inline::Python, I think19:36
lukssince the method call is handled by python automatically19:36
scodeHmm. I was under the impression 'bzr serve' would produce a browseable web interface, in addition to the optimize bzr synch protocol. What is the idiomatic way to provide a web browsable copy of a repository?19:37
scode(bzr serve does not seem to speak HTTP when I try it)19:37
radixscode: loggerhead I think19:39
datoscode: there is no built-in capability in bzr for that19:39
LeoNerdHrm.... It seems Inline::Python only supports method calls on wrapped objects, not attribute access19:40
luksthat's why I mentioned implementing "wrappers" in python19:40
scoderadix/dato: Ok - thanks.19:40
LeoNerdCan I add new methods to an existing class.? Are all classes open?19:41
luksyes19:41
LeoNerdWoo :) I've just opened a branch, queried top revision, and printed its log summary. From perl ;)19:45
james_wscode: there's bzr-webserve  as well that provides a "webserve" command to give a HTTP interface19:47
datoand there is even a third one nobody ever remembers19:50
ubotuNew bug: #204025 in bzr "Concurrent updates of separate threads in a shared repository fails" [Undecided,New] https://launchpad.net/bugs/20402519:51
LeoNerdHm.. So.. how much of the core simple stuff in bzrlib is going to use attrs rather than methods?19:51
LeoNerd.oO( Also I can't see documentation on these attrs on the docs pages - do they not come out? )19:52
LarstiQLeoNerd: in what sense?19:54
LeoNerdLarstiQ: Well.. the examples use   branch.repository   to get the repo. for a branch... I couldn't see that on the branch docs page19:54
LarstiQLeoNerd: there are lots of non-methods like that, yes19:55
LeoNerdHmm.. :/19:55
LarstiQLeoNerd: a method wouldn't really make sense19:55
* LeoNerd ponders improving Inline::Python so it can do that19:55
LarstiQ?19:55
LarstiQLeoNerd: yay :)19:55
LeoNerdSimply implementing hash lookup ought to be sufficient19:56
LeoNerdHmm.. though.. dunno what Python's API might make it look like19:56
LeoNerdI could tie STOREHASH and RETRIEVEHASH so that  $branch->{repository}  is rvalue and lvalue19:56
LeoNerdBut.. more interesting things like enumerating all the keys...  keys %$branch   ... would python allow that?19:57
lukskeys %$branch would be similar to dir(branch)19:57
LarstiQLeoNerd: there is no iteration on the object itself for it's members, but you can do that on object.__dict__ (which is a dictionary)19:57
LarstiQluks: thanks, now I know what keys does ;)19:58
LeoNerdHmm.. Is every object backed by just a dictionary?19:58
luksLarstiQ: d.keys()19:58
LarstiQLeoNerd: not in theory, though most won't play funny games on you19:58
scodejames_w: thanks!19:59
LeoNerdHm.. OK.. So would it be reasonable to represent an object as a hashref, to allow the usual sorts of things with its keys?19:59
LarstiQLeoNerd: if properties are used, or __getatrr__ is overriden, the answer would be no19:59
LarstiQLeoNerd: I don't know perl nor it's idioms19:59
luksLarstiQ: not really19:59
luksproperties don't really translate well to that20:00
luksbecause the value can change in any "call"20:00
* LarstiQ thought he just said that?20:00
LarstiQthough I confess in a roundabout way20:00
luksyeah :)20:00
luksI think best would be to treat them all as functions20:01
LeoNerdWell.. a real native hash allows getting/setting of arbitrary named elements, and enumeration of the keys20:01
luksbut then you can't easily assign to them, so you would have to use e.g. branch->repository($new_repo)20:01
LeoNerdWould it be sensible to make a python object look like that?20:01
LeoNerdYah.. plus.. I wasn't sure if they live in different namespaces20:02
LeoNerdobject.foo() vs. object.foo20:02
luksno, they are in the same namespace20:02
luksobject.foo() just takes object.foo and calls it20:02
LeoNerdAh OK.. Though.. Looking at how the Inline::Python works, it just throws (pl) method calls into (py) method calls. If I did the attrs. like that as well, it would have to know which one to do20:03
LeoNerdPlus, your point about assignment... I suspect a hash is the way to go here20:04
luksmaybe implement something like getattr, setattr?20:04
luks(that is, separate functions)20:04
LarstiQLeoNerd: everything on an object is an attribute lookup first20:04
LarstiQwow, that's sloppily worded20:05
luksactually, it probably allows you to use the native ones from python20:05
LeoNerdbranch.getattr("repository")   or something?20:05
luksgettattr($branch, "repository")20:06
LeoNerdHrm... That seems not to be exported to perl :/20:07
LeoNerdI suspect this probably requires more poking at Inline::Python's internals...20:08
LeoNerdOoh.. but methods are just code refs as attributes, yes? I wonder if breakage would happen if you try to pull one of those out directly20:13
=== mw is now known as mw|food
mxpxpodbesides bzr-hg (which doesn't work with bzr 1.2), is there a hg->bzr converter?20:54
Odd_Blokemxpxpod: There's fast-export/import which might work.20:55
mxpxpodoh, cool20:57
mxpxpodI didn't realize that fastimport came with exporters20:57
datomxpxpod: well, you'll need an exporter for hg20:58
datomxpxpod: I think there is one in... sec20:58
mxpxpoddato: fast-import comes with one in the exporters directory20:58
=== mw|food is now known as mw
datooh20:59
datowell, they've made a copy from the canonical location then20:59
mxpxpoddato: from where?21:00
datohttp://repo.or.cz/w/fast-export.git21:01
mxpxpodno no, I was talking about the fast-import bzr plugin coming with exporters21:01
datomxpxpod: though maybe bzr-fastimport is its new home, not sure21:01
datoyes21:02
datoI said they made a copy21:02
datoyou said from where21:02
mxpxpodoh, gotcha21:02
datoI gave you the "from"21:02
dato:)21:02
mxpxpod;)21:02
weigonwhat to do when I get:21:04
weigonbzr: ERROR: Pack '2765b027c9b99141c06eeabd2ca628ac' already exists in <bzrlib.repofmt.pack_repo.RepositoryPackCollection object at 0x0151EF90>21:04
weigon... on a push21:08
weigonif it already has it, why does it try to apply it ?21:08
james_wdato: yeah, I think we've taken over fast-export.git21:16
james_wor rather incorporated it.21:16
weigon... and why does it work at a second try ? locking ?21:17
james_wweigon: it probably pushes a different pack, or doesn't bother as it already exists. I don't know why you would have got the first one.21:18
datojames_w: oh, I see :)21:19
fullermdIt's not the first time the error has come up.  Nobody's made it reproducible yet, though.21:20
fullermdI think it's considered to be a manifestation of some weird bug.21:20
=== jml` is now known as jml
james_wweigon: a bug filed with the relevant chunk of your ~/.bzr.log may start the ball rolling.21:30
=== mwhudson_ is now known as mwhudson
james_wsiretart: hi. I realise it's late, so it's fine if you're not able to do it today. I have pushed what I think is a working package to the launchpad branch. If you could check it and upload that would be great, thanks.21:37
siretartjames_w: not alioth?21:37
james_wsiretart: http://bazaar.launchpad.net/~james-w/bzr-builddeb/trunk in case you lost the URL.21:37
james_wsiretart: no, launchpad, I can push to alioth if you would like.21:37
james_win fact I'll do that anyway.21:38
siretartok21:38
siretartI just wouldn't expect a branch named 'trunk' to be suitable for publishing in a distribution :)21:38
siretartat least not without further comments about that21:38
james_wah, ok.21:39
siretartok, I've updated the branch info, so lp:bzr-builddeb *should* point to the up-to-date branch21:40
james_wthanks21:41
siretartseems to work21:42
james_wdo you know if they run denyhosts on alioth?21:42
datodenyhosts?21:44
siretartthe package does not seem to be installed21:44
siretartso I'd assume no21:44
james_wone of the "block ip addresses that guess passwords on ssh" scripts21:44
datooh21:44
datothey use fail2ban afaik21:45
james_wI guess there are many, I don't even know if denyhosts is the right name21:45
james_wah, that's it then. That's why I always have trouble connecting to alioth.21:45
datoreally? what do you do for it to hate you? :)21:46
mxpxpodhas there been any recent work to get svn:externals working in bzr-svn?21:46
james_wI forgot to set a user in ~/.ssh/config, so I always try and log in first with my local username, and then obviously get blocked about the same time that I realise.21:46
datoah, heh21:47
james_wI've rectified that now, so I should be able to do it properly next time.21:47
datojames_w: that has an easy solution21:47
datojames_w: become a DD21:47
james_wmxpxpod: I haven't heard of any.21:47
dato:-P21:47
james_wdato: or that...21:47
james_w:)21:47
mxpxpodjames_w: are nested bzr trees supported?21:47
james_wthough I don't use my local username anywhere else.21:48
james_wmxpxpod: sort of.21:48
james_wmxpxpod: vague answer I know21:48
mxpxpod:D21:48
james_wmxpxpod: there is some support for storing the necessary data, but actually using them will typically fail as there are plenty of bugs to shake out.21:48
mxpxpodfor instance: https://bugs.launchpad.net/bzr-svn/+bug/82863 mentions that development is blocked by support for by-reference nested trees21:48
ubotuLaunchpad bug 82863 in bzr-svn "svn:externals is not supported" [Wishlist,In progress]21:48
siretartjames_w: http://paste.ubuntu-nl.org/60220/ :(21:48
james_wsiretart: is there a line missing from the end of that?21:49
siretartImportError: cannot import name tests21:49
siretartmake: *** [build-python2.5] Error 121:49
siretartthese were missing21:50
james_wah, stupid stupid me.21:50
siretarthey, I even did a stupid upload today ;)21:51
james_wI can't seem to find a reliable way to run the tests during the build22:05
james_wsiretart: I'm too tired to really think about this any more tonight. Do you want to wait until another day, or just upload with the tests disabled?22:09
siretartjames_w: I've just tried to do that. package builds fine, but `bzr selftest builddeb` still fails. are you aware of that?22:09
james_wsiretart: can I see the errors please?22:10
james_wit works fine for me.22:10
james_wthough I'm python2.5 based, are you on a 2.4 machine?22:11
siretarthttp://paste.ubuntu-nl.org/60224/22:12
siretartI'm on a pretty freshly installed debian/sid system22:12
siretartwhich has /usr/bin/python still pointing to python2.422:12
james_woh, what? Why does that not work for you?22:12
james_wit's not a python2.4 issue.22:13
siretartthere doesn't seem to be any tests installed into the package.. hmm22:13
james_wthat might be it :)22:13
james_wsiretart: thanks :) We should be able to enable the tests now.22:15
james_wpackages=['bzrlib.plugins.builddeb'],22:15
james_w      package_dir={'bzrlib.plugins.builddeb': '.'},22:15
james_wthat doesn't seem to be enough in setup.py to build and install the tests.22:16
hacklberryis it possible to make bzr work with mingw ssh on windoze (or does bzr work only with putty)?22:17
james_whacklberry: as I understand it there are several options for ssh on windows.22:19
james_we.g. plinj22:19
james_wplink sorry22:19
james_wand it can/does use paramiko, so anything that can use is ok.22:20
james_wI don't know if it can use the mingw one though, sorry.22:20
siretartI think I fixed it now22:20
siretartjames_w: are you okay with this patch: http://paste.ubuntu-nl.org/60226/22:21
james_wsiretart: that would be fine. If you have a couple of minutes I think I may have a better one.22:22
siretartah, sure22:22
hacklberryjames_w: it looks like it does not work with mingw ssh, i just tried a little test, first on my slackware laptop:22:27
hacklberrymartin@yobbo:~/test_bzr$ bzr branch sftp://martin@192.168.130.143/home/martin/bzr/rlm_ftress22:27
hacklberryBranched 109 revision(s).22:27
hacklberry and here is the result from my windoze workstation (when trying to do the same from a mingw/msys terminal):22:27
hacklberry$ bzr branch sftp://martin@192.168.130.143/home/martin/bzr/rlm_ftress22:27
hacklberrycommand-line: line 0: Bad configuration option: ClearAllForwardings22:27
hacklberrybzr: ERROR: Unable to connect to SSH host 192.168.130.143; EOF during negotiation22:27
james_wsiretart: if you pull I think that should work.22:28
james_wsiretart: if not, please upload your change.22:28
james_whmm, I wonder where that "ClearAllForwardings" comes from.22:29
james_whacklberry: it looks like it is could work, if you can work out what that means then you may be able to fix it, or work out how bzr can support it.22:29
siretartwell, you incorporated my change to setup.py :)22:30
hacklberryhas something to do with how bzr uses the mingw ssh i guess, the ssh on its own works fine, ie. i can do slogin martin@192.168.130.143 without any problems22:30
lifelessyawn link, good morning22:31
mwhudsonhello lifeless22:31
james_whi lifeless22:32
james_whacklberry: ok, so it would be great if you could find out what bzr is doing wrong and file a bug.22:32
hacklberryjames_w: i m playing with it now22:33
james_whacklberry: great, thanks.22:34
siretartjames_w: the test-builddeb command seems to run all tests just fine, but reports exit code 1 instead of 0, which fails the build. huh?22:34
james_wsiretart: sorry, stupidity again.22:35
james_wsiretart: it returns result.wasSuccessful()22:35
james_wso it wants a return not result in __init__.py22:35
james_wsiretart: fix pushed, sorry.22:36
siretartheh. I'm learning more and more about bzr :)22:37
siretart'not result'?22:38
siretartthat looks weird..22:38
james_wsiretart: true, I'll fix it.22:39
siretartbut works! :)22:39
james_wcorrection pushed if you care, otherwise it can wait.22:40
james_wreadable good. working better.22:40
pooliehi22:41
james_whi poolie22:41
siretartjames_w: ah, thanks for clarifying that. I'll upload in a sek22:41
james_wsiretart: brilliant, thanks.22:42
james_wthanks siretart22:58
siretartyou're welcome!22:58
hacklberryexcuse my naivite, but i think the following message is (perhaps) incorrect (as i do not run a bzr server):23:01
hacklberryC:\test>bzr branch bzr+ssh://martin@192.168.130.143/home/martin/bzr/rlm_ftress23:01
hacklberryConnected (version 2.0, client OpenSSH_4.3p2)23:01
hacklberryAdding ssh-rsa host key for 192.168.130.143: 07AA7C20C76E8D87F84EBB7E1FCD07F623:01
hacklberryAuthentication (publickey) successful!23:01
hacklberrySecsh channel 1 opened.23:01
hacklberryServer is too old for fast get_parent_map, reconnecting.  (Upgrade the server to Bazaar 1.2 to avoid this)23:01
hacklberryConnected (version 2.0, client OpenSSH_4.3p2)23:01
hacklberryAuthentication (publickey) successful!23:01
hacklberrySecsh channel 1 opened.23:01
hacklberryBranched 109 revision(s).23:01
siretarthacklberry: bzr+ssh:// uses the smart server on the remote side, starting it on demand23:01
hacklberrysiretart: thanks23:02
hacklberrysiretart: just out of interest - does bzr need to be installed on the remote box where i store my branches? (it didn't use to)23:11
asabilhacklberry: no, but if you have it it is better23:16
asabilit allows you to use the bzr:// transport (actually bzr+ssh://)23:17

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