Skip to content

Commit

Permalink
Provide better feedback for the untracked only case in status output
Browse files Browse the repository at this point in the history
Since 98bf8a4 status would claim that
git-commit could be useful even if there are no changes except untracked files.

Since wt-status is already computing all the information needed go the whole
way and actually track the (non-)emptiness of all three sections separately,
unify the code, and provide useful messages for each individual case.

Thanks to Junio and Michael Loeffler for suggestions.

Signed-off-by: Jürgen Rühle <j-r@online.de>
  • Loading branch information
Jürgen Rühle authored and Junio C Hamano committed Jan 10, 2007
1 parent ccd14e5 commit 2a3a3c2
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
21 changes: 12 additions & 9 deletions wt-status.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,11 @@ void wt_status_prepare(struct wt_status *s)
s->reference = "HEAD";
s->amend = 0;
s->verbose = 0;
s->commitable = 0;
s->untracked = 0;

s->workdir_clean = 1;
s->commitable = 0;
s->workdir_dirty = 0;
s->workdir_untracked = 0;
}

static void wt_status_print_cached_header(const char *reference)
Expand Down Expand Up @@ -176,7 +177,7 @@ static void wt_status_print_changed_cb(struct diff_queue_struct *q,
struct wt_status *s = data;
int i;
if (q->nr) {
s->workdir_clean = 0;
s->workdir_dirty = 1;
wt_status_print_header("Changed but not added", use_add_msg);
}
for (i = 0; i < q->nr; i++)
Expand Down Expand Up @@ -263,7 +264,7 @@ static void wt_status_print_untracked(struct wt_status *s)
continue;
}
if (!shown_header) {
s->workdir_clean = 0;
s->workdir_untracked = 1;
wt_status_print_header("Untracked files", use_add_msg);
shown_header = 1;
}
Expand Down Expand Up @@ -311,12 +312,14 @@ void wt_status_print(struct wt_status *s)
if (!s->commitable) {
if (s->amend)
printf("# No changes\n");
else if (s->workdir_clean)
printf(s->is_initial
? "nothing to commit\n"
: "nothing to commit (working directory matches HEAD)\n");
else
else if (s->workdir_dirty)
printf("no changes added to commit (use \"git add\" and/or \"git commit [-a|-i|-o]\")\n");
else if (s->workdir_untracked)
printf("nothing added to commit but untracked files present (use \"git add\" to track)\n");
else if (s->is_initial)
printf("nothing to commit (create/copy files and use \"git add\" to track)\n");
else
printf("nothing to commit (working directory clean)\n");
}
}

Expand Down
6 changes: 4 additions & 2 deletions wt-status.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@ struct wt_status {
int is_initial;
char *branch;
const char *reference;
int commitable;
int verbose;
int amend;
int untracked;
int workdir_clean;
/* These are computed during processing of the individual sections */
int commitable;
int workdir_dirty;
int workdir_untracked;
};

int git_status_config(const char *var, const char *value);
Expand Down

0 comments on commit 2a3a3c2

Please sign in to comment.