4f3e57ef13
When recursively cloning a superproject with some shallow modules defined in its .gitmodules, then recloning with "--reference=<path>", an error occurs. For example: git clone --recurse-submodules --branch=master -j8 \ https://android.googlesource.com/platform/superproject \ master git clone --recurse-submodules --branch=master -j8 \ https://android.googlesource.com/platform/superproject \ --reference master master2 fails with: fatal: submodule '<snip>' cannot add alternate: reference repository '<snip>' is shallow When a alternate computed from the superproject's alternate cannot be added, whether in this case or another, advise about configuring the "submodule.alternateErrorStrategy" configuration option and using "--reference-if-able" instead of "--reference" when cloning. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
44 lines
1.5 KiB
C
44 lines
1.5 KiB
C
#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_nested_tag;
|
|
extern int advice_submodule_alternate_error_strategy_die;
|
|
|
|
int git_default_advice_config(const char *var, const char *value);
|
|
__attribute__((format (printf, 1, 2)))
|
|
void advise(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 */
|