From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: Jack Adrian Zappa <adrianh.bsc@gmail.com>
Cc: git-mailing-list <git@vger.kernel.org>
Subject: Re: Fwd: diff not finding difference
Date: Fri, 25 Sep 2015 12:11:33 +0200 [thread overview]
Message-ID: <8abeb16d123a602ee11dab3f93dab51e@dscho.org> (raw)
In-Reply-To: <CAKepmajegSMO91YZOe+P_BH2kzzR=RMqCE94XRQSfZzOVYKt6A@mail.gmail.com>
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?
next prev parent reply other threads:[~2015-09-25 10:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAKepmajSPgGK-DqR3Bxf2Xqxj2Gz0MazRNxM6wsVcSiBQsoE4Q@mail.gmail.com>
2015-09-24 21:09 ` Fwd: diff not finding difference Jack Adrian Zappa
2015-09-24 21:12 ` Jack Adrian Zappa
2015-09-25 10:11 ` Johannes Schindelin [this message]
2015-09-25 10:25 ` Fwd: " Michael J Gruber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8abeb16d123a602ee11dab3f93dab51e@dscho.org \
--to=johannes.schindelin@gmx.de \
--cc=adrianh.bsc@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).