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

Re: shallow&single-branch clone?

From
Jeff King <peff@peff.net>
Date
Oct 21, 2011, 01:22 UTC
Message-ID
<20111021012259.GA13421@sigill.intra.peff.net>
In-Reply-To
<4E9ED108.5020505@native-instruments.de>
On Wed, Oct 19, 2011 at 03:30:48PM +0200, Norbert Nemec wrote:
Show 10 quoted lines
> Truncating history is done by 'git clone --depth 1', there is not way
> to restrict 'clone' to a single branch (the --branch option still
> downloads all branches and only then chooses something other than
> HEAD as active branch).
> 
> The manual sequence
> 	git init
> 	git remote add -t master -f origin URL
> 	git checkout
> allows a clone of a single branch but offers no means to truncate history.
You can do:
  git init
  git remote add -t master origin URL
  git fetch --depth=1
  git checkout
But obviously that's not as nice as an option to clone.
> The least intrusive solution would be an additional option to clone,
> perhaps '--branch-only'.

Agreed, that would be better. We might want to make it more flexible, like:

  git clone --fetch=branch1 --fetch=branch2
and then by default choose "-b branch1" since it was mentioned first.
> More user friendly, this options should be on by default when --depth
> is set. After all: who would expect branches to be cloned when the
> history is explicitely truncated?

Yeah, that probably makes sense. If the branches are related, it's probably not saving much, but if you have unrelated branches, it would be a nice convenience. OTOH, how would you tell git "no, I really do want the tip of every branch"?

-Peff
Previous: Norbert Nemec
Message 2 of 2 in “shallow&single-branch clone?”
  1. Norbert NemecOct 19, 2011
  2. Jeff KingOct 21, 2011

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.