I haven't found much on thin packs, and the man pages' information is rather cryptic about this. I know it has something to do with slow connections, but what would be a "slow connection"?
What are its pros and cons? When should I use it, when should I not use it?
Note from the git 1.8.5 (Q4 2013):
You would think that disabling the thin option would be with push --no-thin?
You would be wrong until 1.8.5:
"git push --no-thin
" actually disables the "thin pack transfer" optimization.
See commit f7c815c for all the gory details, thanks to "pclouds" -- Nguyễn Thái Ngọc Duy:
--no-thin
From the beginning of push.c
in 755225d, 2006-04-29, "thin
" option was enabled by default but could be turned off with --no-thin
.
Then Shawn changed the default to 0
in favor of saving server resources in a4503a1, 2007-09-09. --no-thin
worked great.
One day later, in 9b28851, Daniel extracted some code from push.c
to create transport.c
. He (probably accidentally) flipped the default value from 0
to 1
in transport_get()
.
From then on
--no-thin
is effectively no-op becausegit-push
still expects the default value to be false and only callstransport_set_option()
when "thin
" variable inpush.c
istrue
(which is unnecessary).
Correct the code to respect--no-thin
by callingtransport_set_option()
in both cases.
receive-pack
learns about--reject-thin-pack-for-testing
option, which only is for testing purposes, hence no document update.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With