Re: Not understanding with git wants to copy one file to another
- Date: Thu, 10 Aug 2017 11:47:57 -0700
- From: Stefan Beller <sbeller@xxxxxxxxxx>
- Subject: 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:
>>> < 192.168.1.43 m2.local.lan m2 # 00-90-F5-A1-F9-E5
>>>> 192.168.1.43 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")
>> 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
> 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
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".