mirror of
https://github.com/git/git.git
synced 2026-03-18 20:50:07 +01:00
Until now you had to call "git submodule update" (without -N|--no-fetch option) or something like "git submodule foreach git fetch" to fetch new commits in populated submodules from their remote. This could lead to "(commits not present)" messages in the output of "git diff --submodule" (and in "git gui" and "gitk") after fetching or pulling new commits in the superproject and is an obstacle for implementing recursive checkout of submodules. This patch recursively fetches each populated submodule from the url configured in the .git/config of the submodule at the end of each "git fetch" or during "git pull" in the superproject. This new behavior can be disabled by using the new --no-recursive option. t7403 had to be changed to use the --no-recursive option for pull. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
22 lines
859 B
C
22 lines
859 B
C
#ifndef SUBMODULE_H
|
|
#define SUBMODULE_H
|
|
|
|
struct diff_options;
|
|
|
|
void set_diffopt_flags_from_submodule_config(struct diff_options *diffopt,
|
|
const char *path);
|
|
int submodule_config(const char *var, const char *value, void *cb);
|
|
void gitmodules_config();
|
|
int parse_submodule_config_option(const char *var, const char *value);
|
|
void handle_ignore_submodules_arg(struct diff_options *diffopt, const char *);
|
|
void show_submodule_summary(FILE *f, const char *path,
|
|
unsigned char one[20], unsigned char two[20],
|
|
unsigned dirty_submodule,
|
|
const char *del, const char *add, const char *reset);
|
|
int fetch_populated_submodules();
|
|
unsigned is_submodule_modified(const char *path, int ignore_untracked);
|
|
int merge_submodule(unsigned char result[20], const char *path, const unsigned char base[20],
|
|
const unsigned char a[20], const unsigned char b[20]);
|
|
|
|
#endif
|