libgit2/include/git2/sys
Daniel Rodríguez Troitiño 3793fa9b18 Fix saving remotes with several fetch/push ref specs.
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.
2013-11-01 00:08:52 +01:00
..
commit.h commit: make create_from_oids() accept plain oid 2013-05-05 16:48:34 +02:00
config.h Fix saving remotes with several fetch/push ref specs. 2013-11-01 00:08:52 +01:00
filter.h Bug fixes and cleanups 2013-09-17 09:31:46 -07:00
index.h Clean up some documentation 2013-07-23 09:40:19 +02:00
odb_backend.h indexer: fix thin packs 2013-10-04 15:26:41 +02:00
refdb_backend.h reflog: bring _append and _drop back to the frontend 2013-10-02 06:53:24 +02:00
reflog.h reflog: move the reflog implementation into refdb_fs 2013-10-02 06:53:24 +02:00
refs.h Clean up some documentation 2013-07-23 09:40:19 +02:00
repository.h Rename new fn to git_repository_reinit_filesystem 2013-10-08 16:59:59 -07:00