After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 783989 - multiple --diff parameters don't work anymore (only last pair is diffed)
multiple --diff parameters don't work anymore (only last pair is diffed)
Status: RESOLVED FIXED
Product: meld
Classification: Other
Component: filediff
git master
Other Linux
: Normal normal
: ---
Assigned To: meld-maint
meld-maint
Depends on:
Blocks:
 
 
Reported: 2017-06-20 11:27 UTC by Sven Mueller
Modified: 2017-09-09 21:19 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sven Mueller 2017-06-20 11:27:37 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.
Comment 1 Sven Mueller 2017-06-20 11:37:04 UTC
Note: This has been present since 3.16.4 at least, it appears to me.
Comment 2 Sven Mueller 2017-06-20 14:41:45 UTC
I need to update this:
The reproduction case above is incomplete: This only happens if an(other) instance of meld is already running.
Comment 3 Balint Reczey 2017-06-20 14:43:30 UTC
Originally reported at:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865298

I failed to reproduce it on sid and zesty, FYI.
Comment 4 Sven Mueller 2017-06-20 14:46:54 UTC
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).
Comment 5 Balint Reczey 2017-06-20 14:55:03 UTC
Ok, it fails with a pre-existing instance, indeed.
Comment 6 Kai Willadsen 2017-06-23 21:52:14 UTC
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.
Comment 7 Sven Mueller 2017-06-26 08:08:07 UTC
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.
Comment 8 Kai Willadsen 2017-06-27 21:33:17 UTC
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.
Comment 9 Mike Gibson 2017-08-11 20:09:13 UTC
A note in the man page would be helpful since it's quite non-obvious when it doesn't work.
Comment 10 Kai Willadsen 2017-09-09 21:19:21 UTC
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.