clone: better error when --reference is a linked checkout

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed Sep 28, 2015 at 20:06 UTC d78db8424ec5c3f3327441cd1a897064af39da91
1 file changed +6 -1
builtin/clone.c
+6 -1
@@ -294,9 +294,14 @@ static int add_one_reference(struct string_list_item *item, void *cb_data)
294 char *ref_git_git = mkpathdup("%s/.git", ref_git);
295 free(ref_git);
296 ref_git = ref_git_git;
297 - } else if (!is_directory(mkpath("%s/objects", ref_git)))
297 + } else if (!is_directory(mkpath("%s/objects", ref_git))) {
298 + struct strbuf sb = STRBUF_INIT;
299 + if (get_common_dir(&sb, ref_git))
300 + die(_("reference repository '%s' as a linked checkout is not supported yet."),
301 + item->string);
302 die(_("reference repository '%s' is not a local repository."),
303 item->string);
304 + }
305
306 if (!access(mkpath("%s/shallow", ref_git), F_OK))
307 die(_("reference repository '%s' is shallow"), item->string);