Thread (11 messages) flat view 11 messages, 8 authors, 2017-09-30

Re: [idea] File history tracking hints

From: Johannes Schindelin <hidden>
Date: 2017-09-29 23:12:49

Hi Philip,

On Fri, 15 Sep 2017, Philip Oakley wrote:
From: "Johannes Schindelin" <redacted>
quoted
In light of such experiences, I have to admit that the notion that the
rename detection can always be improved in hindsight puts quite a bit of
insult to injury for those developers who are bitten by it.
Your list made me think that the hints should be directed toward what may be
considered existing solutions for those specific awkward cases.

So the hints could be (by type):
- template;licence;boiler-plate;standard;reference :: copy
- word-rename
- regex for word substitution changes (e.g. which chars are within 'Word-_0`)
- regex for white-space changes (i.e. which chars are considered whitespace.)
- move-dir path/glob spec
- move-file path/glob spec
(maybe list each 'group' of moves, so that once found the rest of the rename
detection follows the group.)

Once the particular hint is detected (path qualified) then the clue/hint is
used to assist in parsing the files to simplify the comparison task and locate
common lines, or common word patterns.

The first example is just a set of alternate terms folk use for the new
duplicate file file case.

The second is a hint that there has been a number of fairly global name
changes in the files. so not only do a word diff but detect & sumarise those
global changes. (your class move example)

The third is the more simple global word changes, based on a limited char set
for a 'word' token list.
The fourth is where we are focussed on the white space part (complementing the
word token viewpoint)

The move hints are lists of path specs that each have distinctly moved.

It may be possible to order the hints as well, so that the detections work in
the right order, giving the heuristics a better chance!
I think my point was: no matter how likely we thought any heuristic rename
detection can be perfected over time, history proved that suspicion
incorrect.

Therefore, it would be good to have a way to tell Git about renames
explicitly so that it does not even need to use its heuristics.

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help