refs.c: flatten get_ref_store() a bit

This helps the future changes in this code. And because get_ref_store()
is destined to become get_submodule_ref_store(), the "get main store"
code path will be removed eventually. After this the patch to delete
that code will be cleaner.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2017-03-26 09:42:27 +07:00 коммит произвёл Junio C Hamano
Родитель 9476c6ed3d
Коммит 126c9e0576
1 изменённых файлов: 14 добавлений и 11 удалений

25
refs.c
Просмотреть файл

@ -1462,22 +1462,25 @@ static struct ref_store *get_main_ref_store(void)
struct ref_store *get_ref_store(const char *submodule)
{
struct strbuf submodule_sb = STRBUF_INIT;
struct ref_store *refs;
int ret;
if (!submodule || !*submodule) {
return get_main_ref_store();
} else {
refs = lookup_submodule_ref_store(submodule);
if (!refs) {
struct strbuf submodule_sb = STRBUF_INIT;
strbuf_addstr(&submodule_sb, submodule);
if (is_nonbare_repository_dir(&submodule_sb))
refs = ref_store_init(submodule);
strbuf_release(&submodule_sb);
}
}
refs = lookup_submodule_ref_store(submodule);
if (refs)
return refs;
strbuf_addstr(&submodule_sb, submodule);
ret = is_nonbare_repository_dir(&submodule_sb);
strbuf_release(&submodule_sb);
if (!ret)
return NULL;
refs = ref_store_init(submodule);
return refs;
}