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

Re: [PATCH 5/5] implement @{publish} shorthand

From
Philip Oakley <philipoakley@iee.org>
Date
Feb 15, 2014, 10:29 UTC
Message-ID
<9D08338A41454F778D03FB2E9F4B7DD1@PhilipOakley>
In-Reply-To
<20140124213521.GA26602@sigill.intra.peff.net>
From: "Jeff King" <peff@peff.net>
Sent: Friday, January 24, 2014 9:35 PM
Show 14 quoted lines
> On Thu, Jan 23, 2014 at 04:16:06PM -0800, Junio C Hamano wrote:
>
>> Jeff King <peff@peff.net> writes:
>>
>> > In a triangular workflow, you may have a distinct
>> > @{upstream} that you pull changes from, but publish by
>> > default (if you typed "git push") to a different remote (or
>> > a different branch on the remote). It may sometimes be
>> > useful to be able to quickly refer to that publishing point
>> > (e.g., to see which changes you have that have not yet been
>> > published).
>> >
>> > This patch introduces the <branch>@{publish} shorthand (or
>> > "@{pu}" to be even shorter).

Just to say that I'm not sure that "publish" is the best word for this concept.

To my mind something is published when some form of editorial oversight has been applied to the works. Such an understanding would better match the 'upstream' concept (e.g. $gmane/240230 jch/9Jan14). This should be distinguished from 'self-publishing', and again from 'vanity-publishing'.

In terms of the triangular work-flow such a 'publish' repo is somewhere between a vanity publishing, and self publishing (depending on the level of code cleanliness;-)

One of the problems, just like the 'staging/index' discussions, is the lack of suitable word for the new working concepts that perfect reproduction has brought.

At best, I considered terms such as "home" repo, "depository" repo and "self" repo, and the many synonyms of publish, store, copy, duplicate, etc. without much success.

Finding a right term or phrase for the concept will be important to ensure some clarity and distinction between the upstream and one's 'home' repo. Perhaps "self-storage" might be borrowed from that new(-ish) industry.

Show 67 quoted lines
>> >                                            It refers to the 
>> > tracking
>> > branch of the remote branch to which you would push if you
>> > were to push the named branch. That's a mouthful to explain,
>> > so here's an example:
>> >
>> >   $ git checkout -b foo origin/master
>> >   $ git config remote.pushdefault github
>> >   $ git push
>> >
>> > Signed-off-by: Jeff King <peff@peff.net>
>> > ---
>>
>> As there is no @{pu} in publish_mark() as far as I can see, and also
>> I found it is a bit unclear what the example in the last paragraph
>> wants to illustrate, I'll reword the above as the following before
>> merging it to 'next'.
>
> Yeah, I think the @{pu} was just a silly omission from the code, 
> though
> I agree after our discussion that we should just stick with 
> "@{publish}"
> for now.
>
> I am not sure why I said "git push" at the end. I would have thought
> that:
>
>  $ git rev-parse --symbolic-full-name @{publish}
>  refs/remotes/github/foo
>
> would have been the right command to demonstrate. The text you 
> suggested
> is fine, though I think you can simply drop the "git push", as it does
> not add anything.
>
> As far as merging it to 'next', I had not really intended it to go 
> that
> far. :) It was more for Ram to use as a base. I find some of the
> refactoring questionable, including:
>
>  1. The meaning of branch->pushremote is subtly different from that of
>     branch->remote. Ram's followup refactoring did a better job of
>     that (but he is missing the patches on top to finish out the
>     feature).
>
>  2. We are duplicating the "where to push" logic here. That should
>     probably be factored out so that "git push" and "@{publish}" use
>     the same logic.
>
> And of course there are no tests or documentation. It might work,
> though.
>
> I don't mind if you want to merge it and do more work in-tree, but I 
> do
> not think it should graduate as-is. And you may want check from Ram 
> that
> he is not in the middle of his own version based on the patches he 
> sent
> earlier, as reworking them on top of mine would probably just be
> needless extra work.
>
> Are you planning on having request-pull use @{publish} as a default? I
> saw you cc'd me on that thread, but I didn't have any opinion besides
> "sounds like you could use it here".
>
> -Peff
> --
Philip 
Previous: Junio C HamanoNext: Jeff King
Message 30 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.