git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jul 21, 2015, 19:50 UTC
Message-ID
<55AEA26A.6050800@alum.mit.edu>
In-Reply-To
<1437493504-3699-2-git-send-email-dturner@twopensource.com>
There's one last error formatting niggle below.
On 07/21/2015 08:44 AM, David Turner wrote:
Show 45 quoted lines
> 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 <sahlberg@google.com>
> Signed-off-by: David Turner <dturner@twopensource.com>
> ---
>  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.
Show 5 quoted lines
> +		free(old_msg);
>  		unlock_ref(lock);
>  		return -1;
>  	}
> [...]
Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
Previous: David TurnerNext: David Turner
Message 3 of 18 in “refs backend preamble”
  1. 0/7 refs backend preambleDavid Turner, Jul 21, 2015
  2. 1/7 refs.c: add err arguments to reflog functionsDavid Turner, Jul 21, 2015
  3. Michael HaggertyJul 21, 2015
  4. 2/7 refs: Break out check for reflog autocreationDavid Turner, Jul 21, 2015
  5. 3/7 refs: new public ref function: safe_create_reflogDavid Turner, Jul 21, 2015
  6. Michael HaggertyJul 21, 2015
  7. 4/7 git-reflog: add exists commandDavid Turner, Jul 21, 2015
  8. Michael HaggertyJul 21, 2015
  9. 5/7 refs: add REF_FORCE_CREATE_REFLOG flagDavid Turner, Jul 21, 2015
  10. 6/7 update-ref and tag: add --create-reflog argDavid Turner, Jul 21, 2015
  11. Junio C HamanoJul 21, 2015
  12. Michael HaggertyJul 21, 2015
  13. Michael HaggertyJul 21, 2015
  14. 7/7 git-stash: use update-ref --create-reflog instead of creating filesDavid Turner, Jul 21, 2015
  15. Michael HaggertyJul 21, 2015
  16. David TurnerJul 21, 2015
  17. Junio C HamanoJul 21, 2015
  18. David TurnerJul 21, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.