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

Re: [PATCH v3 5/6] transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushed

From
Jeff King <peff@peff.net>
Date
Jan 5, 2010, 06:32 UTC
Message-ID
<20100105063253.GA19368@coredump.intra.peff.net>
In-Reply-To
<20091224154445.ad4b7a01.rctay89@gmail.com>
On Thu, Dec 24, 2009 at 03:44:45PM +0800, Tay Ray Chuan wrote:
Show 14 quoted lines
> -		ref->status = status;
> -		ref->remote_status = msg;
> +		switch (ref->status) {
> +		case REF_STATUS_REJECT_NONFASTFORWARD:
> +		case REF_STATUS_UPTODATE:
> +			/*
> +			 * Earlier, the ref was marked not to be pushed, so ignore what
> +			 * the remote helper said about the ref.
> +			 */
> +			continue;
> +		default:
> +			ref->status = status;
> +			ref->remote_status = msg;
> +		}

It seems like this should be checking for REF_STATUS_NONE explicitly instead of trying to enumerate the reasons we might not have tried to push. Shouldn't helpers _only_ be pushing REF_STATUS_NONE refs?

I think right now the two cases are equivalent, since non-ff and uptodate are the only two states set before the helper is invoked. But we have discussed in the past (and I still have a patch floating around for) a REF_STATUS_REWIND which would treat strict rewinds differently (silently ignoring them instead of making an error). Explicitly checking REF_STATUS_NONE future-proofs against new states being added.

-Peff
Previous: Tay Ray ChuanNext: Tay Ray Chuan
Message 16 of 25 in “refactor ref status logic for pushing”
  1. 1/3 refactor ref status logic for pushingTay Ray Chuan, Dec 4, 2009
  2. 0/3 transport: catch non-fast-forwardsTay Ray Chuan, Dec 8, 2009
  3. 1/3 refactor ref status logic for pushingTay Ray Chuan, Dec 8, 2009
  4. Daniel BarkalowDec 8, 2009
  5. Tay Ray ChuanDec 9, 2009
  6. Daniel BarkalowDec 9, 2009
  7. 2/3 transport.c::transport_push(): make ref status affect return valueTay Ray Chuan, Dec 8, 2009
  8. 3/3 transport-helper.c::push_refs(): emit "no refs" error messageTay Ray Chuan, Dec 8, 2009
  9. 0/6 transport: catch non-fast forwardsTay Ray Chuan, Dec 24, 2009
  10. 1/6 t5541-http-push.sh: add tests for non-fast-forward pushesTay Ray Chuan, Dec 24, 2009
  11. 2/6 t5541-http-push.sh: add test for unmatched, non-fast-forwarded refsTay Ray Chuan, Dec 24, 2009
  12. 3/6 refactor ref status logic for pushingTay Ray Chuan, Dec 24, 2009
  13. 4/6 transport.c::transport_push(): make ref status affect return valueTay Ray Chuan, Dec 24, 2009
  14. 5/6 transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushedTay Ray Chuan, Dec 24, 2009
  15. 6/6 transport-helper.c::push_refs(): emit "no refs" error messageTay Ray Chuan, Dec 24, 2009
  16. Jeff KingJan 5, 2010
  17. Tay Ray ChuanJan 5, 2010
  18. Jeff KingJan 6, 2010
  19. Tay Ray ChuanJan 6, 2010
  20. Tay Ray ChuanJan 8, 2010
  21. Jeff KingJan 5, 2010
  22. Tay Ray ChuanJan 5, 2010
  23. Jeff KingJan 6, 2010
  24. Junio C HamanoJan 6, 2010
  25. Tay Ray ChuanJan 6, 2010

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.