mirror of
https://github.com/git/git.git
synced 2025-01-23 16:03:32 +08:00
update-index: do not die too early in a read-only repository.
This delays the error exit from hold_lock_file_for_update() in update-index, so that "update-index --refresh" in a read-only repository can still report what paths are stat-dirty before exiting. Also it makes -q to squelch the error message. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
2b5f9a8c0c
commit
7b802b86a6
@ -486,6 +486,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
int prefix_length = prefix ? strlen(prefix) : 0;
|
||||
char set_executable_bit = 0;
|
||||
unsigned int refresh_flags = 0;
|
||||
int lock_error = 0;
|
||||
struct lock_file *lock_file;
|
||||
|
||||
git_config(git_default_config);
|
||||
@ -493,7 +494,9 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
/* We can't free this memory, it becomes part of a linked list parsed atexit() */
|
||||
lock_file = xcalloc(1, sizeof(struct lock_file));
|
||||
|
||||
newfd = hold_lock_file_for_update(lock_file, get_index_file(), 1);
|
||||
newfd = hold_lock_file_for_update(lock_file, get_index_file(), 0);
|
||||
if (newfd < 0)
|
||||
lock_error = errno;
|
||||
|
||||
entries = read_cache();
|
||||
if (entries < 0)
|
||||
@ -650,6 +653,12 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
|
||||
finish:
|
||||
if (active_cache_changed) {
|
||||
if (newfd < 0) {
|
||||
if (refresh_flags & REFRESH_QUIET)
|
||||
exit(128);
|
||||
die("unable to create '%s.lock': %s",
|
||||
get_index_file(), strerror(lock_error));
|
||||
}
|
||||
if (write_cache(newfd, active_cache, active_nr) ||
|
||||
close(newfd) || commit_lock_file(lock_file))
|
||||
die("Unable to write new index file");
|
||||
|
Loading…
Reference in New Issue
Block a user