Web lists-archives.com

Re: Not understanding with git wants to copy one file to another

On Thu, Aug 10, 2017 at 11:18 AM, Harry Putnam <reader@xxxxxxxxxxx> wrote:
> Stefan Beller <sbeller@xxxxxxxxxx> writes:
>> On Thu, Aug 10, 2017 at 10:03 AM, Harry Putnam <reader@xxxxxxxxxxx> wrote:
> [...]
> Harry wrote:
>>> Here are two that are at least kind of similar but would never be seen
>>> as the same:
>>> <      m2.local.lan       m2       # 00-90-F5-A1-F9-E5
>>>>    m2.local.lan        m2         # win 7
>  Stefan B replied:
>> The diff machinery has a threshold for when it assumes
>> a copy/move of a file. (e.g. "A file is assumed copied when
>> at least 55% of lines are equal")
>> https://git-scm.com/docs/git-diff
>> See -C and -M option.
>> git-status seems to use this machinery as well, but does
>> not expose the options?
> Well, now I'm even more confused.  What actually happens? Is either
> file changed? Is only one file kept?
> On the surface it sounds like complete anathema to what git is all
> about.
> However, I know a tool this sophisticated is not doing something just
> outright stupid... so must be really missing the point here.
> I get the way you can make -M stricter or not... but I didn't call
> git-diff to see that copy thing comeup.
> I called git commit.

Ah. Sorry for confusing even more.
By pointing out the options for git-diff, I just wanted to point out that
such a mechanism ("rename/copy detection") exists.

The output of git-status is similar to a dry run of git-commit,
and apparently this detection is used there.

> There must be some way to set stricter guidlines to calling things
> copies.

Well from Gits perspective it is really hard to tell if it was a copy, or
if it was similar incidentally (because the format/content of these files
happen to follow some strict guidelines).

The user could have moved/copied a file outside of Git (instead of
git-mv, you'd use tools provided by your operating system to copy a
file). Or the user could have written a file that is similar by chance.

However that doesn't really matter, as Git tracks the content, and not
how the file evolved.

Consider the copy/move/rename detection as a heuristic, that wants
to help the user, but may be mistaken.

> But then I must really not get it because it still seems almost silly
> to consider one file a copy of another if only 55% is the same.
> What am I missing?


"Rename detection is just GUI sugar".