Re: Fwd: diff not finding difference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jack Adrian,

On 2015-09-24 23:09, Jack Adrian Zappa wrote:
> This is a weird one:
> 
> [file-1 begin]
> 
> abcd efg hijklmnop
> 
> [file-1 end]
> 
> [file-2 begin]
> 
> blah blah blah
> /////////////////////////////////////////////////////////////////////////////////
> abdc boo ya!
> 
> [file-2 end]
> 
> Do a diff between these and it won't find any difference.
> 
> Same with the following two lines, each in a different file:
> sabc fed ghi jkl
> abc def ghi jkl
> 
> I first noticed this on the command line git and then in VS2013.  The
> original problem was like my first example.  The files were much
> longer, but all that git would see is the addition of the line of
> ////..., but not the removal of the original line.
> 
> I've tried some other simple file changes with similar results.
> Something seems to be definitely broken in git diff. :(

You might want to show your exact command-line invocation, i.e. the full information. I suspect that you missed the fact that `git diff a b` does not compare the file a to the file b, but instead it compares both a and b to what is recorded in the index. With one quirk: if the files a and b are not even recorded in the index, `git diff` will output nothing.

Now, the really confusing part for you was probably that your `file-2` *was* recorded in the index (maybe you made a backup copy with the extra file extension `.bak` or some such, and then called `git diff my-file.bak my-file` where `my-file` *actually is tracked by Git* but `my-file.bak` is not).

But `git diff` has so nice features that I wanted to use it myself to compare files or directories. That is why I introduced the `--no-index` option, years ago. And so I suspect that you called

    git diff file-1 file-2

when you actually wanted to call

    git diff --no-index file-1 file-2

Here is my shell session to verify that `git diff` works as designed:

```
me@work $ cat >file-1

abcd efg hijklmnop

me@work $ cat >file-2

blah blah blah
/////////////////////////////////////////////////////////////////////////////////
abdc boo ya!

me@work $ git diff --no-index file-1 file-2
diff --git a/file-1 b/file-2
index 80ea2bc..f7fd7eb 100644
--- a/file-1
+++ b/file-2
@@ -1,3 +1,5 @@

-abcd efg hijklmnop
+blah blah blah
+/////////////////////////////////////////////////////////////////////////////////
+abdc boo ya!

me@work $
```

Please note that I ended the file contents for both `cat` calls [*1*] with a `Ctrl+D` which you cannot see in the pasted lines.

Ciao,
Johannes

Footnote *1*: Can you believe that I wanted to make that pun for at least ten years now?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]