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

Re: [PATCH v6 4/6] builtin/tag: add --format argument for tag -v

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 18, 2017, 18:25 UTC
Message-ID
<xmqqh94wb4y0.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqqmvepb4oj.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 25 quoted lines
> santiago@nyu.edu writes:
>
>> @@ -428,9 +443,12 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
>>  	if (filter.merge_commit)
>>  		die(_("--merged and --no-merged option are only allowed with -l"));
>>  	if (cmdmode == 'd')
>> -		return for_each_tag_name(argv, delete_tag);
>> -	if (cmdmode == 'v')
>> -		return for_each_tag_name(argv, verify_tag);
>> +		return for_each_tag_name(argv, delete_tag, NULL);
>> +	if (cmdmode == 'v') {
>> +		if (format)
>> +			verify_ref_format(format);
>> +		return for_each_tag_name(argv, verify_tag, format);
>> +	}
>
> This triggers:
>
>     builtin/tag.c: In function 'cmd_tag':
>     builtin/tag.c:451:3: error: passing argument 3 of
>     'for_each_tag_name' discards 'const' qualifier from pointer target type [-Werror]
>        return for_each_tag_name(argv, verify_tag, format);
>
> Either for-each-tag-name's new parameter needs to be typed
> correctly, or the type of the "format" variable needs to be updated.

Squashing the following into this commit solves this issue with the former approach. The lines it touches are all from 4/6 and I view all of it as general improvement, including type correctness and code formatting.

diff --git a/builtin/tag.c b/builtin/tag.c
index f81273a85a..fbb85ba3dc 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -66,10 +66,10 @@ static int list_tags(struct ref_filter *filter, struct ref_sorting *sorting, con
 }
 
 typedef int (*each_tag_name_fn)(const char *name, const char *ref,
-				const unsigned char *sha1, void *cb_data);
+				const unsigned char *sha1, const void *cb_data);
 
 static int for_each_tag_name(const char **argv, each_tag_name_fn fn,
-		void *cb_data)
+			     const void *cb_data)
 {
 	const char **p;
 	char ref[PATH_MAX];
@@ -95,7 +95,7 @@ static int for_each_tag_name(const char **argv, each_tag_name_fn fn,
 }
 
 static int delete_tag(const char *name, const char *ref,
-				const unsigned char *sha1, void *cb_data)
+		      const unsigned char *sha1, const void *cb_data)
 {
 	if (delete_ref(ref, sha1, 0))
 		return 1;
@@ -104,10 +104,10 @@ static int delete_tag(const char *name, const char *ref,
 }
 
 static int verify_tag(const char *name, const char *ref,
-				const unsigned char *sha1, void *cb_data)
+		      const unsigned char *sha1, const void *cb_data)
 {
 	int flags;
-	char *fmt_pretty = cb_data;
+	const char *fmt_pretty = cb_data;
 	flags = GPG_VERIFY_VERBOSE;
 
 	if (fmt_pretty)
Previous: Junio C HamanoNext: Jeff King
Message 10 of 20 in “Add --format to tag verification”
  1. 0/6 Add --format to tag verificationsantiago@nyu.edu, Jan 17, 2017
  2. 6/6 t/t7004-tag: Add --format specifier testssantiago@nyu.edu, Jan 17, 2017
  3. 3/6 builtin/verify-tag: add --format to verify-tagsantiago@nyu.edu, Jan 17, 2017
  4. 1/6 gpg-interface,tag: add GPG_VERIFY_OMIT_STATUS flagsantiago@nyu.edu, Jan 17, 2017
  5. 2/6 ref-filter: add function to print single ref_array_itemsantiago@nyu.edu, Jan 17, 2017
  6. 4/6 builtin/tag: add --format argument for tag -vsantiago@nyu.edu, Jan 17, 2017
  7. Junio C HamanoJan 18, 2017
  8. Junio C HamanoJan 18, 2017
  9. Junio C HamanoJan 18, 2017
  10. Junio C HamanoJan 18, 2017
  11. Jeff KingJan 18, 2017
  12. Junio C HamanoJan 18, 2017
  13. Santiago TorresJan 18, 2017
  14. Junio C HamanoJan 18, 2017
  15. Santiago TorresJan 18, 2017
  16. Eric WongJan 18, 2017
  17. Eric WongJan 19, 2017
  18. Junio C HamanoJan 18, 2017
  19. 5/6 t/t7030-verify-tag: Add --format specifier testssantiago@nyu.edu, Jan 17, 2017
  20. Junio C HamanoJan 18, 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.