path: root/repository.c
diff options
authorNguyễn Thái Ngọc Duy <>2019-01-12 02:13:24 (GMT)
committerJunio C Hamano <>2019-01-14 20:13:04 (GMT)
commit3a95f31d1cdc93fa4f926c6537f84186edd85ca9 (patch)
tree102d6623808b54f676dcbde75b1ed28705358f60 /repository.c
parent1d18d7581cf1ce45314b7ed58e52d5cc73b2e7a7 (diff)
repository.c: replace hold_locked_index() with repo_hold_locked_index()
hold_locked_index() assumes the index path at $GIT_DIR/index. This is not good for places that take an arbitrary index_state instead of the_index, which is basically everywhere except builtin/. Replace it with repo_hold_locked_index(). hold_locked_index() remains as a wrapper around repo_hold_locked_index() to reduce changes in builtin/ Signed-off-by: Nguyễn Thái Ngọc Duy <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'repository.c')
1 files changed, 10 insertions, 0 deletions
diff --git a/repository.c b/repository.c
index 7b02e1d..9411c4b 100644
--- a/repository.c
+++ b/repository.c
@@ -3,6 +3,7 @@
#include "object-store.h"
#include "config.h"
#include "object.h"
+#include "lockfile.h"
#include "submodule-config.h"
/* The main repository */
@@ -263,3 +264,12 @@ int repo_read_index(struct repository *repo)
return read_index_from(repo->index, repo->index_file, repo->gitdir);
+int repo_hold_locked_index(struct repository *repo,
+ struct lock_file *lf,
+ int flags)
+ if (!repo->index_file)
+ BUG("the repo hasn't been setup");
+ return hold_lock_file_for_update(lf, repo->index_file, flags);