🌐 AI搜索 & 代理 主页
blob: 2ca93f6957f69cd5652ddc764f5afe81b598a2a9 [file] [log] [blame]
Jeff Kingc91f0d92006-09-08 08:05:341#ifndef STATUS_H
2#define STATUS_H
3
Kristian Høgsbergf26a0012007-09-18 00:06:424#include <stdio.h>
Junio C Hamano50b7e702009-08-05 06:49:335#include "string-list.h"
Junio C Hamano23900a92009-08-10 06:08:406#include "color.h"
SZEDER Gábor7aa9b9b2015-08-20 14:06:277#include "pathspec.h"
Kristian Høgsbergf26a0012007-09-18 00:06:428
Nguyễn Thái Ngọc Duy81eff272016-04-22 13:01:319struct worktree;
10
Jeff Kingc91f0d92006-09-08 08:05:3411enum color_wt_status {
Junio C Hamano23900a92009-08-10 06:08:4012 WT_STATUS_HEADER = 0,
Jeff Kingc91f0d92006-09-08 08:05:3413 WT_STATUS_UPDATED,
14 WT_STATUS_CHANGED,
15 WT_STATUS_UNTRACKED,
Chris Parsons950ce2e2008-05-22 12:50:0216 WT_STATUS_NOBRANCH,
Junio C Hamano4d4d5722009-08-05 07:04:5117 WT_STATUS_UNMERGED,
Daniel Knittl-Frank05a59a02010-05-25 13:45:5118 WT_STATUS_LOCAL_BRANCH,
Aleksi Aalto1d282322010-11-17 23:40:0519 WT_STATUS_REMOTE_BRANCH,
20 WT_STATUS_ONBRANCH,
21 WT_STATUS_MAXSLOT
Jeff Kingc91f0d92006-09-08 08:05:3422};
23
Marius Storm-Olsen4bfee302008-06-05 08:31:1924enum untracked_status_type {
Marius Storm-Olsen6c2ce042008-06-05 12:22:5625 SHOW_NO_UNTRACKED_FILES,
26 SHOW_NORMAL_UNTRACKED_FILES,
Marius Storm-Olsen4bfee302008-06-05 08:31:1927 SHOW_ALL_UNTRACKED_FILES
28};
Marius Storm-Olsen4bfee302008-06-05 08:31:1929
Jay Soffian37f7a852011-02-20 04:12:2930/* from where does this commit originate */
31enum commit_whence {
32 FROM_COMMIT, /* normal */
33 FROM_MERGE, /* commit came from merge */
34 FROM_CHERRY_PICK /* commit came from cherry-pick */
35};
36
Junio C Hamano50b7e702009-08-05 06:49:3337struct wt_status_change_data {
38 int worktree_status;
39 int index_status;
40 int stagemask;
41 char *head_path;
Jens Lehmann9297f77e62010-03-08 12:53:1942 unsigned dirty_submodule : 2;
43 unsigned new_submodule_commits : 1;
Junio C Hamano50b7e702009-08-05 06:49:3344};
45
Jeff Kingc91f0d92006-09-08 08:05:3446struct wt_status {
47 int is_initial;
48 char *branch;
49 const char *reference;
Nguyễn Thái Ngọc Duy15b55ae2013-07-14 08:35:3950 struct pathspec pathspec;
Jeff Kingc91f0d92006-09-08 08:05:3451 int verbose;
52 int amend;
Jay Soffian37f7a852011-02-20 04:12:2953 enum commit_whence whence;
Junio C Hamano37d07f82007-12-13 03:09:1654 int nowarn;
Junio C Hamanod249b092009-08-10 04:59:3055 int use_color;
Matthieu Moy7a76c282014-03-20 12:12:4156 int no_gettext;
Matthieu Moy2556b992013-09-06 17:43:0757 int display_comment_prefix;
Junio C Hamanod249b092009-08-10 04:59:3058 int relative_paths;
59 int submodule_summary;
Junio C Hamano6cb3f6b2010-04-10 07:11:5360 int show_ignored_files;
Junio C Hamanod249b092009-08-10 04:59:3061 enum untracked_status_type show_untracked_files;
Jens Lehmann46a958b2010-06-25 14:56:4762 const char *ignore_submodule_arg;
Aleksi Aalto1d282322010-11-17 23:40:0563 char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN];
Jeff King4d2292e2012-05-07 19:35:0364 unsigned colopts;
Jeff King3207a3a2012-05-07 19:44:4465 int null_termination;
Jeff Kingd4a6bf12012-05-07 21:09:0466 int show_branch;
Matthieu Moy6a964f52013-09-12 10:50:0567 int hints;
Junio C Hamanod249b092009-08-10 04:59:3068
Jürgen Rühle2a3a3c22007-01-10 22:25:0369 /* These are computed during processing of the individual sections */
70 int commitable;
71 int workdir_dirty;
Kristian Høgsberg0f729f22007-09-18 00:06:4372 const char *index_file;
Kristian Høgsbergf26a0012007-09-18 00:06:4273 FILE *fp;
Johannes Schindelin367c9882007-11-11 17:35:4174 const char *prefix;
Junio C Hamano50b7e702009-08-05 06:49:3375 struct string_list change;
Junio C Hamano76378682009-08-10 07:36:3376 struct string_list untracked;
Junio C Hamano6cb3f6b2010-04-10 07:11:5377 struct string_list ignored;
Nguyễn Thái Ngọc Duy6a38ef22013-03-13 12:59:1678 uint32_t untracked_in_ms;
Jeff Kingc91f0d92006-09-08 08:05:3479};
80
Lucien Kong83c750a2012-06-05 20:21:2481struct wt_status_state {
82 int merge_in_progress;
83 int am_in_progress;
84 int am_empty_patch;
85 int rebase_in_progress;
86 int rebase_interactive_in_progress;
87 int cherry_pick_in_progress;
88 int bisect_in_progress;
Matthieu Moydb4ef442013-04-02 14:20:2189 int revert_in_progress;
Michael J Gruber970399e2015-03-06 15:04:0690 int detached_at;
Nguyễn Thái Ngọc Duy8b87cfd2013-03-16 02:12:3691 char *branch;
92 char *onto;
Nguyễn Thái Ngọc Duyb397ea42013-03-13 11:42:5293 char *detached_from;
94 unsigned char detached_sha1[20];
Matthieu Moy87e139c2013-04-02 14:20:2295 unsigned char revert_head_sha1[20];
Ralf Thielowbffd8092013-10-11 15:58:3796 unsigned char cherry_pick_head_sha1[20];
Lucien Kong83c750a2012-06-05 20:21:2497};
98
Jens Lehmann1a72cfd2013-12-05 19:44:1499void wt_status_truncate_message_at_cut_line(struct strbuf *);
Nguyễn Thái Ngọc Duyfcef9312014-02-17 12:15:31100void wt_status_add_cut_line(FILE *fp);
Jeff Kingc91f0d92006-09-08 08:05:34101void wt_status_prepare(struct wt_status *s);
102void wt_status_print(struct wt_status *s);
Junio C Hamano76378682009-08-10 07:36:33103void wt_status_collect(struct wt_status *s);
Nguyễn Thái Ngọc Duyb397ea42013-03-13 11:42:52104void wt_status_get_state(struct wt_status_state *state, int get_detached_from);
Nguyễn Thái Ngọc Duy81eff272016-04-22 13:01:31105int wt_status_check_rebase(const struct worktree *wt,
106 struct wt_status_state *state);
Nguyễn Thái Ngọc Duyf5d067a2016-04-22 13:01:34107int wt_status_check_bisect(const struct worktree *wt,
108 struct wt_status_state *state);
Jeff Kingc91f0d92006-09-08 08:05:34109
Jeff Kingd4a6bf12012-05-07 21:09:04110void wt_shortstatus_print(struct wt_status *s);
Jeff King3207a3a2012-05-07 19:44:44111void wt_porcelain_print(struct wt_status *s);
Michael J Gruber84dbe7b2009-12-05 15:04:37112
Jeff King8dd0ee82013-07-10 00:23:28113__attribute__((format (printf, 3, 4)))
114void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, ...);
115__attribute__((format (printf, 3, 4)))
116void status_printf(struct wt_status *s, const char *color, const char *fmt, ...);
Jonathan Niederbecbdae2011-02-26 05:09:41117
Jeff Kingc91f0d92006-09-08 08:05:34118#endif /* STATUS_H */