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

Re: [PATCH 2/2] builtin/push.c: make push_default a static variable

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 17, 2015, 17:45 UTC
Message-ID
<xmqqsie4300s.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20150217104628.GA25978@peff.net>
Jeff King <peff@peff.net> writes:
> If we wanted to implement "@{push}" (or "@{publish}") to mean "the
> tracking ref of the remote ref you would push to if you ran git-push",
> then this is a step in the wrong direction.

Is that because push_default variable needs to be looked at from sha1_name.c when resolving "@{push}", optionally prefixed with the name of the branch? I wonder if that codepath should know the gory details of which ref at the remote the branch is pushed to and which remote-tracking ref we use in the local repository to mirror that remote ref in the first place?

What do we do for the @{upstream} side of the things---it calls branch_get() and when the branch structure is returned, the details have been computed for us so get_upstream_branch() only needs to use the information already computed. The interesting parts of the computation all happen inside remote.c, it seems.

So we probably would do something similar to @{push} side, which would mean that push_default variable and the logic needs to be visible to remote.c if we want to have the helper that is similar to set_merge() that is used from branch_get() to support @{upstream}.

Hmmm, I have a feeling that "with default configuration, where does 'git push' send this branch to?" logic should be contained within the source file whose name has "push" in it and exposed as a helper function, instead of exposing just one of the lowest level knob push_default to outside callers and have them figure things out.

Viewed from that angle, it might be the case that remote.c knows too much about what happens during fetch and pull, but I dunno.

Previous: Jeff KingNext: Jeff King
Message 8 of 29 in “push: allow --follow-tags to be set by config push.followTags”
  1. push: allow --follow-tags to be set by config push.followTagsDave Olszewski, Feb 16, 2015
  2. Jeff KingFeb 16, 2015
  3. 0/2 clean up push config callbacksJeff King, Feb 16, 2015
  4. 1/2 git_push_config: drop cargo-culted wt_status pointerJeff King, Feb 16, 2015
  5. 2/2 builtin/push.c: make push_default a static variableJeff King, Feb 16, 2015
  6. Junio C HamanoFeb 16, 2015
  7. Jeff KingFeb 17, 2015
  8. Junio C HamanoFeb 17, 2015
  9. Jeff KingFeb 17, 2015
  10. Junio C HamanoFeb 17, 2015
  11. Jeff KingFeb 18, 2015
  12. Junio C HamanoFeb 18, 2015
  13. Jeff KingFeb 18, 2015
  14. Junio C HamanoFeb 18, 2015
  15. Jeff KingFeb 18, 2015
  16. 3/2 push: allow --follow-tags to be set by config push.followTagsJeff King, Feb 16, 2015
  17. Junio C HamanoFeb 16, 2015
  18. 0/3 cleaner bit-setting in cmd_pushJeff King, Feb 16, 2015
  19. 1/3 cmd_push: set "atomic" bit directlyJeff King, Feb 16, 2015
  20. 2/3 cmd_push: pass "flags" pointer to config callbackJeff King, Feb 16, 2015
  21. Junio C HamanoFeb 16, 2015
  22. Jeff KingFeb 16, 2015
  23. 3/3 push: allow --follow-tags to be set by config push.followTagsJeff King, Feb 16, 2015
  24. Junio C HamanoMar 14, 2015
  25. Jeff KingMar 14, 2015
  26. Dave OlszewskiMar 14, 2015
  27. Junio C HamanoMar 14, 2015
  28. Junio C HamanoFeb 16, 2015
  29. Jeff KingFeb 16, 2015

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.