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

Re: [PATCH] Documentation: reword --thin description

From
Nicolas Pitre <nico@fluxnic.net>
Date
Feb 10, 2010, 16:07 UTC
Message-ID
<alpine.LFD.2.00.1002101037300.1681@xanadu.home>
In-Reply-To
<1265778851-5397-1-git-send-email-bebarino@gmail.com>
On Tue, 9 Feb 2010, Stephen Boyd wrote:
Show 5 quoted lines
>  --thin::
> -	Spend extra cycles to minimize the number of objects to be sent.
> -	Use it on slower connection.
> +	Spend extra cycles minimizing the number of sent objects.
> +	Use it with a slow connection.
Both the old and the new text are bollocks.

There is no extra cycles involved here. And linking this to a slow connection is misleading.

The point of --thin is to create a pack containing delta objects while excluding the base objects they depend on when those objects are known to exist in the receiver's repository already. Because base objects are usually significantly bigger than delta objects, this results in a large reduction in the amount of data to transfer.

However we don't allow a pack with delta objects referencing base objects to be stored in a Git repository if those base objects are not part of the same pack for robustness reasons. Therefore, when a thin pack is transferred via the git protocol, the receiving end must "fatten" the pack by appending those missing base objects for that pack to be complete and valid. This results in somewhat suboptimal object storage on the receiving end due to some object duplications. Of course a simple gc will fix that.

These days --thin is always the default for a fetch. We used to think that --thin might not be the best thing to do on a push given that the receiving end is typically a central server in that case and keeping storage low on a central server should be preferred. But --thin turned out to be re-enabled by default for pushes by mistake on a few occasions when the affected code has been reworked. No idea what state it is now, and I don't think that makes such a difference on the server in the end.

Nicolas
Previous: Stephen BoydNext: Stephen Boyd
Message 2 of 11 in “Documentation: reword --thin description”
  1. Documentation: reword --thin descriptionStephen Boyd, Feb 10, 2010
  2. Nicolas PitreFeb 10, 2010
  3. Stephen BoydFeb 10, 2010
  4. Junio C HamanoFeb 10, 2010
  5. Nicolas PitreFeb 10, 2010
  6. [PATCHv2] Documentation: describe --thin more accuratelyStephen Boyd, Feb 12, 2010
  7. Junio C HamanoFeb 12, 2010
  8. [PATCHv3] Documentation: describe --thin more accuratelyStephen Boyd, Feb 15, 2010
  9. Junio C HamanoFeb 15, 2010
  10. Stephen BoydFeb 18, 2010
  11. [PATCHv4] Documentation: describe --thin more accuratelyStephen Boyd, Feb 18, 2010

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.