From: Junio C Hamano Date: Mon, 27 Jan 2014 18:45:33 +0000 (-0800) Subject: Merge branch 'mh/safe-create-leading-directories' X-Git-Tag: v1.9-rc1~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d0956cfa8ef8b3668ea6adc94b27f5dcdc93bde0 Merge branch 'mh/safe-create-leading-directories' Code clean-up and protection against concurrent write access to the ref namespace. * mh/safe-create-leading-directories: rename_tmp_log(): on SCLD_VANISHED, retry rename_tmp_log(): limit the number of remote_empty_directories() attempts rename_tmp_log(): handle a possible mkdir/rmdir race rename_ref(): extract function rename_tmp_log() remove_dir_recurse(): handle disappearing files and directories remove_dir_recurse(): tighten condition for removing unreadable dir lock_ref_sha1_basic(): if locking fails with ENOENT, retry lock_ref_sha1_basic(): on SCLD_VANISHED, retry safe_create_leading_directories(): add new error value SCLD_VANISHED cmd_init_db(): when creating directories, handle errors conservatively safe_create_leading_directories(): introduce enum for return values safe_create_leading_directories(): always restore slash at end of loop safe_create_leading_directories(): split on first of multiple slashes safe_create_leading_directories(): rename local variable safe_create_leading_directories(): add explicit "slash" pointer safe_create_leading_directories(): reduce scope of local variable safe_create_leading_directories(): fix format of "if" chaining --- d0956cfa8ef8b3668ea6adc94b27f5dcdc93bde0