[PATCH] Clean up diff option descriptions.
authorJunio C Hamano <junkio@cox.net>
Wed, 13 Jul 2005 19:52:35 +0000 (12:52 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 13 Jul 2005 20:09:17 +0000 (13:09 -0700)
I got tired of maintaining almost duplicated descriptions in
diff-* brothers, both in usage string and documentation.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/Makefile
Documentation/diff-options.txt [new file with mode: 0644]
Documentation/git-diff-cache.txt
Documentation/git-diff-files.txt
Documentation/git-diff-stages.txt
Documentation/git-diff-tree.txt
diff-cache.c
diff-files.c
diff-stages.c
diff-tree.c
diff.h

index e3844f2..353fe7c 100644 (file)
@@ -25,7 +25,7 @@ man1: $(DOC_MAN1)
 man7: $(DOC_MAN7)
 
 # 'include' dependencies
-git-diff-%.txt: diff-format.txt
+git-diff-%.txt: diff-format.txt diff-options.txt
        touch $@
 
 clean:
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
new file mode 100644 (file)
index 0000000..58b9c46
--- /dev/null
@@ -0,0 +1,53 @@
+-p::
+       Generate patch (see section on generating patches)
+
+-u::
+       Synonym for "-p".
+
+-r::
+       Look recursivelly in subdirectories; this flag does not
+       mean anything to commands other than "git-diff-tree";
+       other commands always looks at all the subdirectories.
+
+-z::
+       \0 line termination on output
+
+--name-only::
+       Show only names of changed files.
+
+--name-only-z::
+       Same as --name-only, but terminate lines with NUL.
+
+-B::
+       Break complete rewrite changes into pairs of delete and create.
+
+-M::
+       Detect renames.
+
+-C::
+       Detect copies as well as renames.
+
+--find-copies-harder::
+       By default, -C option finds copies only if the original
+       file of the copy was modified in the same changeset for
+       performance reasons.  This flag makes the command
+       inspect unmodified files as candidates for the source of
+       copy.  This is a very expensive operation for large
+       projects, so use it with caution.
+
+-S<string>::
+       Look for differences that contains the change in <string>.
+
+--pickaxe-all::
+       When -S finds a change, show all the changes in that
+       changeset, not just the files that contains the change
+       in <string>.
+
+-O<orderfile>::
+       Output the patch in the order specified in the
+       <orderfile>, which has one shell glob pattern per line.
+
+-R::
+       Swap two inputs; that is, show differences from cache or
+       on-disk file to tree contents.
+
index f6dd703..b463593 100644 (file)
@@ -9,7 +9,7 @@ git-diff-cache - Compares content and mode of blobs between the cache and reposi
 
 SYNOPSIS
 --------
-'git-diff-cache' [-p] [-r] [-z] [-m] [--cached] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] <tree-ish> [<path>...]
+'git-diff-cache' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...]
 
 DESCRIPTION
 -----------
@@ -21,53 +21,11 @@ entries in the cache are compared.
 
 OPTIONS
 -------
+include::diff-options.txt[]
+
 <tree-ish>::
        The id of a tree object to diff against.
 
--p::
-       Generate patch (see section on generating patches)
-
--r::
-       This flag does not mean anything.  It is there only to match
-       "git-diff-tree".  Unlike "git-diff-tree", "git-diff-cache"
-       always looks at all the subdirectories.
-
--z::
-       \0 line termination on output
-
--B::
-       Break complete rewrite changes into pairs of delete and create.
-
--M::
-       Detect renames.
-
--C::
-       Detect copies as well as renames.
-
---find-copies-harder::
-       By default, -C option finds copies only if the original
-       file of the copy was modified in the same changeset for
-       performance reasons.  This flag makes the command
-       inspect unmodified files as candidates for the source of
-       copy.  This is a very expensive operation for large
-       projects, so use it with caution.
-
--S<string>::
-       Look for differences that contains the change in <string>.
-
---pickaxe-all::
-       When -S finds a change, show all the changes in that
-       changeset, not just the files that contains the change
-       in <string>.
-
--O<orderfile>::
-       Output the patch in the order specified in the
-       <orderfile>, which has one shell glob pattern per line.
-
--R::
-       Swap two inputs; that is, show differences from cache or
-       on-disk file to tree contents.
-
 --cached::
        do not consider the on-disk file at all
 
index 32e9a1e..3e1244f 100644 (file)
@@ -9,7 +9,7 @@ git-diff-files - Compares files in the working tree and the cache
 
 SYNOPSIS
 --------
-'git-diff-files' [-p] [-q] [-r] [-z] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] [<path>...]
+'git-diff-files' [-q] [<common diff options>] [<path>...]
 
 DESCRIPTION
 -----------
@@ -20,51 +20,11 @@ same as "git-diff-cache" and "git-diff-tree".
 
 OPTIONS
 -------
--p::
-       generate patch (see section on generating patches).
+include::diff-options.txt[]
 
 -q::
        Remain silent even on nonexisting files
 
--R::
-       Swap two inputs; that is, show differences from on-disk files
-       to cache contents.
-
--B::
-       Break complete rewrite changes into pairs of delete and create.
-
--M::
-       Detect renames.
-
--C::
-       Detect copies as well as renames.
-
---find-copies-harder::
-       By default, -C option finds copies only if the original
-       file of the copy was modified in the same changeset for
-       performance reasons.  This flag makes the command
-       inspect unmodified files as candidates for the source of
-       copy.  This is a very expensive operation for large
-       projects, so use it with caution.
-
--S<string>::
-       Look for differences that contains the change in <string>.
-
---pickaxe-all::
-       When -S finds a change, show all the changes in that
-       changeset, not just the files that contains the change
-       in <string>.
-
--O<orderfile>::
-       Output the patch in the order specified in the
-       <orderfile>, which has one shell glob pattern per line.
-
--r::
-       This flag does not mean anything.  It is there only to match
-       git-diff-tree.  Unlike git-diff-tree, git-diff-files always looks
-       at all the subdirectories.
-
-
 Output format
 -------------
 include::diff-format.txt[]
index e7e59c8..2084c70 100644 (file)
@@ -9,7 +9,7 @@ git-diff-stages - Compares content and mode of blobs between stages in an unmerg
 
 SYNOPSIS
 --------
-'git-diff-stages' [-p] [-r] [-z] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] <stage1> <stage2> [<path>...]
+'git-diff-stages' [<common diff options>] <stage1> <stage2> [<path>...]
 
 DESCRIPTION
 -----------
@@ -18,53 +18,11 @@ unmerged index file.
 
 OPTIONS
 -------
+include::diff-options.txt[]
+
 <stage1>,<stage2>::
        The stage number to be compared.
 
--p::
-       Generate patch (see section on generating patches)
-
--r::
-       This flag does not mean anything.  It is there only to match
-       "git-diff-tree".  Unlike "git-diff-tree", "git-diff-stages"
-       always looks at all the subdirectories.
-
--z::
-       \0 line termination on output
-
--B::
-       Break complete rewrite changes into pairs of delete and create.
-
--M::
-       Detect renames.
-
--C::
-       Detect copies as well as renames.
-
---find-copies-harder::
-       By default, -C option finds copies only if the original
-       file of the copy was modified in the same changeset for
-       performance reasons.  This flag makes the command
-       inspect unmodified files as candidates for the source of
-       copy.  This is a very expensive operation for large
-       projects, so use it with caution.
-
--S<string>::
-       Look for differences that contains the change in <string>.
-
---pickaxe-all::
-       When -S finds a change, show all the changes in that
-       changeset, not just the files that contains the change
-       in <string>.
-
--O<orderfile>::
-       Output the patch in the order specified in the
-       <orderfile>, which has one shell glob pattern per line.
-
--R::
-       Swap two inputs; that is, show differences from <stage2> to
-       <stage1>.
-
 Output format
 -------------
 include::diff-format.txt[]
index ab0ba4f..b2095cb 100644 (file)
@@ -9,7 +9,7 @@ git-diff-tree - Compares the content and mode of blobs found via two tree object
 
 SYNOPSIS
 --------
-'git-diff-tree' [-p] [-r] [-z] [--stdin] [-m] [-s] [-v] [-t] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] <tree-ish> <tree-ish> [<path>...]
+'git-diff-tree' [--stdin] [-m] [-s] [-v] [--pretty] [-t] [<common diff options>] <tree-ish> <tree-ish> [<path>...]
 
 DESCRIPTION
 -----------
@@ -19,6 +19,8 @@ Note that "git-diff-tree" can use the tree encapsulated in a commit object.
 
 OPTIONS
 -------
+include::diff-options.txt[]
+
 <tree-ish>::
        The id of a tree object.
 
@@ -29,51 +31,9 @@ OPTIONS
        Note that this parameter does not provide any wildcard or regexp
        features.
 
--p::
-       generate patch (see section on generating patches).  For
-       git-diff-tree, this flag implies '-r' as well.
-
--B::
-       Break complete rewrite changes into pairs of delete and create.
-
--M::
-       Detect renames.
-
--C::
-       Detect copies as well as renames.
-
---find-copies-harder::
-       By default, -C option finds copies only if the original
-       file of the copy was modified in the same changeset for
-       performance reasons.  This flag makes the command
-       inspect unmodified files as candidates for the source of
-       copy.  This is a very expensive operation for large
-       projects, so use it with caution.
-
--R::
-       Swap two input trees.
-
--S<string>::
-       Look for differences that contains the change in <string>.
-
---pickaxe-all::
-       When -S finds a change, show all the changes in that
-       changeset, not just the files that contains the change
-       in <string>.
-
--O<orderfile>::
-       Output the patch in the order specified in the
-       <orderfile>, which has one shell glob pattern per line.
-
--r::
-       recurse
-
 -t::
        show tree entry itself as well as subtrees.  Implies -r.
 
--z::
-       \0 line termination on output
-
 --root::
        When '--root' is specified the initial commit will be showed as a big
        creation event. This is equivalent to a diff against the NULL tree.
index e1ac57d..c435844 100644 (file)
@@ -159,7 +159,9 @@ static void mark_merge_entries(void)
 }
 
 static char *diff_cache_usage =
-"git-diff-cache [-p] [-r] [-z] [-m] [--cached] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] <tree-ish> [<path>...]";
+"git-diff-cache [-m] [--cached] "
+"[<common diff options>] <tree-ish> [<path>...]"
+COMMON_DIFF_OPTIONS_HELP;
 
 int main(int argc, const char **argv)
 {
index 6d2aec3..ebaf235 100644 (file)
@@ -7,7 +7,9 @@
 #include "diff.h"
 
 static const char *diff_files_usage =
-"git-diff-files [-p] [-q] [-r] [-z] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] [<path>...]";
+"git-diff-files [-q] "
+"[<common diff options>] [<path>...]"
+COMMON_DIFF_OPTIONS_HELP;
 
 static int diff_output_format = DIFF_FORMAT_HUMAN;
 static int detect_rename = 0;
index 9d33535..8d86d74 100644 (file)
@@ -17,7 +17,8 @@ static const char *orderfile = NULL;
 static const char *diff_filter = NULL;
 
 static char *diff_stages_usage =
-"git-diff-stages [-p] [-r] [-z] [-R] [-B] [-M] [-C] [--find-copies-harder] [-O<orderfile>] [-S<string>] [--pickaxe-all] <stage1> <stage2> [<path>...]";
+"git-diff-stages [<common diff options>] <stage1> <stage2> [<path>...]"
+COMMON_DIFF_OPTIONS_HELP;
 
 static void diff_stages(int stage1, int stage2)
 {
index f499d2e..4e80526 100644 (file)
@@ -395,7 +395,9 @@ static int diff_tree_stdin(char *line)
 }
 
 static char *diff_tree_usage =
-"git-diff-tree [-p] [-r] [-z] [--stdin] [-m] [-s] [-v] [--pretty] [-t] [-R] [-B] [-M] [-C] [--find-copies-header] [-O<orderfile>] [-S<string>] [--pickaxe-all] <tree-ish> <tree-ish>";
+"git-diff-tree [--stdin] [-m] [-s] [-v] [--pretty] [-t] "
+"[<common diff options>] <tree-ish> <tree-ish>"
+COMMON_DIFF_OPTIONS_HELP;
 
 int main(int argc, const char **argv)
 {
diff --git a/diff.h b/diff.h
index 46c0e23..9f9ca8b 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -53,6 +53,26 @@ extern void diffcore_std_no_resolve(const char **paths,
                                    const char *pickaxe, int pickaxe_opts,
                                    const char *orderfile, const char *filter);
 
+#define COMMON_DIFF_OPTIONS_HELP \
+"\ncommon diff options:\n" \
+"  -r          diff recursively (only meaningful in diff-tree)\n" \
+"  -z          output diff-raw with lines terminated with NUL.\n" \
+"  -p          output patch format.\n" \
+"  -u          synonym for -p.\n" \
+"  --name-only show only names of changed files.\n" \
+"  --name-only-z\n" \
+"              same as --name-only but terminate lines with NUL.\n" \
+"  -R          swap input file pairs.\n" \
+"  -B          detect complete rewrites.\n" \
+"  -M          detect renames.\n" \
+"  -C          detect copies.\n" \
+"  --find-copies-harder\n" \
+"              try unchanged files as candidate for copy detection.\n" \
+"  -O<file>    reorder diffs according to the <file>.\n" \
+"  -S<string>  find filepair whose only one side contains the string.\n" \
+"  --pickaxe-all\n" \
+"              show all files diff when -S is used and hit is found.\n"
+
 extern int diff_queue_is_empty(void);
 
 #define DIFF_FORMAT_HUMAN      0