#define SUBMODULE_REMOVAL_IGNORE_UNTRACKED (1<<1)
#define SUBMODULE_REMOVAL_IGNORE_IGNORED_UNTRACKED (1<<2)
extern int bad_to_remove_submodule(const char *path, unsigned flags);
-extern int merge_submodule(struct object_id *result, const char *path,
- const struct object_id *base,
- const struct object_id *a,
- const struct object_id *b, int search);
-/* Checks if there are submodule changes in a..b. */
+int add_submodule_odb(const char *path);
+
+/*
+ * Checks if there are submodule changes in a..b. If a is the null OID,
+ * checks b and all its ancestors instead.
+ */
extern int submodule_touches_in_range(struct object_id *a,
struct object_id *b);
extern int find_unpushed_submodules(struct oid_array *commits,
const char *new_head,
unsigned flags);
+void submodule_unset_core_worktree(const struct submodule *sub);
+
/*
* Prepare the "env_array" parameter of a "struct child_process" for executing
* a submodule by clearing any repo-specific environment variables, but