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

Re: [PATCH 2/2] send-pack: check atomic push before running GPG

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 15, 2020, 21:40 UTC
Message-ID
<xmqq5z8ezpl8.fsf@gitster.c.googlers.com>
In-Reply-To
<xmqqmu1qzrbo.fsf@gitster.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 30 quoted lines
> I wonder if generate_push_cert() can be told about atomicity of the
> push, though.  There is this loop in the function:
>
> 	int update_seen = 0;
>
> 	...
> 	for (ref = remote_refs; ref; ref = ref->next) {
> 		if (check_to_send_update(ref, args) < 0)
> 			continue;
> 		update_seen = 1;
> 		strbuf_addf(&cert, "%s %s %s\n",
> 			    oid_to_hex(&ref->old_oid),
> 			    oid_to_hex(&ref->new_oid),
> 			    ref->name);
> 	}
> 	if (!update_seen)
> 		goto free_return;
>
> that makes it a no-op without invoking GPG if no update is needed.
> Perhaps we can extend it to
>
> 	int failure_seen = 0;
>         int update_seen = 0;
>
> 	...
> 	for (ref = remote_refs; ref; ref = ref->next) {
> 		switch (check_to_send_update(ref, args)) {
> 		case CHECK_REF_STATUS_REJECTED:
> 			failure_seen = 1;
> 			break;

This "break" should be "continue" here. We want to exclude the ones that we are not going to send to the other side from the push certificate (in non-atomic case).

Show 19 quoted lines
> 		case 0:
> 			update_seen = 1;
> 			break;
>               case REF_STATUS_UPTODATE:
> 			break; /* OK */
> 		default:
> 			BUG("should not happen");
> 		}
> 		strbuf_addf(&cert, "%s %s %s\n",
> 			    oid_to_hex(&ref->old_oid),
> 			    oid_to_hex(&ref->new_oid),
> 			    ref->name);
> 	}
> 	if (!update_seen || (use_atomic && failure_seen))
> 		goto free_return;
>
> to make it also a no-op when any local rejection under atomic mode?
>
> Thanks.
Previous: Junio C HamanoNext: Jiang Xin
Message 4 of 17 in “t5534: new test case for atomic signed push”
  1. 1/2 t5534: new test case for atomic signed pushHan Xin, Sep 15, 2020
  2. 2/2 send-pack: check atomic push before running GPGHan Xin, Sep 15, 2020
  3. Junio C HamanoSep 15, 2020
  4. Junio C HamanoSep 15, 2020
  5. Jiang XinSep 16, 2020
  6. Junio C HamanoSep 16, 2020
  7. 韩欣(炽天)Sep 16, 2020
  8. Jiang XinSep 16, 2020
  9. Junio C HamanoSep 16, 2020
  10. send-pack: run GPG after atomic push checkingHan Xin, Sep 18, 2020
  11. Junio C HamanoSep 19, 2020
  12. send-pack: run GPG after atomic push checkingHan Xin, Sep 19, 2020
  13. Junio C HamanoSep 19, 2020
  14. send-pack: run GPG after atomic push checkingHan Xin, Sep 20, 2020
  15. Junio C HamanoSep 15, 2020
  16. brian m. carlsonSep 16, 2020
  17. Junio C HamanoSep 15, 2020

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.