| #ifndef ADVICE_H |
| #define ADVICE_H |
| |
| #include "git-compat-util.h" |
| |
| extern int advice_fetch_show_forced_updates; |
| extern int advice_push_update_rejected; |
| extern int advice_push_non_ff_current; |
| extern int advice_push_non_ff_matching; |
| extern int advice_push_already_exists; |
| extern int advice_push_fetch_first; |
| extern int advice_push_needs_force; |
| extern int advice_push_unqualified_ref_name; |
| extern int advice_status_hints; |
| extern int advice_status_u_option; |
| extern int advice_status_ahead_behind_warning; |
| extern int advice_commit_before_merge; |
| extern int advice_reset_quiet_warning; |
| extern int advice_resolve_conflict; |
| extern int advice_sequencer_in_use; |
| extern int advice_implicit_identity; |
| extern int advice_detached_head; |
| extern int advice_set_upstream_failure; |
| extern int advice_object_name_warning; |
| extern int advice_amworkdir; |
| extern int advice_rm_hints; |
| extern int advice_add_embedded_repo; |
| extern int advice_ignored_hook; |
| extern int advice_waiting_for_editor; |
| extern int advice_graft_file_deprecated; |
| extern int advice_checkout_ambiguous_remote_branch_name; |
| extern int advice_submodule_alternate_error_strategy_die; |
| extern int advice_add_ignored_file; |
| extern int advice_add_empty_pathspec; |
| |
| /* |
| * To add a new advice, you need to: |
| * Define a new advice_type. |
| * Add a new entry to advice_setting array. |
| * Add the new config variable to Documentation/config/advice.txt. |
| * Call advise_if_enabled to print your advice. |
| */ |
| enum advice_type { |
| ADVICE_ADD_EMBEDDED_REPO, |
| ADVICE_AM_WORK_DIR, |
| ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME, |
| ADVICE_COMMIT_BEFORE_MERGE, |
| ADVICE_DETACHED_HEAD, |
| ADVICE_FETCH_SHOW_FORCED_UPDATES, |
| ADVICE_GRAFT_FILE_DEPRECATED, |
| ADVICE_IGNORED_HOOK, |
| ADVICE_IMPLICIT_IDENTITY, |
| ADVICE_NESTED_TAG, |
| ADVICE_OBJECT_NAME_WARNING, |
| ADVICE_PUSH_ALREADY_EXISTS, |
| ADVICE_PUSH_FETCH_FIRST, |
| ADVICE_PUSH_NEEDS_FORCE, |
| ADVICE_PUSH_NON_FF_CURRENT, |
| ADVICE_PUSH_NON_FF_MATCHING, |
| ADVICE_PUSH_UNQUALIFIED_REF_NAME, |
| ADVICE_PUSH_UPDATE_REJECTED_ALIAS, |
| ADVICE_PUSH_UPDATE_REJECTED, |
| ADVICE_RESET_QUIET_WARNING, |
| ADVICE_RESOLVE_CONFLICT, |
| ADVICE_RM_HINTS, |
| ADVICE_SEQUENCER_IN_USE, |
| ADVICE_SET_UPSTREAM_FAILURE, |
| ADVICE_STATUS_AHEAD_BEHIND_WARNING, |
| ADVICE_STATUS_HINTS, |
| ADVICE_STATUS_U_OPTION, |
| ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE, |
| ADVICE_WAITING_FOR_EDITOR, |
| }; |
| |
| int git_default_advice_config(const char *var, const char *value); |
| __attribute__((format (printf, 1, 2))) |
| void advise(const char *advice, ...); |
| |
| /** |
| * Checks if advice type is enabled (can be printed to the user). |
| * Should be called before advise(). |
| */ |
| int advice_enabled(enum advice_type type); |
| |
| /** |
| * Checks the visibility of the advice before printing. |
| */ |
| void advise_if_enabled(enum advice_type type, const char *advice, ...); |
| |
| int error_resolve_conflict(const char *me); |
| void NORETURN die_resolve_conflict(const char *me); |
| void NORETURN die_conclude_merge(void); |
| void detach_advice(const char *new_name); |
| |
| #endif /* ADVICE_H */ |