mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
![Heiko Voigt](/assets/img/avatar_default.png)
This implements a simple merge strategy for submodule hashes. We check whether one side of the merge candidates is already contained in the other and then merge automatically. If both sides contain changes we search for a merge in the submodule. In case a single one exists we check that out and suggest it as the merge resolution. A list of candidates is returned when we find multiple merges that contain both sides of the changes. This is useful for a workflow in which the developers can publish topic branches in submodules and a separate maintainer merges them. In case the developers always wait until their branch gets merged before tracking them in the superproject all merges of branches that contain submodule changes will be resolved automatically. If developers choose to track their feature branch the maintainer might get a conflict but git will search the submodule for a merge and suggest it/them as a resolution. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 lines
564 B
C
16 lines
564 B
C
#ifndef SUBMODULE_H
|
|
#define SUBMODULE_H
|
|
|
|
struct diff_options;
|
|
|
|
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);
|
|
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
|