Re: [PATCH 0/7] Rework diff options

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 0/7] Rework diff options

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:31

Timo Hirvonen [off-list ref] writes:
This patch series cleans up diff output format options.

This makes it possible to use any combination of --raw, -p, --stat and
--summary options and they work as you would expect.

These patches passed all test and are for the next branch. Patches 6 and
7 are optional.
Thanks, very nicely done.  Tentatively placed all of them in
"pu"; the first "clean-up" is in "master".

Here are a few problems I have seen:

 - "git show --stat HEAD" gives '---' marker as Johannes and you
   have already discussed (I do not mind this that much though);

 - "--cc" seems to be quite broken.  "git show v1.0.0" nor "git
   diff-tree --pretty --cc v1.0.0" does not give the log
   message, and gives something quite confused instead.  I think
   it is showing "-m -p" followed by "--cc".

We may find more minor breakages, in addition to these, but I am
reasonably sure we should be able to fix them in-tree.

Re: [PATCH 0/7] Rework diff options

From: Timo Hirvonen <hidden>
Date: 2016-06-15 22:42:31

Junio C Hamano [off-list ref] wrote:
Here are a few problems I have seen:

 - "git show --stat HEAD" gives '---' marker as Johannes and you
   have already discussed (I do not mind this that much though);
The patch I sent as a reply to 2/7 should fix this.
 - "--cc" seems to be quite broken.  "git show v1.0.0" nor "git
   diff-tree --pretty --cc v1.0.0" does not give the log
   message, and gives something quite confused instead.  I think
   it is showing "-m -p" followed by "--cc".
Sorry about that.  I don't understand the --cc stuff very well but I try
to fix the bug.

-- 
http://onion.dynserv.net/~timo/

Re: [PATCH 0/7] Rework diff options

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:31

Junio C Hamano [off-list ref] writes:
Here are a few problems I have seen:

 - "git show --stat HEAD" gives '---' marker as Johannes and you
   have already discussed (I do not mind this that much though);

 - "--cc" seems to be quite broken.  "git show v1.0.0" nor "git
   diff-tree --pretty --cc v1.0.0" does not give the log
   message, and gives something quite confused instead.  I think
   it is showing "-m -p" followed by "--cc".

We may find more minor breakages, in addition to these, but I am
reasonably sure we should be able to fix them in-tree.
Further impressions, while with a clean index and working tree.

First the good ones (improvements).

 - "git diff-index --patch-with-raw HEAD" gives empty result;
   the traditional one shows one empty line.

 - "git diff-tree -p --stat" and "git diff-tree --stat -p"
   works, as you planned.

 - "git diff-tree --root --patch-with-raw --summary" works; the
   traditional one misses --summary.

 - "git show --name-only HEAD" works; the traditional one always
   does --cc -p; the same for "git show -s HEAD".

Regressions, most of the minor.

 - "git diff-index -p --stat HEAD" gives one empty line; the
   traditional one gives empty.

 - "git diff-tree --patch-with-raw HEAD" for a non-merge commit
   misses the empty line between raw and patch.

 - "git diff-tree --cc HEAD" for an evil merge (a merge whose
   result does not match either parents, e.g. v1.0.0) shows extra
   two-tree diffs (presumably HEAD^1..HEAD and HEAD^2..HEAD)
   before showing what is expected.  The same for "git show". 

 - "git show --name-only HEAD" for an evil merge similarly shows
   extra two-tree diffs in --name-only format before showing
   what is expected.  Presumably the same bug as the above.

 - "git diff-tree -c HEAD" for an evil merge shows extra newline
   after the output.

 - Neither "git diff-tree -m -s HEAD" for a merge, "git diff-tree -s
   HEAD" for a non-merge does not squelch the output; same for
   "git whatchanged".

 - "git log --raw HEAD" descends into subdirectories.  It
   instead should show the top-level tree differences.

 - "git diff-tree --pretty --patch-with-stat HEAD" for a
   non-merge misses "---\n" before stat (I think you are aware
   of this).

 - "git show --cc HEAD" for a merge should do "---\n", followed
   by a stat for diff between HEAD^1..HEAD, followed by dense
   combined-diff for HEAD.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help