]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jt/config-lock-timeout' into next
authorJunio C Hamano <gitster@pobox.com>
Fri, 24 Jul 2026 21:46:47 +0000 (14:46 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 Jul 2026 21:46:47 +0000 (14:46 -0700)
Configuration file locking has been updated to retry for a short
period, avoiding failures when multiple processes attempt to update
the configuration simultaneously.

* jt/config-lock-timeout:
  config: retry acquiring config.lock, configurable via core.configLockTimeout

1  2 
config.c
t/t1300-config.sh
t/t3200-branch.sh
t/t5505-remote.sh

diff --cc config.c
index da2db057a22b88b7c07ced098bb81b232254d8de,ac9563781bfb219bb5b81c1c39b8ea0425642308..1bdd702e7a3969aeb0a1e05f52e55871e7ecd9ad
+++ b/config.c
@@@ -3037,7 -3004,8 +3055,8 @@@ int repo_config_set_multivar_in_file_ge
         * The lock serves a purpose in addition to locking: the new
         * contents of .git/config will be written into it.
         */
-       fd = repo_hold_lock_file_for_update(r, &lock, config_filename, 0);
 -      fd = hold_lock_file_for_update_timeout(&lock, config_filename, 0,
 -                                             config_lock_timeout_ms(r));
++      fd = repo_hold_lock_file_for_update_timeout(r, &lock, config_filename, 0,
++                                                  config_lock_timeout_ms(r));
        if (fd < 0) {
                error_errno(_("could not lock config file %s"), config_filename);
                ret = CONFIG_NO_LOCK;
@@@ -3382,7 -3350,8 +3401,9 @@@ static int repo_config_copy_or_rename_s
        if (!config_filename)
                config_filename = filename_buf = repo_git_path(r, "config");
  
-       out_fd = repo_hold_lock_file_for_update(r, &lock, config_filename, 0);
 -      out_fd = hold_lock_file_for_update_timeout(&lock, config_filename, 0,
 -                                                 config_lock_timeout_ms(r));
++      out_fd = repo_hold_lock_file_for_update_timeout(r, &lock,
++                                                      config_filename, 0,
++                                                      config_lock_timeout_ms(r));
        if (out_fd < 0) {
                ret = error(_("could not lock config file %s"), config_filename);
                goto out;
Simple merge
Simple merge
Simple merge