Skip to content

Commit 235db15

Browse files
committed
Merge branch 'mm/reset-report'
* mm/reset-report: reset: make the reminder output consistent with "checkout" Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.
2 parents 4a224a9 + 3deffc5 commit 235db15

File tree

5 files changed

+31
-15
lines changed

5 files changed

+31
-15
lines changed

builtin-add.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ static void refresh(int verbose, const char **pathspec)
105105
for (specs = 0; pathspec[specs]; specs++)
106106
/* nothing */;
107107
seen = xcalloc(specs, 1);
108-
refresh_index(&the_index, verbose ? REFRESH_SAY_CHANGED : REFRESH_QUIET,
109-
pathspec, seen);
108+
refresh_index(&the_index, verbose ? REFRESH_IN_PORCELAIN : REFRESH_QUIET,
109+
pathspec, seen, "Unstaged changes after refreshing the index:");
110110
for (i = 0; i < specs; i++) {
111111
if (!seen[i])
112112
die("pathspec '%s' did not match any files", pathspec[i]);

builtin-reset.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ static int update_index_refresh(int fd, struct lock_file *index_lock, int flags)
108108
if (read_cache() < 0)
109109
return error("Could not read index");
110110

111-
result = refresh_cache(flags) ? 1 : 0;
111+
result = refresh_index(&the_index, (flags), NULL, NULL,
112+
"Unstaged changes after reset:") ? 1 : 0;
112113
if (write_cache(fd, active_cache, active_nr) ||
113114
commit_locked_index(index_lock))
114115
return error ("Could not refresh index");
@@ -261,7 +262,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
261262
die("Cannot do %s reset with paths.",
262263
reset_type_names[reset_type]);
263264
return read_from_tree(prefix, argv + i, sha1,
264-
quiet ? REFRESH_QUIET : REFRESH_SAY_CHANGED);
265+
quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
265266
}
266267
if (reset_type == NONE)
267268
reset_type = MIXED; /* by default */
@@ -302,7 +303,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
302303
break;
303304
case MIXED: /* Report what has not been updated. */
304305
update_index_refresh(0, NULL,
305-
quiet ? REFRESH_QUIET : REFRESH_SAY_CHANGED);
306+
quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
306307
break;
307308
}
308309

cache.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ static inline void remove_name_hash(struct cache_entry *ce)
330330
#define remove_file_from_cache(path) remove_file_from_index(&the_index, (path))
331331
#define add_to_cache(path, st, flags) add_to_index(&the_index, (path), (st), (flags))
332332
#define add_file_to_cache(path, flags) add_file_to_index(&the_index, (path), (flags))
333-
#define refresh_cache(flags) refresh_index(&the_index, (flags), NULL, NULL)
333+
#define refresh_cache(flags) refresh_index(&the_index, (flags), NULL, NULL, NULL)
334334
#define ce_match_stat(ce, st, options) ie_match_stat(&the_index, (ce), (st), (options))
335335
#define ce_modified(ce, st, options) ie_modified(&the_index, (ce), (st), (options))
336336
#define cache_name_exists(name, namelen, igncase) index_name_exists(&the_index, (name), (namelen), (igncase))
@@ -476,8 +476,8 @@ extern int check_path(const char *path, int len, struct stat *st, int skiplen);
476476
#define REFRESH_QUIET 0x0004 /* be quiet about it */
477477
#define REFRESH_IGNORE_MISSING 0x0008 /* ignore non-existent */
478478
#define REFRESH_IGNORE_SUBMODULES 0x0010 /* ignore submodules */
479-
#define REFRESH_SAY_CHANGED 0x0020 /* say "changed" not "needs update" */
480-
extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen);
479+
#define REFRESH_IN_PORCELAIN 0x0020 /* user friendly output, not "needs update" */
480+
extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen, char *header_msg);
481481

482482
struct lock_file {
483483
struct lock_file *next;

read-cache.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,18 @@ static struct cache_entry *refresh_cache_ent(struct index_state *istate,
10651065
return updated;
10661066
}
10671067

1068-
int refresh_index(struct index_state *istate, unsigned int flags, const char **pathspec, char *seen)
1068+
static void show_file(const char * fmt, const char * name, int in_porcelain,
1069+
int * first, char *header_msg)
1070+
{
1071+
if (in_porcelain && *first && header_msg) {
1072+
printf("%s\n", header_msg);
1073+
*first=0;
1074+
}
1075+
printf(fmt, name);
1076+
}
1077+
1078+
int refresh_index(struct index_state *istate, unsigned int flags, const char **pathspec,
1079+
char *seen, char *header_msg)
10691080
{
10701081
int i;
10711082
int has_errors = 0;
@@ -1074,11 +1085,14 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
10741085
int quiet = (flags & REFRESH_QUIET) != 0;
10751086
int not_new = (flags & REFRESH_IGNORE_MISSING) != 0;
10761087
int ignore_submodules = (flags & REFRESH_IGNORE_SUBMODULES) != 0;
1088+
int first = 1;
1089+
int in_porcelain = (flags & REFRESH_IN_PORCELAIN);
10771090
unsigned int options = really ? CE_MATCH_IGNORE_VALID : 0;
1078-
const char *needs_update_message;
1091+
const char *needs_update_fmt;
1092+
const char *needs_merge_fmt;
10791093

1080-
needs_update_message = ((flags & REFRESH_SAY_CHANGED)
1081-
? "locally modified" : "needs update");
1094+
needs_update_fmt = (in_porcelain ? "M\t%s\n" : "%s: needs update\n");
1095+
needs_merge_fmt = (in_porcelain ? "U\t%s\n" : "%s: needs merge\n");
10821096
for (i = 0; i < istate->cache_nr; i++) {
10831097
struct cache_entry *ce, *new;
10841098
int cache_errno = 0;
@@ -1094,7 +1108,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
10941108
i--;
10951109
if (allow_unmerged)
10961110
continue;
1097-
printf("%s: needs merge\n", ce->name);
1111+
show_file(needs_merge_fmt, ce->name, in_porcelain, &first, header_msg);
10981112
has_errors = 1;
10991113
continue;
11001114
}
@@ -1117,7 +1131,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
11171131
}
11181132
if (quiet)
11191133
continue;
1120-
printf("%s: %s\n", ce->name, needs_update_message);
1134+
show_file(needs_update_fmt, ce->name, in_porcelain, &first, header_msg);
11211135
has_errors = 1;
11221136
continue;
11231137
}

t/t7102-reset.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,8 @@ test_expect_success 'resetting an unmodified path is a no-op' '
419419
'
420420

421421
cat > expect << EOF
422-
file2: locally modified
422+
Unstaged changes after reset:
423+
M file2
423424
EOF
424425

425426
test_expect_success '--mixed refreshes the index' '

0 commit comments

Comments
 (0)