Re: About git-diff

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

 



--- Em qua, 10/8/11, Andreas Schwab <schwab@xxxxxxxxxxxxxx> escreveu:

> De: Andreas Schwab <schwab@xxxxxxxxxxxxxx>
> Assunto: Re: About git-diff
> Para: "Luiz Ramos" <luizzramos@xxxxxxxxxxxx>
> Cc: git@xxxxxxxxxxxxxxx
> Data: Quarta-feira, 10 de Agosto de 2011, 14:01
> Luiz Ramos <luizzramos@xxxxxxxxxxxx>
> writes:
> 
> > If I run:
> >
> > $ git diff b2 ./
> >
> > that is, the "non-cached" version, it will show the
> same results. This is
> > confusing IMHO, because the git-diff manual suggests
> that invocation
> > should render the difference between the named tree
> contents and the
> > working directory. In the working directory, only to
> recall, file_1 and
> > file_2 are both present and with good versions. In my
> understanding, the
> > command should report that file_1 is in excess in the
> working directory,
> > relative to b2, and report nothing about file_2, as it
> is in the same
> > version as the sample in the tree b2.
> 
> Since file_2 is not tracked in the current branch, its
> existence in the
> directory is ignored.
> 
> > This doesn't seem to be the same thing git-diff-index
> manual states,
> > however. The manual gets more deep into the details,
> and it's not so easy
> > to understand it unless one knows a lot of the inner
> commands, which does
> > not apply to me. In my basic reading, it seems that
> behind the scenes,
> > git-diff-index is what is run in this case, and the
> fact that file_2 is
> > not in the tree associated to b1 is a relevant thing
> in this case. So, the
> > index seem to matter, and if I try to do it, a
> previous "git update-index"
> > should be done.
> 
> It's not the index, but the current tree that matters:
> 
>            show me the
> differences between HEAD and the currently checked out
>            tree - index
> contents _and_ files that aren't up-to-date
> 
> Note that it talks about "files that aren't
> up-to-date".  Thus untracked
> files are not considered.
> 

Ok, understood.

Given this, I'd suggest to change the inline documentation of git-diff (git help diff). In the version of my machine (1.7.4.4), it's like that:

(snip)
...
       git diff [--options] <commit> [--] [<path>...]
           This form is to view the changes you have in your working tree
           relative to the named <commit>. You can use HEAD to compare it with
           the latest commit, or a branch name to compare with the tip of a
           different branch.
...
(snip)

A unadvised reader could understand that the comparison is between <commit> and the working directory, as if <commit> was the current branch, plainly stated. In fact, there is no mention to the current branch, or to the files being tracked or not, except for the option of mentioning HEAD as the <commit> to be taken into account.

If you'd accept a small contribution of yours truly, here's amy suggestion for this text:

...
       git diff [--options] <commit> [--] [<path>...]
           This form is to view the changes you have in your working tree
           relative to the named <commit>. You can use HEAD to compare it with
           the latest commit, or a branch name to compare with the tip of a
           different branch. Note, however, that files untracked in the 
           current branch are handled as if they are missing in the working
           directory. Check out git-diff-index documentation for further
           information.
...

It's not in the patch format, but if you'd like the suggestion, there is no problem in re-sending it as a formatted patch.

Thanks,

Luiz


> Andreas.
> 
> -- 
> Andreas Schwab, schwab@xxxxxxxxxxxxxx
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3
> 44D5 214B 8276 4ED5
> "And now for something completely different."
> 
--
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]