Thread (13 messages) 13 messages, 2 authors, 2016-06-15

Re: [PATCH v9 1/7] refs.c: add err arguments to reflog functions

From: Michael Haggerty <hidden>
Date: 2016-06-15 23:05:50

There's one last error formatting niggle below.

On 07/21/2015 08:44 AM, David Turner wrote:
quoted hunk ↗ jump to hunk
Add an err argument to log_ref_setup that can explain the reason
for a failure. This then eliminates the need to manage errno through
this function since we can just add strerror(errno) to the err string
when meaningful. No callers relied on errno from this function for
anything else than the error message.

Also add err arguments to private functions write_ref_to_lockfile,
log_ref_write_1, commit_ref_update. This again eliminates the need to
manage errno in these functions.

Some error messages are slightly reordered.

Update of a patch by Ronnie Sahlberg.

Signed-off-by: Ronnie Sahlberg <redacted>
Signed-off-by: David Turner <redacted>
---
 builtin/checkout.c |   8 ++--
 refs.c             | 129 ++++++++++++++++++++++++++++++-----------------------
 refs.h             |   4 +-
 3 files changed, 81 insertions(+), 60 deletions(-)

[...]
diff --git a/refs.c b/refs.c
index fb568d7..f090720 100644
--- a/refs.c
+++ b/refs.c
[...]
@@ -3288,12 +3288,17 @@ static int write_ref_to_lockfile(struct ref_lock *lock,
  * necessary, using the specified lockmsg (which can be NULL).
  */
 static int commit_ref_update(struct ref_lock *lock,
-			     const unsigned char *sha1, const char *logmsg)
+			     const unsigned char *sha1, const char *logmsg,
+			     struct strbuf *err)
 {
 	clear_loose_ref_cache(&ref_cache);
-	if (log_ref_write(lock->ref_name, lock->old_oid.hash, sha1, logmsg) < 0 ||
+	if (log_ref_write(lock->ref_name, lock->old_oid.hash, sha1, logmsg, err) < 0 ||
 	    (strcmp(lock->ref_name, lock->orig_ref_name) &&
-	     log_ref_write(lock->orig_ref_name, lock->old_oid.hash, sha1, logmsg) < 0)) {
+	     log_ref_write(lock->orig_ref_name, lock->old_oid.hash, sha1, logmsg, err) < 0)) {
+		char *old_msg = strbuf_detach(err, NULL);
+		strbuf_addf(err, "Cannot update the ref '%s': '%s'",
+			    lock->ref_name, old_msg);
The above error message has unnecessary quotes around old_msg.
+		free(old_msg);
 		unlock_ref(lock);
 		return -1;
 	}
[...]
Michael

-- 
Michael Haggerty
mhagger@alum.mit.edu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help