GNOME Bugzilla – Bug 783989
multiple --diff parameters don't work anymore (only last pair is diffed)
Last modified: 2017-09-09 21:19:21 UTC
Reproduction case: for i in a b c d; do echo $i > /tmp/$i; done meld --diff /tmp/a /tmp/b --diff /tmp/c /tmp/d Only the diff between /tmp/c and /tmp/d is shown.
Note: This has been present since 3.16.4 at least, it appears to me.
I need to update this: The reproduction case above is incomplete: This only happens if an(other) instance of meld is already running.
Originally reported at: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865298 I failed to reproduce it on sid and zesty, FYI.
Can you please try to reproduce with one window already open? A colleague of mine tried and was able to reproduce that way (while he couldn't when there was no pre-existing instance).
Ok, it fails with a pre-existing instance, indeed.
I'm almost certain that this has never worked. We just don't handle creating multiple windows from a single invocation, which is what the current code is (incorrectly) trying to do. I'm making more exciting changes than I'd like to handle this, so I'm not certain whether I'm going to feel comfortable putting it in 3.16... but right now I'm tending towards no, given that this bug appears to have been present forever without people complaining. I'll try to get it into 3.18.
Hmm, This definitely worked in 1.8 (still shipped in Ubuntu 14.04 Trusty, which still has support from Canonical for a few years to come). So it is not that it _never_ worked. But the architecture of meld was quite different back then, IIUC. I'm not super pressed which version a fix should be in (and I don't know what your release schedules are), but a fix or usable workaround within the next few (2-3) months would be greatly appreciated.
You're right. I should have been more specific. When we moved to 3.x, Meld started using the modern GApplication stuff for single-instance applications, which is when we started doing a local/remote command line handling split. That's when this bug was introduced, so it's just that it's never worked under the current framework.
A note in the man page would be helpful since it's quite non-obvious when it doesn't work.
I've just pushed a fix for this to current master (i.e., what will become 3.19.0). The required changes were a bit too scary for 3.18.0... though I *might* consider backporting them there if they turn out okay in the unstable series. Given this is all weirdly interacting IPC stuff, there's every chance I've missed a case here (or I've got it, but it doesn't behave the way some might expect) so if this doesn't work in your testing, please let me know. Thanks for the bug report.