diff: add --no-diff-deleted to make -p more pleasant
PATCH 1/1 diff: add --no-diff-deleted to make -p more pleasant
This is a feature I've stol^Wborrowed from svn that I find very useful since I usually don't care to see what I've deleted.
---
diff.c | 6 ++++++ diff.h | 3 +++ 2 files changed, 9 insertions(+), 0 deletions(-)
0b426af15a7da4f430d9cca8c1ad057557d93627
diff.c +6 -0
@@ -769,6 +769,7 @@ void diff_setup(struct diff_options *opt {memset (options,0 ,sizeof (*options)); options->output_format =DIFF_FORMAT_RAW ; + options->diff_deleted =1 ; options->line_termination ='\n' ; options->break_opt =-1 ; options->rename_limit =-1 ;
@@ -849,6 +850,8 @@ int diff_opt_parse(struct diff_options * }else if (!strcmp (arg,"--find-copies-harder" )) options->find_copies_harder =1 ; +else if (!strcmp (arg,"--no-diff-deleted" )) + options->diff_deleted =0 ;else if (!strcmp (arg,"--abbrev" )) options->abbrev =DEFAULT_ABBREV ;else if (!strncmp (arg,"--abbrev=" ,9 )) {
@@ -1103,6 +1106,9 @@ int diff_unmodified_pair(struct diff_filstatic void diff_flush_patch (struct diff_filepair *p,struct diff_options *o) { +if (!o->diff_deleted && (p->status ==DIFF_STATUS_DELETED )) +return ; +if (diff_unmodified_pair (p))return ;
diff.h +3 -0
@@ -39,6 +39,7 @@ struct diff_options {int find_copies_harder;int line_termination;int output_format; +int diff_deleted;int pickaxe_opts;int rename_score;int reverse_diff;
@@ -120,6 +121,8 @@ extern void diffcore_std_no_resolve(stru" -C detect copies.\n" \" --find-copies-harder\n" \" try unchanged files as candidate for copy detection.\n" \ +" --no-diff-deleted\n" \ +" do not print patch format for deleted files\n" \" -l<n> limit rename attempts up to <n> paths.\n" \" -O<file> reorder diffs according to the <file>.\n" \" -S<string> find filepair whose only one side contains the string.\n" \
Signature · 1 line
1.1.5.gae18-dirty
Quoted 2 lines · Eric Wong
This is a feature I've stol^Wborrowed from svn that I find very useful since I usually don't care to see what I've deleted.
There is a thing called --diff-filter, and
git diff -p --no-diff-deleted
is equivalent to
git diff -p --diff-filter=AM
when you are not using rename/copy detection (and a byte shorter). Or maybe improve its syntax to also take:
--diff-filter=-D
That is, a minus followed by list of undesired change class letters.
Quoted 7 lines · Junio C Hamano
Quoted 2 lines · Eric Wong
This is a feature I've stol^Wborrowed from svn that I find very useful since I usually don't care to see what I've deleted.
There is a thing called --diff-filter, and
Quoted 8 lines
git diff -p --no-diff-deletedis equivalent to
git diff -p --diff-filter=AMwhen you are not using rename/copy detection (and a byte shorter).
Hmmm.... I think this may be the problem:
% grep -r diff-filter Documentation/ Documentation/git-diff.txt:$ git diff --diff-filter=MRC <1>
And that is:
Limiting the diff output::
+
------------
$ git diff --diff-filter=MRC <1>
$ git diff --name-status -r <2>
$ git diff arch/i386 include/asm-i386 <3>
<1> show only modification, rename and copy, but not addition nor deletion.
<2> show only names and the nature of change, but not actual diff output. --name-status disables usual patch generation which in turn also disables recursive behaviour, so without -r you would only see the directory name if there is a change in a file in a subdirectory.
<3> limit diff output to named subtrees.
That's pretty thin documentation there.
Unless someone beats me to it, I'll try to find
a spare documentation cycle...
jdl
Quoted 5 lines · Junio C Hamano
Quoted 2 lines · Eric Wong
This is a feature I've stol^Wborrowed from svn that I find very useful since I usually don't care to see what I've deleted.
Quoted 7 lines
There is a thing called --diff-filter, and
git diff -p --no-diff-deletedis equivalent to
git diff -p --diff-filter=AM
Cool, didn't notice this feature before. Thanks.
Quoted 7 lines
when you are not using rename/copy detection (and a byte shorter). Or maybe improve its syntax to also take:
--diff-filter=-DThat is, a minus followed by list of undesired change class letters.
Hmm.. maybe another day. AM is good enough for now.
Signature · 1 line
Eric Wong