mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-07 21:56:44 +00:00
Propagate ELOCKED error when updating the config
This commit is contained in:
parent
3ae66ef1af
commit
e8162fd091
@ -385,10 +385,10 @@ static int config_set(git_config_backend *cfg, const char *name, const char *val
|
|||||||
GITERR_CHECK_ALLOC(esc_value);
|
GITERR_CHECK_ALLOC(esc_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config_write(b, key, NULL, esc_value) < 0) {
|
if ((ret = config_write(b, key, NULL, esc_value)) < 0) {
|
||||||
git__free(esc_value);
|
git__free(esc_value);
|
||||||
cvar_free(var);
|
cvar_free(var);
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
git__free(esc_value);
|
git__free(esc_value);
|
||||||
@ -1210,8 +1210,8 @@ static int config_write(diskfile_backend *cfg, const char *key, const regex_t *p
|
|||||||
write_start = data_start;
|
write_start = data_start;
|
||||||
|
|
||||||
/* Lock the file */
|
/* Lock the file */
|
||||||
if (git_filebuf_open(&file, cfg->file_path, 0, GIT_CONFIG_FILE_MODE) < 0)
|
if ((result = git_filebuf_open(&file, cfg->file_path, 0, GIT_CONFIG_FILE_MODE)) < 0)
|
||||||
return -1;
|
return result;
|
||||||
|
|
||||||
skip_bom(reader);
|
skip_bom(reader);
|
||||||
ldot = strrchr(key, '.');
|
ldot = strrchr(key, '.');
|
||||||
|
@ -259,3 +259,16 @@ void test_config_write__can_set_an_empty_value(void)
|
|||||||
git_config_free(config);
|
git_config_free(config);
|
||||||
cl_git_sandbox_cleanup();
|
cl_git_sandbox_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_config_write__updating_a_locked_config_file_returns_ELOCKED(void)
|
||||||
|
{
|
||||||
|
git_config *cfg;
|
||||||
|
|
||||||
|
cl_git_pass(git_config_open_ondisk(&cfg, "config9"));
|
||||||
|
|
||||||
|
cl_git_mkfile("config9.lock", "[core]\n");
|
||||||
|
|
||||||
|
cl_git_fail_with(git_config_set_string(cfg, "core.dump", "boom"), GIT_ELOCKED);
|
||||||
|
|
||||||
|
git_config_free(cfg);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user