wt-status.c: rework the way changes to the index and work tree are summarized

Introduce a new infrastructure to find and summarize changes in a single
string list, and rewrite wt_status_print_{updated,changed} functions using
it.

The goal of this change is to give more information on conflicted paths in
the status output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2009-08-04 23:49:33 -07:00
parent 26da1d7867
commit 50b7e70f33
3 changed files with 199 additions and 50 deletions

View File

@ -2,6 +2,7 @@
#define STATUS_H
#include <stdio.h>
#include "string-list.h"
enum color_wt_status {
WT_STATUS_HEADER,
@ -18,6 +19,13 @@ enum untracked_status_type {
};
extern enum untracked_status_type show_untracked_files;
struct wt_status_change_data {
int worktree_status;
int index_status;
int stagemask;
char *head_path;
};
struct wt_status {
int is_initial;
char *branch;
@ -33,6 +41,7 @@ struct wt_status {
const char *index_file;
FILE *fp;
const char *prefix;
struct string_list change;
};
int git_status_config(const char *var, const char *value, void *cb);
@ -40,5 +49,6 @@ extern int wt_status_use_color;
extern int wt_status_relative_paths;
void wt_status_prepare(struct wt_status *s);
void wt_status_print(struct wt_status *s);
void wt_status_collect_changes(struct wt_status *s);
#endif /* STATUS_H */