diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2018-05-24 22:47:29 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-05-25 08:25:42 +0200 |
commit | 4d36f88be7401fb4ff225557aae05a458091b24b (patch) | |
tree | e5f6ac6d2d65b07a78653fb9f0bcb12974f3940d /submodule.h | |
parent | Git 2.17 (diff) | |
download | git-4d36f88be7401fb4ff225557aae05a458091b24b.tar.xz git-4d36f88be7401fb4ff225557aae05a458091b24b.zip |
submodule: do not pass null OID to setup_revisions
If "git pull --recurse-submodules --rebase" is invoked when the current
branch and its corresponding remote-tracking branch have no merge base,
a "bad object" fatal error occurs. This issue was introduced with commit
a6d7eb2c7a ("pull: optionally rebase submodules (remote submodule
changes only)", 2017-06-23), which also introduced this feature.
This is because cmd_pull() in builtin/pull.c thus invokes
submodule_touches_in_range() with a null OID as the first parameter.
Ensure that this case works, and document what happens in this case.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule.h')
-rw-r--r-- | submodule.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/submodule.h b/submodule.h index 9589f13127..0189b3ebde 100644 --- a/submodule.h +++ b/submodule.h @@ -94,7 +94,10 @@ extern int merge_submodule(struct object_id *result, const char *path, const struct object_id *a, const struct object_id *b, int search); -/* Checks if there are submodule changes in a..b. */ +/* + * 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, |