Jeff King | 7519443 | 2009-09-09 07:38:58 -0400 | [diff] [blame] | 1 | #ifndef ADVICE_H |
| 2 | #define ADVICE_H |
| 3 | |
Matheus Tavares | a20f704 | 2021-04-08 17:41:27 -0300 | [diff] [blame] | 4 | struct string_list; |
| 5 | |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 6 | /* |
| 7 | * To add a new advice, you need to: |
| 8 | * Define a new advice_type. |
| 9 | * Add a new entry to advice_setting array. |
| 10 | * Add the new config variable to Documentation/config/advice.txt. |
| 11 | * Call advise_if_enabled to print your advice. |
| 12 | */ |
| 13 | enum advice_type { |
| 14 | ADVICE_ADD_EMBEDDED_REPO, |
Ben Boeckel | 6929055 | 2021-08-23 12:43:59 +0200 | [diff] [blame] | 15 | ADVICE_ADD_EMPTY_PATHSPEC, |
| 16 | ADVICE_ADD_IGNORED_FILE, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 17 | ADVICE_AM_WORK_DIR, |
Tao Klerks | e4921d8 | 2022-04-01 06:05:13 +0000 | [diff] [blame] | 18 | ADVICE_AMBIGUOUS_FETCH_REFSPEC, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 19 | ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME, |
| 20 | ADVICE_COMMIT_BEFORE_MERGE, |
| 21 | ADVICE_DETACHED_HEAD, |
Felipe Contreras | 765071a | 2023-03-07 20:48:33 -0600 | [diff] [blame] | 22 | ADVICE_DIVERGING, |
Alex Henrie | 808213b | 2022-02-25 23:12:13 -0700 | [diff] [blame] | 23 | ADVICE_SUGGEST_DETACHING_HEAD, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 24 | ADVICE_FETCH_SHOW_FORCED_UPDATES, |
| 25 | ADVICE_GRAFT_FILE_DEPRECATED, |
| 26 | ADVICE_IGNORED_HOOK, |
| 27 | ADVICE_IMPLICIT_IDENTITY, |
| 28 | ADVICE_NESTED_TAG, |
| 29 | ADVICE_OBJECT_NAME_WARNING, |
| 30 | ADVICE_PUSH_ALREADY_EXISTS, |
| 31 | ADVICE_PUSH_FETCH_FIRST, |
| 32 | ADVICE_PUSH_NEEDS_FORCE, |
| 33 | ADVICE_PUSH_NON_FF_CURRENT, |
| 34 | ADVICE_PUSH_NON_FF_MATCHING, |
| 35 | ADVICE_PUSH_UNQUALIFIED_REF_NAME, |
| 36 | ADVICE_PUSH_UPDATE_REJECTED_ALIAS, |
| 37 | ADVICE_PUSH_UPDATE_REJECTED, |
Srinidhi Kaushik | 3b990aa | 2020-10-03 17:40:45 +0530 | [diff] [blame] | 38 | ADVICE_PUSH_REF_NEEDS_UPDATE, |
Victoria Dye | 9396251 | 2022-03-15 01:49:40 +0000 | [diff] [blame] | 39 | ADVICE_RESET_NO_REFRESH_WARNING, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 40 | ADVICE_RESOLVE_CONFLICT, |
| 41 | ADVICE_RM_HINTS, |
| 42 | ADVICE_SEQUENCER_IN_USE, |
| 43 | ADVICE_SET_UPSTREAM_FAILURE, |
| 44 | ADVICE_STATUS_AHEAD_BEHIND_WARNING, |
| 45 | ADVICE_STATUS_HINTS, |
| 46 | ADVICE_STATUS_U_OPTION, |
| 47 | ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE, |
Glen Choo | 961b130 | 2022-01-28 16:04:45 -0800 | [diff] [blame] | 48 | ADVICE_SUBMODULES_NOT_UPDATED, |
Matheus Tavares | a20f704 | 2021-04-08 17:41:27 -0300 | [diff] [blame] | 49 | ADVICE_UPDATE_SPARSE_PATH, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 50 | ADVICE_WAITING_FOR_EDITOR, |
Josh Steadmon | 767a4ca | 2021-08-30 14:46:02 -0700 | [diff] [blame] | 51 | ADVICE_SKIPPED_CHERRY_PICKS, |
Jacob Abel | 35f0383 | 2023-05-17 21:48:52 +0000 | [diff] [blame] | 52 | ADVICE_WORKTREE_ADD_ORPHAN, |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 53 | }; |
| 54 | |
Jeff King | 7519443 | 2009-09-09 07:38:58 -0400 | [diff] [blame] | 55 | int git_default_advice_config(const char *var, const char *value); |
Jeff King | 4621085 | 2013-07-09 20:18:40 -0400 | [diff] [blame] | 56 | __attribute__((format (printf, 1, 2))) |
Ramkumar Ramachandra | 38ef61c | 2011-08-04 16:08:59 +0530 | [diff] [blame] | 57 | void advise(const char *advice, ...); |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 58 | |
| 59 | /** |
| 60 | * Checks if advice type is enabled (can be printed to the user). |
| 61 | * Should be called before advise(). |
| 62 | */ |
| 63 | int advice_enabled(enum advice_type type); |
| 64 | |
| 65 | /** |
| 66 | * Checks the visibility of the advice before printing. |
| 67 | */ |
Ævar Arnfjörð Bjarmason | 927dc33 | 2021-07-13 10:05:20 +0200 | [diff] [blame] | 68 | __attribute__((format (printf, 2, 3))) |
Heba Waly | b3b18d1 | 2020-03-02 20:01:59 +0000 | [diff] [blame] | 69 | void advise_if_enabled(enum advice_type type, const char *advice, ...); |
| 70 | |
Ramkumar Ramachandra | 38ef61c | 2011-08-04 16:08:59 +0530 | [diff] [blame] | 71 | int error_resolve_conflict(const char *me); |
Denton Liu | 5545442 | 2019-04-29 04:28:14 -0400 | [diff] [blame] | 72 | void NORETURN die_resolve_conflict(const char *me); |
Paul Tan | 4a4cf9e | 2015-06-18 18:54:04 +0800 | [diff] [blame] | 73 | void NORETURN die_conclude_merge(void); |
Alex Henrie | 3d5fc24 | 2021-07-21 01:42:19 +0000 | [diff] [blame] | 74 | void NORETURN die_ff_impossible(void); |
Matheus Tavares | a20f704 | 2021-04-08 17:41:27 -0300 | [diff] [blame] | 75 | void advise_on_updating_sparse_paths(struct string_list *pathspec_list); |
Nguyễn Thái Ngọc Duy | 2857093 | 2012-01-16 16:46:16 +0700 | [diff] [blame] | 76 | void detach_advice(const char *new_name); |
Shaoxuan Yuan | 5efd533 | 2022-08-09 20:09:09 +0800 | [diff] [blame] | 77 | void advise_on_moving_dirty_path(struct string_list *pathspec_list); |
Matthieu Moy | d38a30d | 2010-01-12 10:54:44 +0100 | [diff] [blame] | 78 | |
Jeff King | 7519443 | 2009-09-09 07:38:58 -0400 | [diff] [blame] | 79 | #endif /* ADVICE_H */ |