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

Re: [PATCH 0/4] Support triangular workflows

From
MBMarc Branchaud <mbranchaud@xiplink.com>
Date
Mar 18, 2013, 15:55 UTC
Message-ID
<5147390C.9060907@xiplink.com>
In-Reply-To
<20130318142526.GA23075@sigill.intra.peff.net>
On 13-03-18 10:25 AM, Jeff King wrote:
Show 21 quoted lines
> On Mon, Mar 18, 2013 at 06:46:11PM +0530, Ramkumar Ramachandra wrote:
> 
>> I've put off implementing remote.default corresponding to
>> remote.pushdefault, as Jeff suggested in [1], because it's currently
>> not an itch; apart from the obvious symmetry, I don't know what
>> purpose it serves: why would anyone want to fetch from a remote other
>> than origin by default?  Why wouldn't they simply swap that remote's
>> name with "origin"?  However, it's a nice thing to have for symmetry,
>> and it should be trivial to implement: any interested person is
>> welcome to pick it up.
> 
> Yeah, I agree that it does not have much point, aside from people who
> have an unreasonable aversion to using the word "origin". There was a
> series posted last summer to add remote.default:
> 
>   http://article.gmane.org/gmane.comp.version-control.git/201065
> 
> It ended up stalled and never got merged. I think the main impetus was
> that "git clone -o foo" should leave "foo" in remote.default (of course,
> that still leaves unanswered why anyone would really want to use "-o
> foo" in the first place).

I'm the guy who dropped the ball on that series. I still intend to pick it up (honest!) but I just haven't had the time.

The impetus was originally getting relative submodule paths to work on detached HEADs [1]. My patch for that doesn't work when someone does "clone -o", because various parts of git assume there's a remote named "origin". The discussion led to the idea of using the remote name specified during the initial clone, and implementing that as a remote.default config value.

As for why "clone -o" exists, it was added in v1.1.0:
    commit e6c310fd0d7384973efc6b1d5999a5e8a5b2f3bd
    Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Date:   Thu Dec 22 23:37:24 2005 +0100
    git-clone: Support changing the origin branch with -o
    Earlier, git-clone stored upstream's master in the branch named 'origin',
    possibly overwriting an existing such branch.
    Now you can change it by calling git-clone with '-o <other_name>'.
    [jc: added ref format check, subdirectory safety, documentation
     and usage string.]
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>

It sounds like the original need for the -o option is no longer pertinent. OTOH, for folks who deal with several remotes it's nice to name them, and "origin" isn't necessarily a useful or intuitive name.

		M.
[1] http://thread.gmane.org/gmane.comp.version-control.git/200145
Previous: Jeff King
Message 16 of 16 in “Support triangular workflows”
  1. 0/4 Support triangular workflowsRamkumar Ramachandra, Mar 18, 2013
  2. 1/4 remote.c: simply a bit of code using git_config_string()Ramkumar Ramachandra, Mar 18, 2013
  3. Eric SunshineMar 18, 2013
  4. 2/4 remote.c: introduce a way to have different remotes for fetch/ pushRamkumar Ramachandra, Mar 18, 2013
  5. Jeff KingMar 18, 2013
  6. Ramkumar RamachandraMar 18, 2013
  7. Jeff KingMar 18, 2013
  8. Eric SunshineMar 18, 2013
  9. 3/4 remote.c: introduce remote.pushdefaultRamkumar Ramachandra, Mar 18, 2013
  10. Eric SunshineMar 18, 2013
  11. 4/4 remote.c: introduce branch.<name>.pushremoteRamkumar Ramachandra, Mar 18, 2013
  12. Eric SunshineMar 18, 2013
  13. Jeff KingMar 18, 2013
  14. Ramkumar RamachandraMar 18, 2013
  15. Jeff KingMar 18, 2013
  16. Marc BranchaudMar 18, 2013

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.