mirror of
https://github.com/git/git.git
synced 2025-12-05 18:47:16 -06:00
It is likely that those who came to Git after 3.0 switched the default initial branch name to 'main' would still try to follow tutorials that were written before 3.0 happened and with the assumption that the tool would call the initial branch 'master'. To help these new users after 3.0 boundary, let's retain one part of the hint we will be giving before the default changes, namely, how to rename the branch an unconfigured Git has created just once. We do this without telling them how to permanently configure the default name of the initial branch, and that design choice is very much deliberate. The whole point of switching the default name was because we did not want to force individual users to configure their default branch name but while the hard wired default was 'master', they _had_ to configure it away from 'master' in order to conform to the recent norm, and a hint that tells them how to do so is useful. But once the default is renamed to 'main', that no longer is true. A narrower audience who are new users that follow an instruction that assumes the initial branch name is 'master' would only need to learn "here is how to change the branch name to match the tutorial you are following in the repository you created for practice", and "here is how you keep creating repositories with the first branch with a name everybody hates" is unnecessary. It also needs to be noted that the advise token to squelch the message is the same advice.defaultBranchName as before, which is also very much deliberate. The users who do have that configured are those who _have_ been using Git since before 3.0, and they are not the target audience for the new advice message. Reusing the same advise token ensures that they do not have to turn the message off. Helped-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
88 lines
2.5 KiB
C
88 lines
2.5 KiB
C
#ifndef ADVICE_H
|
|
#define ADVICE_H
|
|
|
|
struct string_list;
|
|
|
|
/*
|
|
* 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.adoc.
|
|
* Call advise_if_enabled to print your advice.
|
|
*/
|
|
enum advice_type {
|
|
ADVICE_ADD_EMBEDDED_REPO,
|
|
ADVICE_ADD_EMPTY_PATHSPEC,
|
|
ADVICE_ADD_IGNORED_FILE,
|
|
ADVICE_AMBIGUOUS_FETCH_REFSPEC,
|
|
ADVICE_AM_WORK_DIR,
|
|
ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME,
|
|
ADVICE_COMMIT_BEFORE_MERGE,
|
|
ADVICE_DEFAULT_BRANCH_NAME, /* To be retired sometime after Git 3.0 */
|
|
ADVICE_DETACHED_HEAD,
|
|
ADVICE_DIVERGING,
|
|
ADVICE_FETCH_SET_HEAD_WARN,
|
|
ADVICE_FETCH_SHOW_FORCED_UPDATES,
|
|
ADVICE_FORCE_DELETE_BRANCH,
|
|
ADVICE_GRAFT_FILE_DEPRECATED,
|
|
ADVICE_IGNORED_HOOK,
|
|
ADVICE_IMPLICIT_IDENTITY,
|
|
ADVICE_MERGE_CONFLICT,
|
|
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_REF_NEEDS_UPDATE,
|
|
ADVICE_PUSH_UNQUALIFIED_REF_NAME,
|
|
ADVICE_PUSH_UPDATE_REJECTED,
|
|
ADVICE_PUSH_UPDATE_REJECTED_ALIAS,
|
|
ADVICE_REBASE_TODO_ERROR,
|
|
ADVICE_REF_SYNTAX,
|
|
ADVICE_RESET_NO_REFRESH_WARNING,
|
|
ADVICE_RESOLVE_CONFLICT,
|
|
ADVICE_RM_HINTS,
|
|
ADVICE_SEQUENCER_IN_USE,
|
|
ADVICE_SET_UPSTREAM_FAILURE,
|
|
ADVICE_SKIPPED_CHERRY_PICKS,
|
|
ADVICE_SPARSE_INDEX_EXPANDED,
|
|
ADVICE_STATUS_AHEAD_BEHIND_WARNING,
|
|
ADVICE_STATUS_HINTS,
|
|
ADVICE_STATUS_U_OPTION,
|
|
ADVICE_SUBMODULES_NOT_UPDATED,
|
|
ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE,
|
|
ADVICE_SUBMODULE_MERGE_CONFLICT,
|
|
ADVICE_SUGGEST_DETACHING_HEAD,
|
|
ADVICE_UPDATE_SPARSE_PATH,
|
|
ADVICE_WAITING_FOR_EDITOR,
|
|
ADVICE_WORKTREE_ADD_ORPHAN,
|
|
};
|
|
|
|
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.
|
|
*/
|
|
__attribute__((format (printf, 2, 3)))
|
|
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 NORETURN die_ff_impossible(void);
|
|
void advise_on_updating_sparse_paths(struct string_list *pathspec_list);
|
|
void detach_advice(const char *new_name);
|
|
void advise_on_moving_dirty_path(struct string_list *pathspec_list);
|
|
|
|
#endif /* ADVICE_H */
|