[00:25] <caravel> good evening, people. Is there any ftps plugin as yet ? (is this blueprint still actual ? https://blueprints.launchpad.net/bzr/+spec/tls-and-ssl-support)
[00:27] <lifeless> caravel: we don't really work off of blueprints
[00:28] <lifeless> caravel: I don't think ftps has been implemented, https is defintely supported - that blueprint is totally inaccurate.
[00:28] <caravel> lifeless: fair enough - thanks for your answer - that's about all I found on the subject really, googled a few times already over the past weeks
[00:29] <lifeless> caravel: we support sftp which is:
[00:29] <lifeless>  - faster
[00:29] <lifeless>  - simpler
[00:29] <lifeless>  - more widespread than ftps
[00:29] <lifeless> caravel: and we support https
[00:29] <lifeless> and bzr+ssh, which we recommend
[00:29] <caravel> but unsupported by FileZilla Server -- which is extremely popular ;-)
[00:30] <lifeless> I suggest you file a bug
[00:31] <lifeless> the core dev team work largely off bug backlogs
[00:31] <lifeless> rather than specs
[00:31] <lifeless> we use spec when planning complex things with unpredictable interactions.
[00:33] <caravel> lifeless: I guess it's not a wide requirement anyway -- fedora 13 here, could I bazaar over some ftps mount transparently ?
[00:33] <caravel> (just a thought)
[00:35] <lifeless> caravel: you should be able to push/pull over an ftps fuse mount, yes.
[00:35] <lifeless> caravel: performance will be less than ideal though - pushing and pulling is dealing with a database afterall
[00:37] <caravel> lifeless: thanks - not looking for performance, rather trying to obtain from our web dev that he commits his code for himself, shares it, permit some backup... fuse should do, if bzr does't time out too fast ?
[00:40] <caravel> there is no real infrastucture, so the idea would be to usie a (temporary) lenny server... as a bzr client to sync code from his FZ/win over fuse/ftps. Arrhmm, can this make sense ?
[00:44] <AfC1> I'd never heard of Filezilla before, but one of my clients yesterday had a problem with it's sftp implementation, whereas Nautilus's "connect to server" (via "SSH"/sftp) worked fine.
[00:46] <lifeless> the bane of my life
[00:47] <lifeless> [11630.844206] iwlagn 0000:02:00.0: Microcode SW error detected.  Restarting 0x2000000.
[00:47] <lifeless> caravel: anyway
[00:48] <lifeless> uhm, you can use any workstation - say yours - to run a bzr server on
[00:48] <lifeless> if you're doing network mounting, good ol smb will interoperate happily with windows
[00:48] <lifeless> I'm assuming your web dev is on windows
[00:50] <mkanat> lifeless: Ugh--what kind of wireless card do you have?
[00:51] <lifeless> 6000 series
[00:51] <mkanat> lifeless: Hmm. I guess they're relatively new.
[00:52] <lifeless> mkanat: arrandale
[00:53] <mkanat> lifeless: Oh, yeah.
[00:53] <lifeless> mkanat: whats worse though
[00:53] <lifeless> mkanat: is that the kernel fails to reset some stuff when the microcode fails
[00:53] <lifeless> so you have to rmmod + modprobe
[00:53] <lifeless> fix is partly in maverick
[00:53] <lifeless> the restart bug affects all iwl cards
[00:54] <mkanat> lifeless: That's really obnoxious. I've had a laptop that that happens on.
[00:54] <lifeless> but you have to have a firmware issue too for it to actually annoy you
[00:54] <lifeless> :)
[00:54] <mkanat> I've had it happen where, randomly, I start up and the card doesn't work, also.
[00:56] <caravel> lifeless: yes, he runs on windoz, there is no perpetual server online besides the production, hosted web server -- and some windoz machine at his place
[00:57] <caravel> bzr fits great with our needs because of its various topologies
[00:58] <caravel> each is in a different part of the country, rather poor and unreliable bandwidth. soon we'll get a couple of servers, but for now
[00:59] <caravel> I found easily LftpFS but it's read-only... anyway, getting waaaay off topic. My concern here was how bzr would handle this type of link
[01:00] <lifeless> caravel: as a push/pull target fine
[01:00] <lifeless> you can't work on a fuse fs directly though because they don't support OS locks properly
[01:01] <caravel> "OS locks" what do you mean ?
[01:02] <lifeless> operating system locks
[01:02] <caravel> lifeless: ok I'm with you, but in my case, only one app will access the fuse link so it should not matter?
[01:03] <caravel> (bzr)
[01:04] <caravel> I'm cautious because while setting up passive and active ftp w(o encryption, I found bzr a bit "delicate" and quite far from the verbose mode.
[01:05] <caravel> opening a passive ftp to a badly (NAT & FZ ports) configured server, did hang bzr apparently
[01:09] <caravel> disclaimer: was running bzr's windoz client
[01:12] <caravel> as soon as the server & router config were rectified, it rocked but I had a few timeouts (while other FTP clients have just no issues)
[01:25] <spiv> lifeless: did you see https://bugs.launchpad.net/bugs/595473 ?
[01:27] <caravel> can bazaar explorer / kde take advantage of kio (cf. kio-ftps) ?
[01:27] <spiv> It would be nice to find out the list of missing features PQM gets when doing 'bzr selftest'.
[01:28] <spiv> caravel: someone recently added a gio transport for bzr, I don't recall seeing the same for kio though.
[01:35] <caravel> spiv: thanks
[01:36]  * caravel finds it real hard to google about such a popular VCS's feature
[01:51] <spiv> poolie: cute way to make simple graphs: http://webnumbr.com/bzr-in-progress-bugs
[01:57] <poolie> hi spiv
[01:57] <poolie> spiv oh wow that's brilliant
[02:00] <spiv> poolie: yeah, it's very nifty
[02:00] <spiv> The API is cute too.
[02:01] <spiv> (Although the AJAX on bugs.launchpad.net/foo makes it awkward to actually get at the interesting numbers, you have to use the +bugtarget-portlet-bugfilters-stats URL)
[03:07] <poolie> spiv, hi
[03:07] <poolie> spiv, i wonder if you can use +text?
[03:07] <poolie> but i guess that would break it's xpath parsing
[03:08] <poolie> spiv, how could you have used read not recv if you tested it locally?
[03:08] <poolie> re bug 595473
[03:08] <spiv> Yeah, not sure.  With that URL I still got to point and click on a cute table ;)
[03:09] <spiv> That half of the if/else is only used via SFTP (when faking a paramiko Channel, which is socket-like, for use with paramiko's SFTPClient)
[03:09] <spiv> So, I tested the bzr+ssh with and without paramiko locally
[03:10] <spiv> And trusted that the test suite would catch problems in SFTP if I broke that.  Which it did, except on PQM for some reason.
[03:11] <spiv> I *guess* PQM is lacking paramiko... I wonder if it's lacking anything else.  It would be nice to see the list of selftest "features" it doesn't have.
[03:14] <poolie> once subunit is working you should be able to get that out
[03:14] <poolie> of the list of skipped tests
[03:14] <poolie> hm
[03:14] <spiv> Well, in some ways the list of unavailable features is more useful.
[03:15] <spiv> Maybe babune could provide a matrix of feature vs. builder....
[03:15] <poolie> i mean the skip messages should tell you which features they're missing
[03:15] <poolie> spiv, so in one place you used recv but in the other it was still read?
[03:15] <spiv> Oh, right, by implication.  Yes.  It's a bit harder to tell which out of hundreds of skips "should" skip.
[03:16] <poolie> perhaps we could use subunit tags or something
[03:16] <lifeless> that reminds me
[03:16] <lifeless> spm: ping
[03:16] <lifeless> spm: in balleny, in the pqm bzr chroot, please do 'python2.4 -c import paramiko'
[03:16] <lifeless> I was wondering
[03:16] <lifeless> would it be useful to attach the stdout and stderr to all responses
[03:16] <lifeless> not just failures
[03:16] <poolie> lifeless, i got stdout and err for a merge conflict failure
[03:16] <lifeless> poolie: the group by stuff I'd like to do would collate the skips for you
[03:16] <lifeless> poolie: was it ok ?
[03:17] <poolie> lifeless, the stderr seems to have lost all its newlines
[03:17] <lifeless> !
[03:17] <poolie> aside from that it's ok
[03:17] <spiv> poolie: not exactly.  I added a new path to handle the fact that SSHSubprocessConnection now might either have a socket or two pipes as its underlying connection
[03:18] <spiv> poolie: and this object provides a "recv" method so that it can be used with SFTPClient; in that recv implementation in the "if I have a socket" code path I typoed "self._sock.read" rather than .recv.
[03:19] <spm> lifeless: worked fine
[03:19] <spiv> spm: huh!
[03:20] <spm> (pqm-amd64)pqm@balleny:~$ python2.4 -c "import paramiko"
[03:20] <spm> (pqm-amd64)pqm@balleny:~$
[03:20] <spm> fwiw
[03:20] <spm> ii  python-paramiko                              1.6.4-1.1                                    make SSH2 connections with python
[03:21] <spiv> lifeless: do you have a recent subunit trace from PQM?  Does that show if that test is being skipped?
[03:21] <lifeless> looking
[03:22] <lifeless> spiv: what test.
[03:23] <spiv> Argh, vila didn't put it in the bug.  /me scrolls back...
[03:24] <spiv> lifeless: bzrlib.tests.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh
[03:24] <spiv> Hmm.
[03:24] <spiv> spm: does the chroot have openssh-client?
[03:24] <spm> spiv: nope
[03:24] <spiv> Ah-hah.
[03:24] <spm> :-)
[03:25] <spm> I'm guessing that's a pls install? :-)
[03:25] <lifeless> need an rt ?
[03:25] <spiv> So it would have fallen back to paramiko for SSH in that test, and thus not hit that code.
[03:25] <spiv> Huh.
[03:25] <spm> lifeless: for the record, yes, but will get it installed in parallel
[03:25] <lifeless> we should add that to the build-deps too, for the packaging, so that that test gets run.
[03:25] <lifeless> spiv: tag, you're it.
[03:25] <spiv> lifeless: for the rt?
[03:25] <lifeless> Yes, if thats ok :)
[03:25] <spiv> lifeless: sure
[03:26] <lifeless> I've forwarded you the subunit trace btw
[03:26] <spiv> Thanks!
[03:27] <poolie> ah so you interactively tested only bzr+ssh, which doesn't call SSHSubprocessConnection.recv?
[03:28] <spiv> Right, because that's just for SFTP.
[03:28] <poolie> so it might be worth testing sftp interactively now?
[03:28] <spiv> I was aware that I was changing code used by the SFTP client, but assumed the test suite would cover me...
[03:28] <poolie> to check it performs as expected, and to use lsof to check it's actually got a socketpair?
[03:28] <poolie> mm so the good thing is that it does, but not on pqm
[03:28] <poolie> good on babune for catching it
[03:29] <spiv> Right.
[03:29] <spm> spiv: lifeless: installed
[03:29] <spiv> spm: thanks!
[03:29] <spiv> (And by installing openssh-client on PQM, we're possibly shifting the coverage gap to the pure-paramiko codepath, although I think that's an inherently less risky one)
[03:29] <poolie> i guess we could add a specific test for recv that doesn't count on having sftp but that may not be worthwhile
[03:30] <poolie> hm
[03:30] <poolie> ideally the test suite would be such that adding dependencies only turns on new tests and doesn't remove any other coverage
[03:30] <poolie> ie if we have an external test we'd run both with paramiko and external
[03:30] <spiv> It would be nice to fix that gap (per_ssh_vendor tests?), but doesn't feel like a very high priority to me.
[03:31] <poolie> at least for some representative fraction
[03:31] <poolie> probably not
[03:31] <poolie> hm
[03:31] <poolie> things like this have happened before
[03:31] <poolie> meaning variation based on testing with or without paramiko
[03:31] <poolie> but it's probably not top of the stack
[03:31] <spiv> Right.
[03:32] <spiv> Really, things worked pretty well in this instance: babune caught the bug quickly, and it got fixed very quickly.
[03:32] <poolie> mm
[03:32] <poolie> that was good
[03:32] <spiv> Obviously far from ideal, but defense in depth is good :)
[03:32] <poolie> i don't think this is a catastrophe
[03:33] <poolie> but interesting to dig into
[03:33] <poolie> *in to
[03:38] <spiv> spm: RT filed, #39941
[03:38] <spm> spiv: ta
[03:56] <caravel> thanks & good night
[04:20] <lifeless> jam: around at all? lazy object question for you
[04:31] <jam> lifeless: what's up?
[04:38] <lifeless> I was wondering if we had something that proxied after it loads
[04:38] <lifeless> even though thats not the common case because of perf concerns
[04:38] <lifeless> for formats that open disk resources it would be convenient
[04:40] <lifeless> jam: ^
[04:41] <jam> lifeless: ScopeReplacer._should_proxy
[04:41] <lifeless> ah
[04:42] <jam> lifeless: might not be fine grained enough yet
[04:42] <lifeless> so I mean
[04:42] <lifeless> 'a lazy object proxy'
[04:42] <lifeless> yes, its too broad.
[04:42] <lifeless> hmm, I'm nearly done with a _LazyObjectGetter approach
[04:42] <lifeless> I'll see how it looks, gimme 2 minutes
[04:51] <lifeless> jam: http://pastebin.com/PHMrCSxk
[04:52] <lifeless> jam: I think this looks ok, simple to use.
[04:52] <lifeless> jam: what do you think
[05:38] <lifeless> jam: I'll propose it, you can assess later :)
[05:43] <lifeless> https://code.edge.launchpad.net/~lifeless/bzr/loomsupport/+merge/27903
[05:43] <lifeless> jam: to be clear, I don't care if you do/don't look at this in particular
[05:44] <lifeless> jam: I'm just closing up the conversation I started with you about the lazy import facilies aspect of it.
[06:29] <mkanat> How do I make bzr forget that I added a file, in my current working tree?
[06:30] <mkanat> Ahh, figured it out.
[06:33] <lifeless> mkanat: bzr revert file
[06:33] <lifeless> mkanat: or bzr rm --keep
[06:33] <mkanat> lifeless: Yeah, --keep --new was what I figured out.
[06:33] <mkanat> (It was a bunch of files in a directory, some of which needed to stay.)
[06:33] <lifeless> yeah
[06:34] <lifeless> revert tries very hard to be safe
[06:34] <lifeless> takes  backups of stuff that isn't in a commit
[06:34] <lifeless> etc
[07:28] <vila> hi all
[07:31] <lifeless> hey
[07:38] <vila> lifeless: hey ! Quick chat about looms ?
[07:38] <lifeless> oui
[07:39] <vila> :-)
[07:40] <vila> lifeless: So, what do you have in mind about the merges in a loom (vague to not pre-suppose anything) ?
[07:41] <lifeless> oh
[07:41] <lifeless> so
[07:41] <lifeless> change up-thread to skip a thread if no conflicts occur
[07:41] <lifeless> and use the result (PreviewTree or whatever) of merging up to merge into the next thread, and so on.
[07:42] <lifeless> when a conflict happens, annotate to find the thread that causes the conflict, and:
[07:42] <lifeless>  - if its trunk [thread 0], ignore all the other threads
[07:43] <lifeless>  - otherwise  try the thread causing the conflict -> the thread we'd reach and if that works its conflicting due to the merge output
[07:43] <lifeless>  - etc - working down a list to refine the conflict
[07:43] <lifeless> do a merge of only the threads involved in the conflict
[07:44] <lifeless> so the number of merges will go way down, per thread
[07:44] <lifeless> this will make merging a loom to a loom better
[07:44] <lifeless>  because common case if you don't touch a thread explicitly, it won't change revid
[07:44] <lifeless> unlike today where it changes all over the place
[07:45] <lifeless> oh also
[07:45] <lifeless> do all merges for 'does it conflict' detection in memory
[07:45] <vila> Hmm, I think I mostly got it but need to think a bit about it
[07:45] <lifeless> so we're insulated from pyc file staleness and the like
[07:49] <vila> on a related subject: how do *you* undo up-thread ?
[07:50] <lifeless> revert and or revert-loom and or uncommit
[07:50] <vila> well, up-thread --auto <thread> (yeah --auto is automatic now, but)
[07:53] <vila> ha, revert-loom, missed that one. No uncommit-loom though
[07:54] <vila> poolie, poolie, where are you ?
[07:56] <vila> lifeless: ok, food for thought on that subject, thanks. That looks promising as it addresses my main problem there (commits that "partly" look useless) but I need to draw some picture to better understand it.
[08:00] <vila> lifeless: about PQM, 2 things:
[08:01] <vila> 1) Is news_merge configured now ? I suspect poolie couldn't land some patches because of that (and I had to merge locally a couple of mps too).
[08:02] <vila> 2) I didn't get a failure email for submitting your broken branch (see my comment on the mp)
[08:02] <lifeless> news_merge can't be configured on branches yet
[08:02] <lifeless> so 1) no
[08:02] <lifeless> nag spiv
[08:02] <vila> oh, and 3) Do we plan to install update_copyright on pqm too ?
[08:03] <lifeless> 2) see my comment in th e mp
[08:03] <lifeless> 3) No plans that I know of, and I think it would be wrong anyway; pqm doesn't write code, coders do.
[08:04] <vila> hmm, good point about 3 but my workflow with loom suffers from that:
[08:05] <vila> since I have the plugin installed, merging bzr.dev triggers such updates and merging  the threads up make the copyright update bubble up
[08:05] <vila> for files I didn't touch myself
[08:05] <spiv> update_copyright sounds a bit too eager.
[08:05] <vila> lifeless: well, I need another way to address that
[08:05] <vila> spiv: Did you catch it proposing wrong updates ?
[08:06] <vila> spiv: nagging: see lifeless remark above about configuring branches for news_merge (I don't get it though)
[08:07] <spiv> I haven't used it myself.
[08:07] <vila> spiv: then what do you mean by eager there ?
[08:07] <spiv> vila: he means that it enabling news_merge ought to be something we can set in the branch, rather than setting in the PQM user's global conf
[08:08] <spiv> (Which especially makes sense if you consider that merging a branch that adds a NEWS entry generally should add it to the current release when merged by PQM)
[08:09] <vila> ha, yeah, inserting in the right release would be nice, but a useful first step will be to have it work for bzr.dev
[08:09] <spiv> vila: triggering updates when you haven't changed the file sounds dubious to me
[08:09] <spiv> vila: e.g. what if a file in bzr.dev was reverted to a 2009 version for some reason.
[08:10] <spiv> So, "eager" in the sense it will sometimes trigger when it shouldn't.
[08:10] <lifeless> its a bug in th eplugin
[08:10] <lifeless> vila: I suggest you fix the plugin
[08:10] <lifeless> commit knows that a file showing in 'bzr st' can be unchanged against one parent
[08:10] <vila> spiv: its history will still mention a change in 2010
[08:10] <lifeless> so the plugin should never change copyright headers in that caase
[08:10] <lifeless> its breaking the per-file merge graph too
[08:12] <vila> meh, I fail to see what is breaked here, the copyright line is a line, its changes are recorded like any other line
[08:12] <vila> broken
[08:12] <lifeless> the line should only change when the file has been changed by the user
[08:13] <lifeless> vila: per file merge graph convergence - you're familiar with it ?
[08:14] <vila> the copyright changes converge, I can't imagine a conflict occuring there that can't be trivially resolved
[08:14] <lifeless> you said
[08:14] <lifeless> 19:05 < vila> since I have the plugin installed, merging bzr.dev triggers such updates and merging  the threads up make the copyright update bubble up
[08:14] <lifeless> 19:05 < vila> for files I didn't touch myself
[08:14] <lifeless> that is the problem
[08:14] <lifeless> if I change a file
[08:14] <lifeless> and you bzr merge me
[08:14] <vila> It's arguably close to embed VCS data into a file which is a Bad Idea, but these lines are there for lawyers anyway
[08:14] <lifeless> and commit
[08:14] <lifeless> then do per-file log of that file
[08:15] <lifeless> your merge commit will not show up
[08:15] <lifeless> if your update copyright plugin makes the file get edited in that commit
[08:15] <lifeless> even if you haven't changed it
[08:16] <lifeless> then it will fail on branches merged in different years
[08:16] <lifeless> e.g. if I have a branch in december 2010
[08:16] <lifeless> no changes in 2011 to a given file
[08:16] <lifeless> and you merge it in jan 2011
[08:16] <lifeless> update copyright should not (and for the laywers, perhaps 'must not') change the file
[08:16] <lifeless> until you actually do something copyrightable to it
[08:16] <lifeless> if you had this fixed, I don't think you'd have made the complaint
[08:17] <lifeless> 19:05 < vila> since I have the plugin installed, merging bzr.dev triggers such updates and merging  the threads up make the copyright update bubble up
[08:17] <lifeless> 19:05 < vila> for files I didn't touch myself
[08:17] <lifeless> above
[08:17] <spiv> It would be interesting to setup a project that kept the copyright line and licence boilerplate on disk via a content filter, and left the canonical texts free of them.
[08:17] <vila> hmm, and changing the copyright line isn't copyrightable ? Quite possible
[08:18] <lifeless> vila: its not a created work, its mere data
[08:18] <lifeless> Oh, I bet you could create a work consisting of opyright lines
[08:18] <lifeless> but as we use it
[08:18] <lifeless> ..
[08:18] <lifeless> no
[08:18] <lifeless> vila: anyway, I don't really care.
[08:18] <lifeless> vila: AFAICT fixing the bug I mention will fix the bug you mentioned.
[08:18] <lifeless> vila: and you asked for a fix.
[08:19] <vila> lifeless: I see your point, sounds reasonable is what I meant with my last remark
[08:20] <vila> i.e. the plugin should only trigger if *I* introduce a change in the left-hand parent only
[08:20] <vila> and for the record, jam wrote the plugin, not me :)
[08:21] <vila> Doesn't mean I can't fix it either ;)
[08:21] <lifeless> I think its intended to update if anyone changes the file
[08:21] <lifeless> but it shouldn't detect an unedited merge as a change.
[08:23] <vila> yup, it should restrict to the changes introduced by the committer, so yes, too eager
[08:27] <vila> lifeless: regarding https://code.edge.launchpad.net/~vila/bzr/595587-fix-test-tariff/+merge/27859, you said: 'it would be nice to have just one list of such variables.' but what other list are you talking about ? And 'such variables' being 'variables that subprocess want to respect from the unless explicitly set otherwise (i.e. ignoring the resets in bt.TestCase._cleanEnvironment') ?
[08:28] <lifeless> vila: well its all tied together right
[08:28] <lifeless> there are variables we want to reset
[08:28] <lifeless> there are ones we want to affect the test suite (except for tests that know better)
[08:28] <lifeless> and so on
[08:28] <lifeless> we seem to be adhocing it
[08:28] <lifeless> so that when someone does something new - like the tarif - it needs manual adjustmnet
[08:29] <vila> so you'd like that list to come from a method close to bt.TestCase._cleanEnvironment and documented ?
[08:29] <lifeless> or attribute on bzrlib.tests
[08:29] <lifeless> or something
[08:29] <vila> yeah, or attribute, ok
[08:29] <lifeless> I'd just like to remove the duplication
[08:30] <lifeless> rather than N lists all slightly different
[08:30] <lifeless> I'd like Y canonical lists that express the intent
[08:30] <vila> N ==2 so far right or did I missed one ?
[08:30] <lifeless> I think its much larger than that
[08:31] <lifeless> IMBW
[08:31] <vila> lifeless: ok, I'll try to look into that. No objection to make that in a different mp ?
[08:32] <lifeless> oh, I thought that was clear
[08:32] <lifeless> I just commented
[08:32] <lifeless> I wasn't expecting it to be done :)
[08:33] <vila> I wanted to make sure I understood your intent :)
[08:33] <vila> I agree that we lack documentation about the impact of env vars, that sounds like a godd plan to address that
[08:36] <lifeless> while you're here
[08:36] <lifeless> abentleys branch to do more cleanups of ui factories
[08:36] <lifeless> spiv: ^ vila; ^
[08:37] <lifeless> that branch seems stalled; I'm happy to change it in the direction I proposed; noone else seems to really have an opinion
[08:37] <lifeless> I'd like one of you to express an opinion :)
[08:39] <spiv> lifeless: Hmm, I don't have an opinion on that :)
[08:39] <lifeless> I'm happy to polish
[08:39] <lifeless> But I don't want to make it worse ;)
[08:40] <spiv> I'm not sure how much of an issue calling clean_up twice or before initialize is likely to be in practice.
[08:41] <spiv> And other than a vague "yes it's nice to have less globals" feeling your suggestion doesn't feel significantly better or worse to me.
[08:42] <lifeless> ok
[08:42] <lifeless> well I'll tweak and land then
[08:42] <vila> lifeless: I haven't looked deeply, but some holes in the implementation have been mentioned, I don't really care *how* they are addressed as long as they are.
[08:42] <lifeless> as a second reviewer
[08:42] <spiv> But I did have "Needs Fixing" vote that should be addressed ;)
[08:43] <lifeless> sure
[10:29] <bialix> heya bzr
[10:29] <bialix> vila: thanks for your help
[10:29] <vila> bialix: you're welcome
[10:30] <bialix> :-)
[10:32] <poolie> hi there bialix, vila
[10:32] <bialix> good day poolie!
[10:33] <bialix> poolie: can I start working on --path-encoding option for diff?
[10:33] <vila> hey poolie !
[10:33] <bialix> your comment about true output encoding is puzzled me
[10:41] <poolie> bialix, so there's a couple of things basically
[10:41] <poolie> first, i don't understand when you would want the paths to be in a different encoding to other non-file-content output
[10:42] <poolie> second, i think i'd like to get to something about generally detecting whether we shoud use the terminal encoding or something else
[10:43] <poolie> bialix i didn't propose it for merge yet but https://code.edge.launchpad.net/~mbp/bzr/340394-encoding-option adds a general output_encoding option
[10:43] <poolie> maybe i should just propose that
[10:45] <poolie> bialix, https://code.edge.launchpad.net/~mbp/bzr/340394-encoding-option/+merge/27913
[11:09] <CaMason> Hi guys. I have a trunk with lots of commits. Some of these commits were project releases
[11:09] <CaMason> I'd like to have a 'release' branch. Would it be possible to merge in from certain revisions to create the release 'tag' in the release branch?
[11:10] <CaMason> I assume it's a case of creating the branch from an early revision, and then merging with -r x..y ?
[11:11] <bialix> poolie: sorry, I' afk for a while. bbl
[11:12] <poolie> np
[11:12] <poolie> CaMason, typically you'd just merge everything up to that point, ie -r x
[11:12] <poolie> or -r y
[11:12] <poolie> but aside from that, yes
[11:13] <poolie> or if you wanted you could just tag them within that main branch
[11:13] <poolie> if you've not already done so
[11:22] <CaMason> poolie, yeah tagging was one option. We'd like to have a seperate release branch though
[11:24] <poolie> k, so then i'd suggest
[11:24] <poolie> tag them in the trunk
[11:24] <poolie> then merge across each tag and commit it
[11:24] <poolie> into the release branch
[11:28] <bialix> poolie: re: first, i don't understand when you would want the paths to be in a different encoding to other non-file-content output
[11:29] <bialix> poolie: on Windows filenames should be in ANSI encoding to be compatible with GNU patch, while terminal encoding is OEM
[11:29] <bialix> so if I want to save diff in a file, I want it to use ANSI encoding
[11:30] <poolie> but to me this is really the second point, that saving to a file needs a different encoding to the terminal
[11:30] <poolie> not that you want different encodings for the filenames vs the other content
[11:30] <poolie> the case of UCS-2 is illuminating i think
[11:31] <poolie> you would never want to mix ANSI and UCS-2 within the diff headres
[11:33] <bialix> for me this is the first point, because windows is 2-encodings system
[11:33] <poolie> ok
[11:33] <poolie> i have to go now
[11:33] <bialix> I don't understand your desire about UCS-2, but as discussion in my merge proposal reveals, this is exceptional case
[11:34] <bialix> ok
[11:34] <poolie> i'll try to explain it on email later
[11:34] <poolie> good night!
[11:34] <bialix> ok
[11:34] <bialix> good night and have a good weekend!
[11:34] <vila> poolie: good night and good week-end !
[11:34] <vila> bialix:  :)
[11:34] <bialix> vila: :-)
[13:30] <marsilainen> hi all
[13:31] <marsilainen> I don't understand the '--no-trees' option that you can use to 'bzr init-repo'
[13:31] <marsilainen> I'm not sure when to use --trees and when to use --no-trees... so I guess I don't understand what a 'working tree' is?
[13:37] <asabil> marsilainen, working tree is the tree of files that you are using bzr on
[13:37] <marsilainen> ok, so when would I want --no-trees?
[13:38] <asabil> --no-trees is generally used in servers hosting bzr repos/branches where you don't want to waste disk space
[13:38] <marsilainen> right, but don't they need the tree of files in order to serve them?
[13:38] <asabil> in which case bzr will just create the .bzr folders
[13:39] <asabil> marsilainen, nope, because when you do a bzr branch it just needs the .bzr folder
[13:39] <marsilainen> so in the .bzr folders, are contained all the checked-in revisions of the files anyway?
[13:39] <asabil> yes, and they are efficiently compressed/packed there
[13:39] <marsilainen> ok
[13:40] <marsilainen> so if I'm serving the files up, it doesn't really matter whether I specify --trees or --no-trees I guess?
[13:40] <marsilainen> I think I understand now anyway, thanks
[13:41] <asabil> marsilainen, serving the files or the bzr branch ?
[13:43] <marsilainen> er
[13:43] <marsilainen> the bzr branch I guess
[13:43] <marsilainen> so that people can get it with 'bzr branch http://myserver/bzr/blah'
[13:47] <asabil> it's better if you use --no-trees I guess
[13:47] <asabil> and maybe setup loggerhead there
[13:48] <marsilainen> ok
[13:48] <marsilainen> thanks
[14:08] <marsilainen> is there any bzr gui which can work on a branch held remotely?
[14:08] <maxb> marsilainen: The other thing to bear in mind is that trees/no-trees on a *repository* is a *default* that is applied to *new branches* being created within that repository
[14:09] <marsilainen> maxb: ok, sure, thanks
[14:09] <maxb> marsilainen: Define 'work on a branch' ? What kinds of work do you want to do?
[14:10] <marsilainen> I want to be able to do things like gui diff between revisions as well as commits etc
[14:10] <marsilainen> when doing web development it makes sense to have the working trees on the web server machine (ie. remote) so that I can test changes before commit etc
[14:11] <maxb> It is impossible to commit without a working tree existing somewhere
[14:11] <marsilainen> yes, I understand that
[14:11] <marsilainen> this is a different question to my one earlier about --trees etc
[14:11] <maxb> I don't *think* that it's possible to commit remotely - i.e. you need the bzr client doing the commit to be running on the machine where the tree is
[14:12] <marsilainen> ok
[14:12] <marsilainen> I suppose I could mount my working tree from the remote machine onto my local machine
[14:12] <marsilainen> and then use it like that?
[14:12] <marsilainen> so then I could use olive or whatever locally
[14:13] <maxb> That should work, though if the network connection is not particularly fast or low-latency, it might be more practical to commit locally and push/pull changes
[14:14] <marsilainen> it's hard to do that when you're doing active web dev though
[14:15] <marsilainen> because you make a small change and want to see what effect that has
[14:15] <marsilainen> commiting each time would be a major pain
[14:32] <CaMason> I need to revert some changes of a file, but keep others. Is there a way I can do some sort of interactive merge with the HEAD on a single file?
[14:56] <maxb> CaMason: The only thing I can think of is to do the merge, and then use shelve to interactively remove some of the changes
[14:56] <CaMason> maxb, I used shelve :)
[15:07] <sven_sandberg> vila, hi!
[15:07] <vila> sven_sandberg: hey ! How did it end up ?
[15:08] <sven_sandberg> vila, i eventually ^C-ed the bzr pull
[15:08] <vila> in the shared repo ?
[15:08] <sven_sandberg> vila, then i ran bzr pack manually. surprisingly, this took only 34 minutes
[15:08] <sven_sandberg> vila, yes
[15:08] <sven_sandberg> vila, then i ran bzr pull, and it was fast
[15:08] <sven_sandberg> vila, then i ran bzr pack again, and it took 34 minutes again
[15:09] <vila> hmm, sounds like the repack succeeded earlier then no ?
[15:09] <sven_sandberg> vila, this was a lot faster than when i did 'bzr pull' and it implicitly called bzr pack
[15:10] <vila> how many pack files do you have now ?
[15:10] <sven_sandberg> vila, now i have 8
[15:10] <vila> and more importantly *when* did they get created ?
[15:10] <sven_sandberg> vila, 7 around 3 MB, and on 358 MB
[15:11] <sven_sandberg> vila, the 7 small ones were created quite soon after i started bzr pack yesterday. the big one was created when i ran 'bzr pack' after having ^C-ed 'bzr pull'
[15:12] <vila> ho, chances are only the big one is referenced then
[15:12] <vila> jam: What's the magical formula to look at the pack-names content ?
[15:12] <sven_sandberg> vila, what does that mean? the others are temp files that can be removed?
[15:13] <vila> jam: sorry, first of all: heello !
[15:13] <jam> vila: bzr dump-btree [--raw] .bzr/repository/pack-names
[15:13] <jam> hi vli
[15:13] <jam> hi vila
[15:13] <vila> sven_sandberg: try the above command and !paste the result
[15:13] <vila> !paste
[15:13] <vila> sven_sandberg: I meant, please, what with my manners today....
[15:14] <jam> sven_sandberg: please include --raw
[15:14] <jam>  bzr dump-btree --raw .bzr/repository/pack-names
[15:14] <jam> (*I* prefer the raw form)
[15:14] <sven_sandberg> vila, :-)
[15:14] <sven_sandberg> vila, http://paste.ubuntu.com/451622/
[15:15] <vila> . o 0 (Come on jam, that's bits not meat)
[15:15] <jam> sven_sandberg: so the other 7 files are not referenced, as Vila suspected
[15:15] <jam> vila: without raw it converts it to tuples, etc.
[15:15] <jam> which, personally, puts too many () in the output :)
[15:16] <vila> jam: hehe, try lisp :)
[15:16] <jam> sven_sandberg: yeah, I'm aware of that, having tried to hack on gnucash some time ago
[15:16] <jam> anyway, the extra files...
[15:16] <jam> I believe it is probably from doing ^C during an autopack
[15:16] <jam> it leaves the newly fetched content there, not yet referenced.
[15:17] <sven_sandberg> jam, so should i remove those files?
[15:17] <jam> sven_sandberg: you are *allowed* to, I don't think they'll hurt anything
[15:17] <jam> if you do, you can remove the same-named files from .bzr/repository/indices
[15:17] <jam> now... as to why it took so long to do it as an autopack vs a 'bzr pack'
[15:18] <jam> the only thing I can think of off-hand is something like peak memory consumption / memory fragmentation
[15:18] <jam> it is doing the same operation
[15:18] <jam> but it is possible the fetch still was holding on to some memory
[15:19] <jam> hmm... I suppose it is also possible that an 'optimize' flag was set incorrectly... but I doubt it would account for hours vs .5hour
[15:19] <sven_sandberg> jam, ok, so it's not doing something wildly different just because the repository was in a slightly different state?
[15:21] <jam> sven_sandberg: shouldn't be
[15:21] <jam> if anything, it should be doing *more* work for 'bzr pack' because it always looks at all files
[15:21] <jam> it is a bit of a shame we couldn't have poked the old one a bit harder to see why it was taking so long
[15:41] <vila> A NotApplicable test failing...
[15:42] <jam> vila: well remember, any given test can have multiple outcomes if the addX gets called.
[15:42] <jam> (cleanups particularly tend to cause errors after success/skip)
[15:43] <vila> investigating but TestNotApplicable is raised during setUp and the failure is during the test itself...
[17:36] <mgz> need to do something about my growing shelf here...
[17:37] <mgz> time for some 'needs to be in initial branch or not' triage
[19:43] <chx> is there a way to 'sneak peak' into a shelve, ie extract the diff of a shelve?
[19:57] <vila> chx: bzr unshelve --preview n
[19:57] <chx> thankeeee
[21:06] <lifeless> mgz: hi
[22:05] <mgz> lifeless: hey
[22:06] <lifeless> so, your branch ?
[22:06] <mgz> done watching poor football, back to that
[22:06] <lifeless> \o/
[22:06] <mgz> I'll push where I am then enumerate the remaining shelves
[22:07] <mgz> it's all edge-of-edge cases now, so some of these probably don't need resolving right now
[22:08] <mgz> okay, 5: use cp* rather than mbcs... might commit this, though it's not reliably testable
[22:09] <mgz> 4: use Python 3 style namespace-including exception names. can wait.
[22:10] <mgz> 3: let BaseExceptions propogate when stringifying errors... can wait I think, as doesn't fix it for Python 3
[22:11] <mgz> 2: a test for another stringifying thing not addressed for Python 3, don't need it.
[22:11] <mgz> 1: first crack at a per-line regexp matcher. can probably wait as well.
[22:12] <mgz> only other thing to do is module renaming, which I was saving for last.
[22:14] <lifeless> sweet
[22:14] <lifeless> well
[22:14] <lifeless> I'm keen to land stuff
[22:14] <lifeless> so if you need feedback on anything, let me know
[22:14] <mgz> okay, I'll do the moving now and resubmit rather than fiddling more
[22:20] <lifeless> if you think you'll want to undo anything you've done
[22:20] <lifeless> then polish it more
[22:20] <lifeless> but I get the sense you just want to add more, not change your mind on approach
[22:24] <mgz> yeah, I've been trying to keep all this as private functions for the moment, so it's at least possible to rearrange some of the specifics later
[22:24] <lifeless> works for me
[22:30] <mgz> okay, done, tests pass on four implementations
[22:31] <lifeless> \o/
[22:32] <lifeless> I'm *really* happy you've done this work
[22:35] <mgz> hm, resubmit didn't do what I thought it was going to
[22:35] <james_w> mgz: what are you working on?
[22:35] <mgz> just yellowed the existing comments
[22:36] <mgz> james_w: making the tracebacks Python 2 produces correctly encodable to UTF-8 by testtools
[22:36] <james_w> oh, coo
[22:36] <james_w> l
[22:36] <mgz> it's sort of a back port of the Python 3 traceback/string behaviour
[22:37] <james_w> lifeless: are you looking for testtools to be a repository of matchers as well as the basic functionality?
[22:37] <lifeless> james_w: I'm happy for matches to go there
[22:37] <lifeless> james_w: I'm also happy for someone to start and run a dedicated matcher project, which could own the base class
[22:37] <james_w> ok, I might start submitting them
[22:37] <lifeless> there is such a thing in java, its a shame that their python port was so unpythonic
[22:37] <lifeless> (hamcrest)
[22:39] <james_w> I think AND and NOT would be useful, though I can appreciate that they have their problems.
[22:39] <james_w> but I've written a couple of generally applicable ones that I could submit
[22:40] <lifeless> please
[22:40] <lifeless> until someone gets the activation energy up to run a dedicated project
[22:40] <lifeless> which I think would be good btw
[22:40] <lifeless> testtools is happy to be a home
[22:40] <mgz> I'd sort-of like testtools to grow them rather than splinter it off as a new thing
[22:44] <lifeless> so
[22:44] <lifeless> matching can be very useful outside tests
[22:45] <lifeless> if someone was passionate about using them in - say - a generic object diff facility in IDEA
[22:45] <lifeless> or whatever
[22:45] <lifeless> I'd be happy to say 'here, enjoy'
[22:45] <lifeless> while noone is passionate and driving them as a specific thing, I think testtools devs caring for them is great
[22:52] <mgz> okay, review is in your inbox lifeless.
[22:53] <mgz> and, as always, scanning the diff I just spot a sentence with the meaning reversed
[22:53] <lifeless> :)
[22:53] <mgz> Python 3 StringIO does *not* expect bytes
[22:53] <lifeless> yes
[22:53] <lifeless> seen the recent email thread on p-d ?
[22:54] <mgz> yeah, I was reading that and thinking of you.
[22:54] <lifeless> :)
[23:21] <davidstrauss> lifeless: If you have a minute, I've run into a very funny merge tracking issue: http://pastie.org/private/vtc9hydx3iyn6nhft7ehiq
[23:22] <lifeless> davidstrauss: wow that is fun
[23:23] <davidstrauss> lifeless: how is missing able to know what's common but not merge?
[23:23] <lifeless> I would guess that you have merged in something with an ambiguous base
[23:23] <lifeless> so that bzr is recursing back
[23:23] <lifeless> and you've managed to find a failure mode for that
[23:23] <lifeless> uhm
[23:23] <davidstrauss> lifeless: In any case, "Branches have no common ancestor" is false.
[23:23] <lifeless> this is worth a bug; you can manually merge with -r 2397.. to work around
[23:24] <fullermd> Seems to me I've seen that before...
[23:24] <lifeless> davidstrauss: right, but that no common ancestor really means 'didn't find an *acceptable* common ancestor'
[23:24] <fullermd> bug 483388
[23:25] <lifeless> bbiab