Commit d20b0449 by Russell Belfer

Clarify GIT_DIFF_INCLUDE_UNTRACKED_CONTENT option

This improves the docs for GIT_DIFF_INCLUDE_UNTRACKED_CONTENT as
well as the other flags related to UNTRACKED items in diff, plus
it makes that flag now automatically turn on
GIT_DIFF_INCLUDE_UNTRACKED which seems like a reasonable dwim type
of change.
parent 16adc9fa
...@@ -89,9 +89,10 @@ typedef enum { ...@@ -89,9 +89,10 @@ typedef enum {
/** Include unmodified files in the diff list */ /** Include unmodified files in the diff list */
GIT_DIFF_INCLUDE_UNMODIFIED = (1 << 9), GIT_DIFF_INCLUDE_UNMODIFIED = (1 << 9),
/** Even with GIT_DIFF_INCLUDE_UNTRACKED, an entire untracked directory /** Even with GIT_DIFF_INCLUDE_UNTRACKED, an entire untracked
* will be marked with only a single entry in the diff list; this flag * directory will be marked with only a single entry in the diff list
* adds all files under the directory as UNTRACKED entries, too. * (a la what core Git does in `git status`); this flag adds *all*
* files under untracked directories as UNTRACKED entries, too.
*/ */
GIT_DIFF_RECURSE_UNTRACKED_DIRS = (1 << 10), GIT_DIFF_RECURSE_UNTRACKED_DIRS = (1 << 10),
...@@ -103,7 +104,11 @@ typedef enum { ...@@ -103,7 +104,11 @@ typedef enum {
/** Use case insensitive filename comparisons */ /** Use case insensitive filename comparisons */
GIT_DIFF_DELTAS_ARE_ICASE = (1 << 12), GIT_DIFF_DELTAS_ARE_ICASE = (1 << 12),
/** When generating patch text, include the content of untracked files */ /** When generating patch text, include the content of untracked
* files. This automatically turns on GIT_DIFF_INCLUDE_UNTRACKED but
* it does not turn on GIT_DIFF_RECURSE_UNTRACKED_DIRS. Add that
* flag if you want the content of every single UNTRACKED file.
*/
GIT_DIFF_INCLUDE_UNTRACKED_CONTENT = (1 << 13), GIT_DIFF_INCLUDE_UNTRACKED_CONTENT = (1 << 13),
/** Disable updating of the `binary` flag in delta records. This is /** Disable updating of the `binary` flag in delta records. This is
...@@ -139,7 +144,7 @@ typedef enum { ...@@ -139,7 +144,7 @@ typedef enum {
* consider UNTRACKED only if it has an actual untracked file in it. * consider UNTRACKED only if it has an actual untracked file in it.
* This scan is extra work for a case you often don't care about. This * This scan is extra work for a case you often don't care about. This
* flag makes libgit2 immediately label an untracked directory as * flag makes libgit2 immediately label an untracked directory as
* UNTRACKED without looking insde it (which differs from core Git). * UNTRACKED without looking inside it (which differs from core Git).
* Of course, ignore rules are still checked for the directory itself. * Of course, ignore rules are still checked for the directory itself.
*/ */
GIT_DIFF_FAST_UNTRACKED_DIRS = (1 << 19), GIT_DIFF_FAST_UNTRACKED_DIRS = (1 << 19),
......
...@@ -383,6 +383,10 @@ static int diff_list_apply_options( ...@@ -383,6 +383,10 @@ static int diff_list_apply_options(
if (DIFF_FLAG_IS_SET(diff, GIT_DIFF_INCLUDE_TYPECHANGE_TREES)) if (DIFF_FLAG_IS_SET(diff, GIT_DIFF_INCLUDE_TYPECHANGE_TREES))
diff->opts.flags |= GIT_DIFF_INCLUDE_TYPECHANGE; diff->opts.flags |= GIT_DIFF_INCLUDE_TYPECHANGE;
/* flag INCLUDE_UNTRACKED_CONTENT implies INCLUDE_UNTRACKED */
if (DIFF_FLAG_IS_SET(diff, GIT_DIFF_INCLUDE_UNTRACKED_CONTENT))
diff->opts.flags |= GIT_DIFF_INCLUDE_UNTRACKED;
/* load config values that affect diff behavior */ /* load config values that affect diff behavior */
if (git_repository_config__weakptr(&cfg, repo) < 0) if (git_repository_config__weakptr(&cfg, repo) < 0)
return -1; return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment