]> git.ipfire.org Git - thirdparty/git.git/blobdiff - wt-status.c
Merge branch 'gc/branch-recurse-submodules-fix'
[thirdparty/git.git] / wt-status.c
index 335e723a71e2537095359d3d4ee6cb77daea1e16..d33f9272b724b562f5b854d306500e8c0b445c4c 100644 (file)
@@ -651,6 +651,15 @@ static void wt_status_collect_changes_index(struct wt_status *s)
        rev.diffopt.detect_rename = s->detect_rename >= 0 ? s->detect_rename : rev.diffopt.detect_rename;
        rev.diffopt.rename_limit = s->rename_limit >= 0 ? s->rename_limit : rev.diffopt.rename_limit;
        rev.diffopt.rename_score = s->rename_score >= 0 ? s->rename_score : rev.diffopt.rename_score;
+
+       /*
+        * The `recursive` option must be enabled to allow the diff to recurse
+        * into subdirectories of sparse directory index entries. If it is not
+        * enabled, a subdirectory containing file(s) with changes is reported
+        * as "modified", rather than the modified files themselves.
+        */
+       rev.diffopt.flags.recursive = 1;
+
        copy_pathspec(&rev.prune_data, &s->pathspec);
        run_diff_index(&rev, 1);
        object_array_clear(&rev.pending);
@@ -1374,10 +1383,10 @@ static void show_rebase_information(struct wt_status *s,
                        status_printf_ln(s, color, _("No commands done."));
                else {
                        status_printf_ln(s, color,
-                               Q_("Last command done (%d command done):",
-                                       "Last commands done (%d commands done):",
+                               Q_("Last command done (%"PRIuMAX" command done):",
+                                       "Last commands done (%"PRIuMAX" commands done):",
                                        have_done.nr),
-                               have_done.nr);
+                               (uintmax_t)have_done.nr);
                        for (i = (have_done.nr > nr_lines_to_show)
                                ? have_done.nr - nr_lines_to_show : 0;
                                i < have_done.nr;
@@ -1393,10 +1402,10 @@ static void show_rebase_information(struct wt_status *s,
                                         _("No commands remaining."));
                else {
                        status_printf_ln(s, color,
-                               Q_("Next command to do (%d remaining command):",
-                                       "Next commands to do (%d remaining commands):",
+                               Q_("Next command to do (%"PRIuMAX" remaining command):",
+                                       "Next commands to do (%"PRIuMAX" remaining commands):",
                                        yet_to_do.nr),
-                               yet_to_do.nr);
+                               (uintmax_t)yet_to_do.nr);
                        for (i = 0; i < nr_lines_to_show && i < yet_to_do.nr; i++)
                                status_printf_ln(s, color, "   %s", yet_to_do.items[i].string);
                        if (s->hints)