Skip to contentSkip to conversation

Make git status print a helpful death message if the disk is full

PATCH In review David Reiss 3 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Make git status print a helpful death message if the disk is full

The old behavior just said that it failed. Now it includes the error information, which makes it much easier to debug.

There is a risk that some failure paths could result in misleading error messages that actually make debugging more difficult.

---
 builtin-commit.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
builtin-commit.c +3 -3
index 4bcce06..3527c73 100644
@@ -256,7 +256,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix)
 		refresh_cache(REFRESH_QUIET);
 		if (write_cache(fd, active_cache, active_nr) ||
 		    close_lock_file(&index_lock))
-			die("unable to write new_index file");
+			die("unable to write new_index file: %s", strerror(errno));
 		commit_style = COMMIT_NORMAL;
 		return index_lock.filename;
 	}
@@ -275,7 +275,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix)
 		refresh_cache(REFRESH_QUIET);
 		if (write_cache(fd, active_cache, active_nr) ||
 		    commit_locked_index(&index_lock))
-			die("unable to write new_index file");
+			die("unable to write new_index file: %s", strerror(errno));
 		commit_style = COMMIT_AS_IS;
 		return get_index_file();
 	}
@@ -318,7 +318,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix)
 	refresh_cache(REFRESH_QUIET);
 	if (write_cache(fd, active_cache, active_nr) ||
 	    close_lock_file(&index_lock))
-		die("unable to write new_index file");
+		die("unable to write new_index file: %s", strerror(errno));
 
 	fd = hold_lock_file_for_update(&false_lock,
 				       git_path("next-index-%"PRIuMAX,
Signature · 1 line
1.6.0.4
#1 lore raw
Quoted 5 lines · David Reiss

The old behavior just said that it failed. Now it includes the error information, which makes it much easier to debug.

There is a risk that some failure paths could result in misleading error messages that actually make debugging more difficult.

[...]

Quoted 4 lines
builtin-commit.c +1 -1
 		if (write_cache(fd, active_cache, active_nr) ||
 		    close_lock_file(&index_lock))
-			die("unable to write new_index file");
+			die("unable to write new_index file: %s", strerror(errno));
Quoted 1 line · Junio C Hamano

Don't we have die_errno() or something since at least 1.6.4?

Yes. And during the conversion, I ignored call sites like this one precisely because I did not (and still do not) have enough knowledge of the index and lock file machinery to decide at what stage I need to read errno to get the *real* error message. You're of course welcome to dig into the code to verify that the above is correct, but I am against blindly hoping that it gives the right error.

Signature · 2 lines
Thomas Rast
trast@{inf,student}.ethz.ch