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

Re: [PATCH] add --remote option to git-clone.

From
Junio C Hamano <junkio@cox.net>
Date
Feb 3, 2007, 03:00 UTC
Message-ID
<7vmz3wdjxu.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.63.0702021146440.22628@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 10 quoted lines
> On Thu, 1 Feb 2007, Junio C Hamano wrote:
> ...
>> I am not against the general idea of tracking a subset of
>> branches, but issues include:
>>
>> [explains why git-remote is a better place for this]
>
> Seeing your patch to git-remote, it feels more natural, too. Especially 
> since that (or which? :-D) does not give the term "clone" a 
> Microsoft'esque completely new meaning.

I did not find anything MS'esque in what MST did in his patch, though. I think it is a reasonable thing to ask for from a clone. For example, if you are coming from CVS or have used Cogito, cloning a single branch is not an unusual operation at all.

The real point of my 'remote add -f -t -m' patch is that I think we are much better off to do it in a bottom up way, by having a tool that can be used in any repository first. Then we could even rewrite 'git clone' along these lines:

	#/bin/sh
	track="*" ;# command line parameter to override...
	... decide what $name to use ...
	mkdir "$name"
	cd "$name"
	git init-db
        git remote add -f -t "$track" origin $url
	git branch -f master remotes/origin/master

Of course you would need to deal with -n, --bare and stuff, but that is a minor detail.

While I am talking about post 1.5.0 git-clone changes, one thing I've always hated about git-clone is that the cloner always has to guess where the HEAD pointer at the other side points at. This comes from a shortcoming in the fetch-pack protocol (it simply does not tell). A stupid consequence of this is that cloning over dumb protocols also have to guess, although they are _capable_ of letting the cloner know this information.

I think the logic to decide where to point remotes/$origin/HEAD to should be moved to "git-remote add -m" when we eventually rewrite "git-clone" to use "git-remote add -f". And while we would do so, we can make a trivial extension to fetch-pack protocol to carry the HEAD symref information. All will be good once that happens.

Previous: Johannes SchindelinNext: Jakub Narebski
Message 12 of 20 in “add --remote option to git-clone.”
  1. add --remote option to git-clone.Michael S. Tsirkin, Feb 1, 2007
  2. J. Bruce FieldsFeb 1, 2007
  3. Shawn O. PearceFeb 1, 2007
  4. Michael S. TsirkinFeb 1, 2007
  5. Yann DirsonFeb 1, 2007
  6. Johannes SchindelinFeb 1, 2007
  7. Shawn O. PearceFeb 1, 2007
  8. Michael S. TsirkinFeb 1, 2007
  9. Johannes SchindelinFeb 1, 2007
  10. Junio C HamanoFeb 2, 2007
  11. Johannes SchindelinFeb 2, 2007
  12. Junio C HamanoFeb 3, 2007
  13. Jakub NarebskiFeb 3, 2007
  14. Junio C HamanoFeb 3, 2007
  15. Johannes SchindelinFeb 5, 2007
  16. Junio C HamanoFeb 5, 2007
  17. Linus TorvaldsFeb 5, 2007
  18. Michael S. TsirkinFeb 5, 2007
  19. Shawn O. PearceFeb 5, 2007
  20. Michael S. TsirkinFeb 5, 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.