Line filters not working

Main development forum.

Re: Line filters not working

Postby kimmov » Thu Jun 04, 2009 8:16 pm

Wrong. Current filter behavior is well defined:
  • filter must match every line in the diff to make diff trivial (ignored)
You make it a lot more complex right away. After your patch it is (perhaps?):
  • filter may match every line in the diff to make diff trivial (ignored).
  • IF the filter matches only some lines, the difference is split to two or more new differences, so that matching lines format one difference that is marked as trivial (ignored). Around the trivial difference there might be one or more normal (non-ignored) differences.
See? How is that trivial change? Instead of one difference you have two or more differences. It is quite a big GUI problem among many other problems.
kimmov
 
Posts: 562
Joined: Thu Sep 11, 2008 8:51 pm
Location: Finland

Re: Line filters not working

Postby matthias1955 » Thu Jun 04, 2009 9:51 pm

Yepp, now you got me :D
That's what I want. Nothing more.
If I have only one trivial line, only this line should be marked so.
While merging, now you can select the diff around to copy, the trivial line stays away.

'
When a rule matches a single-line difference, the difference is ignored
.
Now it's defined. In manual we can understand as I'd done.

the patch I will modify soon.
matthias1955
 
Posts: 162
Joined: Wed Dec 17, 2008 1:55 pm

Re: Line filters not working

Postby kimmov » Fri Jun 05, 2009 6:23 am

No, I don't want such patch (yet). As I've said few times already it has too many problems. The code changes for filtering might be trivial but I haven't seen any idea about the GUI? And GUI is the important part here.

First we need to plan how to change the GUI so that diffs next to each other can be easily used. It is the exactly same problem we have with moved lines creating new diffs and making merging unusable. This problem must be solved first. There have been some long discussions over the years but no good solutions. And I won't allow some technical trick to destroy GUI again.
kimmov
 
Posts: 562
Joined: Thu Sep 11, 2008 8:51 pm
Location: Finland

Re: Line filters not working

Postby matthias1955 » Fri Jun 05, 2009 7:04 am

As I check right now,
If diff is matching linefilter complete is marked as trivial.
Even left and right have differend filter for each line.
Also in such cases we have 5 filtered lines left and only one right.
So your result is matching with my patch.
If you add a real diff left or right => the matching filterd lines are all shown as diff => that's wrong. :shock:
Means also your define is not working. You'd used it only in that way, but it's working differend. :o

Why GUI is changed? We only get what a human expects to see. :D
I don't see here a difference.
The patch has nothing todo with how filtering should be done!

moved lines creating new diffs and making merging unusable.

do you mean adjust similarar lines?
That I also don't understand, but that's an other item.
matthias1955
 
Posts: 162
Joined: Wed Dec 17, 2008 1:55 pm

Re: Line filters not working

Postby kimmov » Fri Jun 05, 2009 8:09 am

There is drastic change for GUI.

Normally we always have at least one identical line between differences. So the diffs are very clearly separated from each other. You can easily see what lines are covered in the difference. And you know before selecting the difference what lines will be selected.

After this change when we split diff to two or more diffs this is not true anymore. It is the exactly same problem that we already have with moved lines. You cannot visually separate differences from each other. This already has confused users, and produced wrong difference counts etc weird behavior and bugs.

It is major usability problem already and as such I really don't want to make it more common.

We need a figure out a GUI with which we can present differences that don't have identical lines between them. I've been thinking about adding frames around diff blocks or some other graphical decorations. But I'm not sure they are clear enough. Perhaps we could add some kind of indicators to the margin area. But problem with margin area is that users can hide it. So we need a way to solve this in main view area.

If you have ideas or want to discuss about this problem please start a new thread. It is general problem and blocks some other improvements too.
kimmov
 
Posts: 562
Joined: Thu Sep 11, 2008 8:51 pm
Location: Finland

Re: Line filters not working

Postby matthias1955 » Fri Jun 05, 2009 9:47 am

And you know before selecting the difference what lines will be selected

we are not coming out of splitting. As I told before first indicate a filter than diff is much more complictate and takes more CPU time todo. The diff is done by an integer value. The filter by real strings!
If you want to put a frame around.. -> we have to splitt.
Normally we always have at least one identical line between differences.

We are not talking about normal things, we have to handle exceptions in a good way.

Myself a have a lot of text creating just these problems.

It is the exactly same problem that we already have with moved lines.

No, as if a trivial line is on both side, we keep same close together as one diff.
You should try the patch with differend conditions, to see what result you get.
I can't see the problems to make users confused to see more diff.
It isn't. They see what they expect.
matthias1955
 
Posts: 162
Joined: Wed Dec 17, 2008 1:55 pm

Re: Line filters not working

Postby kimmov » Fri Jun 05, 2009 9:56 am

So the bug reports, feature requests, support request and long discussions about the problem all have all been my imagination. Because you can't see a problem.

Even your picture shows the problem.

But what I know about WinMerge and its GUI...
kimmov
 
Posts: 562
Joined: Thu Sep 11, 2008 8:51 pm
Location: Finland

Re: Line filters not working

Postby matthias1955 » Fri Jun 05, 2009 12:18 pm

No imagination of course, but your matching bug reports, feature requests, support request.

The bugreport says: Line filters not working if "Match similar lines" enabled
It's working only if the complete diff is included to a filter,so our result is wrong.

So with my patch and the sample from bugreport the result is:
something show as diff
Testme 1 - Testme 2 as trivial

isn't that correct?


I'm not going to change the working of filtering. Only show the correct result with the actuell filtering.
matthias1955
 
Posts: 162
Joined: Wed Dec 17, 2008 1:55 pm

Re: Line filters not working

Postby kimmov » Fri Jun 05, 2009 12:23 pm

So what exactly is the problem you are even trying to solve? With what patch? Are we talking about several different problems in this thread? I don't know anymore.
kimmov
 
Posts: 562
Joined: Thu Sep 11, 2008 8:51 pm
Location: Finland

Re: Line filters not working

Postby matthias1955 » Fri Jun 05, 2009 2:00 pm

So with my patch and the sample from bugreport the result is:
something show as diff
Testme 1 - Testme 2 as trivial

isn't that correct?


patch Linefilter acceped for a single line inside a diffblock
https://sourceforge.net/tracker/?func=detail&aid=2800613&group_id=13216&atid=313216
matthias1955
 
Posts: 162
Joined: Wed Dec 17, 2008 1:55 pm

PreviousNext

Return to Developers

Who is online

Users browsing this forum: No registered users and 2 guests