[PATCH v2 3/4] builtin-status: configurable submodule summary size
Add config variable status.submodulesummary which is passed as arg for '--summary-limit' of 'git submodule summary' to limit the submodule summary size.
status.submodulesummary is 0 by default which disables the summary.
Signed-off-by: Ping Yin <pkufranky@gmail.com>
---
wt-status.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
Show changes to wt-status.c +10 −0
diff --git a/wt-status.c b/wt-status.c
index 75ee7ba..2f47e36 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -12,6 +12,7 @@
int wt_status_relative_paths = 1;
int wt_status_use_color = -1;
+int wt_status_submodule_summary = 0;
static char wt_status_colors[][COLOR_MAXLEN] = {
"", /* WT_STATUS_HEADER: normal */
"\033[32m", /* WT_STATUS_UPDATED: green */
@@ -222,12 +223,17 @@ static void wt_status_print_changed(struct wt_status *s)
}
static void wt_status_print_submodule_summary(struct wt_status *s)
{
+ if (wt_status_submodule_summary == 0) return;
struct child_process sm_summary;
+ char summary_limit[64];
+ sprintf(summary_limit, "%d", wt_status_submodule_summary);
const char *argv[] = {
"submodule",
"summary",
"--cached",
"--for-status",
+ "--summary-limit",
+ summary_limit,
s->amend ? "HEAD^" : "HEAD",
NULL
};
@@ -371,6 +377,10 @@ void wt_status_print(struct wt_status *s)
int git_status_config(const char *k, const char *v)
{
+ if (!strcmp(k, "status.submodulesummary")) {
+ wt_status_submodule_summary = atoi(v);
+ return 0;
+ }
if (!strcmp(k, "status.color") || !strcmp(k, "color.status")) {
wt_status_use_color = git_config_colorbool(k, v, -1);
return 0;
--
1.5.4.3.347.g5314c