Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Provide better feedback for the untracked only case in status output

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...
commit 2a3a3c247e7f1f257e9c6762e48b98f08a30011a 1 parent ccd14e5
@j-r j-r authored Junio C Hamano committed
Showing with 16 additions and 11 deletions.
  1. +12 −9 wt-status.c
  2. +4 −2 wt-status.h
View
21 wt-status.c
@@ -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)
@@ -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++)
@@ -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;
}
@@ -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");
}
}
View
6 wt-status.h
@@ -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);
Please sign in to comment.
Something went wrong with that request. Please try again.