diff options
Diffstat (limited to 'wt-status.h')
-rw-r--r-- | wt-status.h | 80 |
1 files changed, 51 insertions, 29 deletions
diff --git a/wt-status.h b/wt-status.h index 64f4d33ea1..3a95975032 100644 --- a/wt-status.h +++ b/wt-status.h @@ -5,7 +5,9 @@ #include "string-list.h" #include "color.h" #include "pathspec.h" +#include "remote.h" +struct repository; struct worktree; enum color_wt_status { @@ -27,6 +29,12 @@ enum untracked_status_type { SHOW_ALL_UNTRACKED_FILES }; +enum show_ignored_type { + SHOW_NO_IGNORED, + SHOW_TRADITIONAL_IGNORED, + SHOW_MATCHING_IGNORED, +}; + /* from where does this commit originate */ enum commit_whence { FROM_COMMIT, /* normal */ @@ -38,10 +46,11 @@ struct wt_status_change_data { int worktree_status; int index_status; int stagemask; - int score; int mode_head, mode_index, mode_worktree; struct object_id oid_head, oid_index; - char *head_path; + int rename_status; + int rename_score; + char *rename_source; unsigned dirty_submodule : 2; unsigned new_submodule_commits : 1; }; @@ -56,7 +65,26 @@ enum wt_status_format { STATUS_FORMAT_UNSPECIFIED }; +struct wt_status_state { + int merge_in_progress; + int am_in_progress; + int am_empty_patch; + int rebase_in_progress; + int rebase_interactive_in_progress; + int cherry_pick_in_progress; + int bisect_in_progress; + int revert_in_progress; + int detached_at; + char *branch; + char *onto; + char *detached_from; + struct object_id detached_oid; + struct object_id revert_head_oid; + struct object_id cherry_pick_head_oid; +}; + struct wt_status { + struct repository *repo; int is_initial; char *branch; const char *reference; @@ -70,7 +98,7 @@ struct wt_status { int display_comment_prefix; int relative_paths; int submodule_summary; - int show_ignored_files; + enum show_ignored_type show_ignored_mode; enum untracked_status_type show_untracked_files; const char *ignore_submodule_arg; char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN]; @@ -80,12 +108,16 @@ struct wt_status { int show_branch; int show_stash; int hints; - + enum ahead_behind_flags ahead_behind_flags; + int detect_rename; + int rename_score; + int rename_limit; enum wt_status_format status_format; + struct wt_status_state state; unsigned char sha1_commit[GIT_MAX_RAWSZ]; /* when not Initial */ /* These are computed during processing of the individual sections */ - int commitable; + int committable; int workdir_dirty; const char *index_file; FILE *fp; @@ -96,30 +128,15 @@ struct wt_status { uint32_t untracked_in_ms; }; -struct wt_status_state { - int merge_in_progress; - int am_in_progress; - int am_empty_patch; - int rebase_in_progress; - int rebase_interactive_in_progress; - int cherry_pick_in_progress; - int bisect_in_progress; - int revert_in_progress; - int detached_at; - char *branch; - char *onto; - char *detached_from; - unsigned char detached_sha1[20]; - unsigned char revert_head_sha1[20]; - unsigned char cherry_pick_head_sha1[20]; -}; - size_t wt_status_locate_end(const char *s, size_t len); void wt_status_add_cut_line(FILE *fp); -void wt_status_prepare(struct wt_status *s); +void wt_status_prepare(struct repository *r, struct wt_status *s); void wt_status_print(struct wt_status *s); void wt_status_collect(struct wt_status *s); -void wt_status_get_state(struct wt_status_state *state, int get_detached_from); +void wt_status_collect_free_buffers(struct wt_status *s); +void wt_status_get_state(struct repository *repo, + struct wt_status_state *state, + int get_detached_from); int wt_status_check_rebase(const struct worktree *wt, struct wt_status_state *state); int wt_status_check_bisect(const struct worktree *wt, @@ -131,9 +148,14 @@ __attribute__((format (printf, 3, 4))) void status_printf(struct wt_status *s, const char *color, const char *fmt, ...); /* The following functions expect that the caller took care of reading the index. */ -int has_unstaged_changes(int ignore_submodules); -int has_uncommitted_changes(int ignore_submodules); -int require_clean_work_tree(const char *action, const char *hint, - int ignore_submodules, int gently); +int has_unstaged_changes(struct repository *repo, + int ignore_submodules); +int has_uncommitted_changes(struct repository *repo, + int ignore_submodules); +int require_clean_work_tree(struct repository *repo, + const char *action, + const char *hint, + int ignore_submodules, + int gently); #endif /* STATUS_H */ |