summaryrefslogtreecommitdiff
path: root/submodule.c
diff options
context:
space:
mode:
authorMax Kirillov <max@max630.net>2015-09-13 22:17:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-09-14 18:03:46 (GMT)
commit35fb4d2e3d4a3cd008ec0baa077939f60a64f244 (patch)
tree1085078051551deb23e663def9b065e7b40f4f06 /submodule.c
parent16ffa6443e279a9b3b63d7a2bebeb07833506010 (diff)
downloadgit-35fb4d2e3d4a3cd008ec0baa077939f60a64f244.zip
git-35fb4d2e3d4a3cd008ec0baa077939f60a64f244.tar.gz
git-35fb4d2e3d4a3cd008ec0baa077939f60a64f244.tar.bz2
submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()
Functions which directly operate submodule's object database do not handle the case when the submodule is linked worktree (which are introduced in c7b3a3d2fe). Instead of fixing the path calculation use already existing strbuf_git_path_submodule() function without changing overall behaviour. Then it will be possible to modify only that function whenever we need to change real location of submodule's repository content. Helped-by: Jeff King <peff@peff.net> Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule.c')
-rw-r--r--submodule.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/submodule.c b/submodule.c
index 245ed4d..5e5a46f 100644
--- a/submodule.c
+++ b/submodule.c
@@ -122,15 +122,8 @@ static int add_submodule_odb(const char *path)
struct strbuf objects_directory = STRBUF_INIT;
struct alternate_object_database *alt_odb;
int ret = 0;
- const char *git_dir;
- strbuf_addf(&objects_directory, "%s/.git", path);
- git_dir = read_gitfile(objects_directory.buf);
- if (git_dir) {
- strbuf_reset(&objects_directory);
- strbuf_addstr(&objects_directory, git_dir);
- }
- strbuf_addstr(&objects_directory, "/objects/");
+ strbuf_git_path_submodule(&objects_directory, path, "objects/");
if (!is_directory(objects_directory.buf)) {
ret = -1;
goto done;