Web lists-archives.com

Re: How to force a pull to succeed?

On Mon, May 15, 2017 at 11:42 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Jeffrey Walton <noloader@xxxxxxxxx> writes:
>> On Mon, May 15, 2017 at 11:27 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>>> Jeffrey Walton <noloader@xxxxxxxxx> writes:
>>>> I scp'd a file to another machine for testing. The change tested OK,
>>>> so I checked it in on the original machine.
>>>> ...
>>>> How do I force the pull to succeed?
>>> Git doesn't know (or care) if you "scp"ed a file from a known to be
>>> good place, or if you modified it in the editor.  When it notices
>>> that there are differences you may rather not to lose in these files
>>> (because they are different from HEAD), it refrains from touching
>>> them.
>>> So the way to go forward is for you to make sure that you do not
>>> have such local changes in the repository that your "pull" is trying
>>> to touch.  An easiest way would be to do
>>>         git checkout HEAD -- <paths>..
>> Thanks. That's an extra command. Is there any way to roll it up into
>> one command?
>         git checkout HEAD -- <paths>.. && git pull
> ;-)
>>> before doing a "git pull" to clear the damage you caused manually
>>> with your "scp".
>> There's no damage. Its expected.
> The fact that you think it is expected is immaterial. Git doesn't
> know (or care) how you made the files different from HEAD, so it
> looks like a damage to it.

'git pull' fails and its expected, but 'git pull -f' is supposed to
succeed. That's what -f is supposed to do.

Is there a way to add intelligence to Git so that it sees they are the
_exact_ same file, and it stops bothering me with details of problems
that don't exist?

It seems like adding the intelligence is a good enhancement. A version
control tool has to do three things: check-out, check-in, and
determine differences. Its not doing a good job of determining
differences considering they are the exact same file.