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

Re: [PATCH 4/5] branch_get: provide per-branch pushremote pointers

From
Jeff King <peff@peff.net>
Date
Jan 8, 2014, 11:09 UTC
Message-ID
<20140108110919.GA3674@sigill.intra.peff.net>
In-Reply-To
<20140108102707.GA23145@sigill.intra.peff.net>
On Wed, Jan 08, 2014 at 05:27:07AM -0500, Jeff King wrote:
> This patch passes the test suite by itself (with or without that fixup).
> But oddly, it seems to fail t5531 when merged with 'next'. I can't
> figure out why, though. It shouldn't affect any code that doesn't look
> at branch->pushremote.
OK, I figured it out. My patch calls:
  remote_get("origin")

which creates an origin remote, even if one does not exist (it assumes it to be a URL "origin"). Later, when we want to decide if the push is triangular or not, we ask for:

  remote_get(NULL);

which will internally look for a remote called "origin". Before my patch there was not such a remote, and so the push could not be triangular. After my patch, it finds the bogus remote and says "this thing exists, and is not what we are pushing to; therefore the push is triangular".

The solution is that I should not be passing the term "origin" to remote_get, but rather passing NULL and relying on it to figure out the default remote correctly. I.e.:

diff --git a/remote.c b/remote.c
index 8724388..d214fa2 100644
--- a/remote.c
+++ b/remote.c
@@ -1574,7 +1574,7 @@ struct branch *branch_get(const char *name)
 	else if (ret->remote_name)
 		ret->pushremote = remote_get(ret->remote_name);
 	else
-		ret->pushremote = remote_get("origin");
+		ret->pushremote = remote_get(NULL);
 
 	return ret;
 }

-Peff
Previous: Jeff KingNext: Jeff King
Message 18 of 37 in “format-patch: introduce branch.*.forkedFrom”
  1. format-patch: introduce branch.*.forkedFromRamkumar Ramachandra, Jan 7, 2014
  2. Ramkumar RamachandraJan 7, 2014
  3. Jeff KingJan 7, 2014
  4. Junio C HamanoJan 7, 2014
  5. Ramkumar RamachandraJan 7, 2014
  6. Jeff KingJan 7, 2014
  7. Ramkumar RamachandraJan 7, 2014
  8. 0/5 <branch>@{publish} shorthandJeff King, Jan 8, 2014
  9. 1/5 sha1_name: refactor upstream_markJeff King, Jan 8, 2014
  10. 2/5 interpret_branch_name: factor out upstream handlingJeff King, Jan 8, 2014
  11. Ramkumar RamachandraJan 8, 2014
  12. 3/5 branch_get: return early on errorJeff King, Jan 8, 2014
  13. 4/5 branch_get: provide per-branch pushremote pointersJeff King, Jan 8, 2014
  14. Jeff KingJan 8, 2014
  15. t5531: further "matching" fixupsJeff King, Jan 8, 2014
  16. Junio C HamanoJan 10, 2014
  17. Jeff KingJan 11, 2014
  18. Jeff KingJan 8, 2014
  19. 5/5 implement @{publish} shorthandJeff King, Jan 8, 2014
  20. Junio C HamanoJan 8, 2014
  21. Jeff KingJan 9, 2014
  22. Junio C HamanoJan 9, 2014
  23. Philip OakleyJan 9, 2014
  24. Jeff KingJan 9, 2014
  25. Junio C HamanoJan 9, 2014
  26. Junio C HamanoJan 24, 2014
  27. Jeff KingJan 24, 2014
  28. Ramkumar RamachandraJan 24, 2014
  29. Junio C HamanoJan 24, 2014
  30. Philip OakleyFeb 15, 2014
  31. Jeff KingFeb 18, 2014
  32. Johan HerlandFeb 18, 2014
  33. Junio C HamanoFeb 18, 2014
  34. Ramkumar RamachandraJan 8, 2014
  35. Junio C HamanoJan 7, 2014
  36. Ramkumar RamachandraJan 7, 2014
  37. Junio C HamanoJan 7, 2014

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.