Name |
Last commit
|
Last update |
---|---|---|
.. | ||
add.c | ||
backend.c | ||
config_helpers.c | ||
config_helpers.h | ||
configlevel.c | ||
global.c | ||
include.c | ||
multivar.c | ||
new.c | ||
read.c | ||
refresh.c | ||
stress.c | ||
validkeyname.c | ||
write.c |
At some moment git_config_delete_entry lost the ability to delete one entry of a multivar configuration. The moment you had more than one fetch or push ref spec for a remote you will not be able to save that remote anymore. The changes in network::remote::remotes::save show that problem. I needed to create a new git_config_delete_multivar because I was not able to remove one or several entries of a multivar config with the current API. Several tries modifying how git_config_set_multivar(..., NULL) behaved were not successful. git_config_delete_multivar is very similar to git_config_set_multivar, and delegates into config_delete_multivar of config_file. This function search for the cvar_t that will be deleted, storing them in a temporal array, and rebuilding the linked list. After calling config_write to delete the entries, the cvar_t stored in the temporal array are freed. There is a little fix in config_write, it avoids an infinite loop when using a regular expression (case for the multivars). This error was found by the test network::remote::remotes::tagopt.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
add.c | Loading commit data... | |
backend.c | Loading commit data... | |
config_helpers.c | Loading commit data... | |
config_helpers.h | Loading commit data... | |
configlevel.c | Loading commit data... | |
global.c | Loading commit data... | |
include.c | Loading commit data... | |
multivar.c | Loading commit data... | |
new.c | Loading commit data... | |
read.c | Loading commit data... | |
refresh.c | Loading commit data... | |
stress.c | Loading commit data... | |
validkeyname.c | Loading commit data... | |
write.c | Loading commit data... |