]> git.ipfire.org Git - thirdparty/git.git/blobdiff - show-files.c
[PATCH] Add --stage to show-files for new stage dircache.
[thirdparty/git.git] / show-files.c
index c9027cc4167530fab7053b424c38068bf60bb69b..0ecb2bd62106a0fdd617ee4c5ba5b50bcda8acd6 100644 (file)
@@ -14,6 +14,7 @@ static int show_deleted = 0;
 static int show_cached = 0;
 static int show_others = 0;
 static int show_ignored = 0;
+static int show_stage = 0;
 static int line_terminator = '\n';
 
 static const char **dir;
@@ -108,10 +109,19 @@ static void show_files(void)
                for (i = 0; i < nr_dir; i++)
                        printf("%s%c", dir[i], line_terminator);
        }
-       if (show_cached) {
+       if (show_cached | show_stage) {
                for (i = 0; i < active_nr; i++) {
                        struct cache_entry *ce = active_cache[i];
-                       printf("%s%c", ce->name, line_terminator);
+                       if (!show_stage)
+                               printf("%s%c", ce->name, line_terminator);
+                       else
+                               printf(/* "%06o %s %d %10d %s%c", */
+                                      "%06o %s %d %s%c",
+                                      ntohl(ce->ce_mode),
+                                      sha1_to_hex(ce->sha1),
+                                      ce_stage(ce),
+                                      /* ntohl(ce->ce_size), */
+                                      ce->name, line_terminator); 
                }
        }
        if (show_deleted) {
@@ -156,12 +166,16 @@ int main(int argc, char **argv)
                        show_ignored = 1;
                        continue;
                }
+               if (!strcmp(arg, "--stage")) {
+                       show_stage = 1;
+                       continue;
+               }
 
-               usage("show-files (--[cached|deleted|others|ignored])*");
+               usage("show-files [-z] (--[cached|deleted|others|ignored|stage])*");
        }
 
        /* With no flags, we default to showing the cached files */
-       if (!(show_cached | show_deleted | show_others | show_ignored))
+       if (!(show_stage | show_deleted | show_others | show_ignored))
                show_cached = 1;
 
        read_cache();