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>
Max Kirillov committed
Sep 14, 2015 at 01:17 UTC
35fb4d2e3d4a3cd008ec0baa077939f60a64f244
1 file changed
+1
-8
submodule.c
+1
-8
@@ -122,15 +122,8 @@ static int add_submodule_odb(const char *path)
122
struct strbuf objects_directory = STRBUF_INIT;
123
struct alternate_object_database *alt_odb;
124
int ret = 0;
125
- const char *git_dir;
125
127
- strbuf_addf(&objects_directory, "%s/.git", path);
128
- git_dir = read_gitfile(objects_directory.buf);
129
- if (git_dir) {
130
- strbuf_reset(&objects_directory);
131
- strbuf_addstr(&objects_directory, git_dir);
132
- }
133
- strbuf_addstr(&objects_directory, "/objects/");
126
+ strbuf_git_path_submodule(&objects_directory, path, "objects/");
127
if (!is_directory(objects_directory.buf)) {
128
ret = -1;
129
goto done;