Code

git-reset: Let -q hush "locally modified" messages
authorStephan Beyer <s-beyer@gmx.net>
Fri, 25 Jul 2008 20:49:08 +0000 (22:49 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 26 Jul 2008 00:57:22 +0000 (17:57 -0700)
"git reset -q" is advertised to "only report errors", but "locally
modified" messages are still shown.  They are not errors but diagnostics.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-reset.c

index 4d246c31b19381778848024ff49aebf3e77fdbbc..c24c21909194014b467c86fd3598796e7db576b3 100644 (file)
@@ -85,7 +85,7 @@ static void print_new_head_line(struct commit *commit)
                printf("\n");
 }
 
-static int update_index_refresh(int fd, struct lock_file *index_lock)
+static int update_index_refresh(int fd, struct lock_file *index_lock, int flags)
 {
        int result;
 
@@ -96,7 +96,8 @@ static int update_index_refresh(int fd, struct lock_file *index_lock)
 
        if (read_cache() < 0)
                return error("Could not read index");
-       result = refresh_cache(REFRESH_SAY_CHANGED) ? 1 : 0;
+
+       result = refresh_cache(flags) ? 1 : 0;
        if (write_cache(fd, active_cache, active_nr) ||
                        commit_locked_index(index_lock))
                return error ("Could not refresh index");
@@ -128,7 +129,7 @@ static void update_index_from_diff(struct diff_queue_struct *q,
 }
 
 static int read_from_tree(const char *prefix, const char **argv,
-               unsigned char *tree_sha1)
+               unsigned char *tree_sha1, int refresh_flags)
 {
        struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
        int index_fd, index_was_discarded = 0;
@@ -152,7 +153,7 @@ static int read_from_tree(const char *prefix, const char **argv,
        if (!index_was_discarded)
                /* The index is still clobbered from do_diff_cache() */
                discard_cache();
-       return update_index_refresh(index_fd, lock);
+       return update_index_refresh(index_fd, lock, refresh_flags);
 }
 
 static void prepend_reflog_action(const char *action, char *buf, size_t size)
@@ -246,7 +247,8 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
                else if (reset_type != NONE)
                        die("Cannot do %s reset with paths.",
                                        reset_type_names[reset_type]);
-               return read_from_tree(prefix, argv + i, sha1);
+               return read_from_tree(prefix, argv + i, sha1,
+                               quiet ? REFRESH_QUIET : REFRESH_SAY_CHANGED);
        }
        if (reset_type == NONE)
                reset_type = MIXED; /* by default */
@@ -286,7 +288,8 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
        case SOFT: /* Nothing else to do. */
                break;
        case MIXED: /* Report what has not been updated. */
-               update_index_refresh(0, NULL);
+               update_index_refresh(0, NULL,
+                               quiet ? REFRESH_QUIET : REFRESH_SAY_CHANGED);
                break;
        }