Instead of dying with weird errors when trying to merge submodules from a supermodule, emit errors that show what the problem is. Signed-off-by: Finn Arne Gangstad <finnag@xxxxxxx> --- If you try to merge a submodule from a supermodule, you get some very strange error messages. With this patch you get a nice clean error message indicating that this isn't supported instead. git-merge-one-file.sh | 7 +++++++ merge-recursive.c | 2 ++ 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh index 1e7727d..7aee342 100755 --- a/git-merge-one-file.sh +++ b/git-merge-one-file.sh @@ -82,6 +82,13 @@ case "${1:-.}${2:-.}${3:-.}" in ;; esac + case ",$6,$7," in + *,160000,*) + echo "ERROR: $4: Not merging submodule." + exit 1 + ;; + esac + src2=`git-unpack-file $3` case "$1" in '') diff --git a/merge-recursive.c b/merge-recursive.c index 9a1e2f2..ecae8ea 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1046,6 +1046,8 @@ static struct merge_file_info merge_file(struct diff_filespec *o, free(result_buf.ptr); result.clean = (merge_status == 0); + } else if (S_ISGITLINK(a->mode) || S_ISGITLINK(b->mode)) { + die("cannot merge submodules!"); } else { if (!(S_ISLNK(a->mode) || S_ISLNK(b->mode))) die("cannot merge modes?"); -- 1.5.3.7.1149.g591a-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html