diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2014-06-13 19:19:24 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-13 11:49:38 -0700 |
commit | 626f35c89332059980251f7cdf8e94bc49d68834 (patch) | |
tree | ac9a21a42736c8d42f4ba97dcd97f0b034c2966f /read-cache.c | |
parent | 03b86647722f11ccc321cd7279aa49b811d17cc2 (diff) | |
download | git-626f35c89332059980251f7cdf8e94bc49d68834.tar.gz |
read-cache: relocate and unexport commit_locked_index()
This function is now only used by write_locked_index(). Move it to
read-cache.c (because read-cache.c will need to be aware of
alternate_index_output later) and unexport it.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/read-cache.c b/read-cache.c index 44d4732b65..a7b48a94ce 100644 --- a/read-cache.c +++ b/read-cache.c @@ -36,6 +36,7 @@ static struct cache_entry *refresh_cache_entry(struct cache_entry *ce, #define CACHE_EXT_RESOLVE_UNDO 0x52455543 /* "REUC" */ struct index_state the_index; +static const char *alternate_index_output; static void set_index_entry(struct index_state *istate, int nr, struct cache_entry *ce) { @@ -1875,6 +1876,25 @@ static int do_write_index(struct index_state *istate, int newfd) return 0; } +void set_alternate_index_output(const char *name) +{ + alternate_index_output = name; +} + +static int commit_locked_index(struct lock_file *lk) +{ + if (alternate_index_output) { + if (lk->fd >= 0 && close_lock_file(lk)) + return -1; + if (rename(lk->filename, alternate_index_output)) + return -1; + lk->filename[0] = 0; + return 0; + } else { + return commit_lock_file(lk); + } +} + static int do_write_locked_index(struct index_state *istate, struct lock_file *lock, unsigned flags) { |