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

Re: [PATCH 1/3] send-pack: track errors for each ref

From
Jeff King <peff@peff.net>
Date
Nov 18, 2007, 00:13 UTC
Message-ID
<20071118001312.GB4000@sigill.intra.peff.net>
In-Reply-To
<Pine.LNX.4.64.0711171217200.12193@iabervon.org>
On Sat, Nov 17, 2007 at 01:05:35PM -0500, Daniel Barkalow wrote:
Show 7 quoted lines
> > +static void print_ref_status(char flag, const char *summary, struct ref *to, struct ref *from, const char *msg)
> 
> Isn't "from" always "to->peer_ref"? It'd be nice to make this function 
> unable to print something different from what we actually did. (Actually 
> it might be "to->deletion ? NULL : to->peer_ref", but that would also be 
> better to have as an explicit feature of how you display "to", rather than 
> implicit in the set of callers.

Yes, I also considered changing "from" to "show peer" which might have been nicer. I am not opposed to such a cleanup, but again, not sure if it worth it now that we are merged.

Show 9 quoted lines
> > +static const char *status_abbrev(unsigned char sha1[20])
> > +{
> > +	const char *abbrev;
> > +	abbrev = find_unique_abbrev(sha1, DEFAULT_ABBREV);
> > +	return abbrev ? abbrev : sha1_to_hex(sha1);
> > +}
> 
> Maybe we should have a find_unique_abbrev()-like function that doesn't 
> mind if the requested object doesn't exist?

I agree, though I don't feel qualified to comment on what other places that should be used (I was a bit surprised to find out that find_unique_abbrev ever returned NULL, but changing the semantics at this point is probably going to cause some subtle bug).

> > +		char quickref[83];
> Shouldn't this be 40 + 3 + 40 + 1?

Oops, yes. I think it should be hard to trigger (both commits would have to either not be in your db, or not be unique to 40 digits). But clearly it should be fixed, and it looks like Junio did.

It was a stupid cut-and-paste from Nicolas' fetch code, but it looks like he correctly allocates 84 bytes for the "..." case.

Show 12 quoted lines
> > +		char type;
> > +		const char *msg;
> > +
> > +		strcpy(quickref, status_abbrev(ref->old_sha1));
> > +		if (ref->nonfastforward) {
> > +			strcat(quickref, "...");
> > +			type = '+';
> > +			msg = " (forced update)";
> > +		}
> > +		else {
> 
> Coding style, IIRC.
Sorry, I don't see the style nit you're mentioning here.
-Peff
Previous: Daniel BarkalowNext: Junio C Hamano
Message 5 of 20 in “tracking per-ref errors on push”
  1. 0/3 tracking per-ref errors on pushJeff King, Nov 17, 2007
  2. 1/3 send-pack: track errors for each refJeff King, Nov 17, 2007
  3. Alex RiesenNov 17, 2007
  4. Daniel BarkalowNov 17, 2007
  5. Jeff KingNov 18, 2007
  6. Junio C HamanoNov 18, 2007
  7. Jeff KingNov 18, 2007
  8. Junio C HamanoNov 17, 2007
  9. Jeff KingNov 18, 2007
  10. 2/3 send-pack: check ref->status before updating tracking refsJeff King, Nov 17, 2007
  11. Alex RiesenNov 17, 2007
  12. Jeff KingNov 17, 2007
  13. Daniel BarkalowNov 17, 2007
  14. 3/3 send-pack: assign remote errors to each refJeff King, Nov 17, 2007
  15. Daniel BarkalowNov 17, 2007
  16. Jeff KingNov 18, 2007
  17. Junio C HamanoNov 18, 2007
  18. Jeff KingNov 18, 2007
  19. Junio C HamanoNov 18, 2007
  20. Jeff KingNov 18, 2007

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.