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

Re: [PATCH 13/17] refs: convert each_reflog_ent_fn to struct object_id

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jan 2, 2017, 15:07 UTC
Message-ID
<49fcccfa-df28-c01b-0e51-1451ecf8e784@alum.mit.edu>
In-Reply-To
<20170101191847.564741-14-sandals@crustytoothpaste.net>
On 01/01/2017 08:18 PM, brian m. carlson wrote:
Show 40 quoted lines
> Make each_reflog_ent_fn take two struct object_id pointers instead of
> two pointers to unsigned char.  Convert the various callbacks to use
> struct object_id as well.  Also, rename fsck_handle_reflog_sha1 to
> fsck_handle_reflog_oid.
> 
> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
>  builtin/fsck.c       | 16 ++++++++--------
>  builtin/merge-base.c |  6 +++---
>  builtin/reflog.c     |  2 +-
>  reflog-walk.c        |  6 +++---
>  refs.c               | 24 ++++++++++++------------
>  refs.h               |  2 +-
>  refs/files-backend.c | 24 ++++++++++++------------
>  revision.c           | 12 ++++++------
>  sha1_name.c          |  2 +-
>  wt-status.c          |  6 +++---
>  10 files changed, 50 insertions(+), 50 deletions(-)
> 
> [...]
> diff --git a/refs/files-backend.c b/refs/files-backend.c
> index f9023939d..3da3141ee 100644
> --- a/refs/files-backend.c
> +++ b/refs/files-backend.c
> @@ -3113,15 +3113,15 @@ static int files_delete_reflog(struct ref_store *ref_store,
>  
>  static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *cb_data)
>  {
> -	unsigned char osha1[20], nsha1[20];
> +	struct object_id ooid, noid;
>  	char *email_end, *message;
>  	unsigned long timestamp;
>  	int tz;
>  
>  	/* old SP new SP name <email> SP time TAB msg LF */
>  	if (sb->len < 83 || sb->buf[sb->len - 1] != '\n' ||
> -	    get_sha1_hex(sb->buf, osha1) || sb->buf[40] != ' ' ||
> -	    get_sha1_hex(sb->buf + 41, nsha1) || sb->buf[81] != ' ' ||
> +	    get_oid_hex(sb->buf, &ooid) || sb->buf[40] != ' ' ||
> +	    get_oid_hex(sb->buf + 41, &noid) || sb->buf[81] != ' ' ||
Some magic numbers above could be converted to use constants.
Show 9 quoted lines
>  	    !(email_end = strchr(sb->buf + 82, '>')) ||
>  	    email_end[1] != ' ' ||
>  	    !(timestamp = strtoul(email_end + 2, &message, 10)) ||
> @@ -3136,7 +3136,7 @@ static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *c
>  		message += 6;
>  	else
>  		message += 7;
> -	return fn(osha1, nsha1, sb->buf + 82, timestamp, tz, message, cb_data);
> +	return fn(&ooid, &noid, sb->buf + 82, timestamp, tz, message, cb_data);
Here, too.
Show 18 quoted lines
>  }
>  
>  static char *find_beginning_of_line(char *bob, char *scan)
> [...]
> @@ -4047,14 +4047,14 @@ static int files_reflog_expire(struct ref_store *ref_store,
>  		 */
>  		int update = (flags & EXPIRE_REFLOGS_UPDATE_REF) &&
>  			!(type & REF_ISSYMREF) &&
> -			!is_null_sha1(cb.last_kept_sha1);
> +			!is_null_oid(&cb.last_kept_oid);
>  
>  		if (close_lock_file(&reflog_lock)) {
>  			status |= error("couldn't write %s: %s", log_file,
>  					strerror(errno));
>  		} else if (update &&
>  			   (write_in_full(get_lock_file_fd(lock->lk),
> -				sha1_to_hex(cb.last_kept_sha1), 40) != 40 ||
> +				oid_to_hex(&cb.last_kept_oid), 40) != 40 ||
More magic numbers above.
>  			    write_str_in_full(get_lock_file_fd(lock->lk), "\n") != 1 ||
>  			    close_ref(lock) < 0)) {
>  			status |= error("couldn't write %s",
> [...]

I thought it would make sense to convert `struct read_ref_at_cb` in `refs.c` to use `struct object_id` at the same time, but I see that would require the interface to `read_ref_at()` to change. I guess it's important to pick your battles in this campaign :-)

Michael
Previous: brian m. carlsonNext: brian m. carlson
Message 16 of 27 in “object_id part 6”
  1. 00/17 object_id part 6brian m. carlson, Jan 1, 2017
  2. 03/17 builtin/describe: convert to struct object_idbrian m. carlson, Jan 1, 2017
  3. 07/17 builtin/branch: convert to struct object_idbrian m. carlson, Jan 1, 2017
  4. 09/17 builtin/merge: convert to struct object_idbrian m. carlson, Jan 1, 2017
  5. Michael HaggertyJan 2, 2017
  6. 11/17 builtin/replace: convert to struct object_idbrian m. carlson, Jan 1, 2017
  7. 16/17 builtin/merge-base: convert to struct object_idbrian m. carlson, Jan 1, 2017
  8. 15/17 Convert object iteration callbacks to struct object_idbrian m. carlson, Jan 1, 2017
  9. 08/17 builtin/clone: convert to struct object_idbrian m. carlson, Jan 1, 2017
  10. 14/17 sha1_file: introduce an nth_packed_object_oid functionbrian m. carlson, Jan 1, 2017
  11. Michael HaggertyJan 2, 2017
  12. Jeff KingJan 2, 2017
  13. Michael HaggertyJan 2, 2017
  14. Jeff KingJan 2, 2017
  15. 13/17 refs: convert each_reflog_ent_fn to struct object_idbrian m. carlson, Jan 1, 2017
  16. Michael HaggertyJan 2, 2017
  17. 10/17 Convert remaining callers of resolve_refdup to object_idbrian m. carlson, Jan 1, 2017
  18. 12/17 reflog-walk: convert struct reflog_info to struct object_idbrian m. carlson, Jan 1, 2017
  19. 17/17 wt-status: convert to struct object_idbrian m. carlson, Jan 1, 2017
  20. 06/17 builtin/grep: convert to struct object_idbrian m. carlson, Jan 1, 2017
  21. 02/17 builtin/diff-tree: convert to struct object_idbrian m. carlson, Jan 1, 2017
  22. 05/17 builtin/fmt-merge-message: convert to struct object_idbrian m. carlson, Jan 1, 2017
  23. 04/17 builtin/fast-export: convert to struct object_idbrian m. carlson, Jan 1, 2017
  24. 01/17 builtin/commit: convert to struct object_idbrian m. carlson, Jan 1, 2017
  25. Michael HaggertyJan 2, 2017
  26. Michael HaggertyJan 2, 2017
  27. Jeff KingJan 3, 2017

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.