Re: [PATCH 3/3] Diff overhaul, adding the other half...
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 24, 2005, 09:05 UTC
- Message-ID
- <7vr7fxuh8b.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.58.0505240129420.2307@ppc970.osdl.org>
>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:
LT> (I think that's just because the "silent" test used to depend on the LT> magical behaviour of the "header" thing, and now that the header LT> generation and suppression is sane, "silent" doesn't work any more)
I think you will be more efficient for this task but I'm willing to volunteer if you let me know how "silent" should behave. The documentation says it is useful only with -v and supresses the diffs, so if that is the only thing it does, I think something like this is sufficient? Not tested enough but I am going to crash for the day now.
------------ Use DIFF_FORMAT_NO_OUTPUT to implement diff-tree -s option.
Instead of checking silent flag all over the place, simply use the NO_OUTPUT option diffcore provides to suppress the diff output.
Signed-off-by: Junio C Hamano <junkio@cox.net> --- cd /opt/packrat/playpen/public/in-place/git/git.junio/ jit-diff # - HEAD: Allow symlinks in the leading path in checkout-cache --prefix= # + (working tree)
diff --git a/diff-tree.c b/diff-tree.c --- a/diff-tree.c +++ b/diff-tree.c @@ -2,7 +2,6 @@ #include "cache.h" #include "diff.h" -static int silent = 0; static int show_root_diff = 0; static int verbose_header = 0; static int ignore_merges = 1; @@ -67,9 +66,6 @@ static void show_file(const char *prefix const char *path; const unsigned char *sha1 = extract(tree, size, &path, &mode); - if (silent) - return; - if (recursive && S_ISDIR(mode)) { char type[20]; unsigned long size; @@ -132,9 +128,6 @@ static int compare_tree_entry(void *tree return retval; } - if (silent) - return 0; - diff_change(mode1, mode2, sha1, sha2, base, path1); return 0; } @@ -395,8 +388,7 @@ static char *generate_header(const char if (this_header[offset-1] != '\n') this_header[offset++] = '\n'; /* Add _another_ EOLN if we are doing diff output */ - if (!silent) - this_header[offset++] = '\n'; + this_header[offset++] = '\n'; this_header[offset] = 0; } @@ -442,8 +434,6 @@ static int diff_tree_commit(const unsign * Don't print multiple merge entries if we * don't print the diffs. */ - if (silent) - break; } offset += 48; } @@ -540,7 +530,7 @@ int main(int argc, const char **argv) continue; } if (!strcmp(arg, "-s")) { - silent = 1; + diff_output_format = DIFF_FORMAT_NO_OUTPUT; continue; } if (!strcmp(arg, "-v")) { Compilation finished at Tue May 24 02:03:10