What are git's thin packs? -
I have not found much on thin packs, and man page information is secret about this. I know that this slow connection What to do, but what will be the "slow connection"?
What are its professional and opposition? When should I use it, when should I not use it?
For records, states:
create "thin" pack It is possible for to record the items in a deltified form based on the items contained in the pack to reduce network traffic .
The achievers are hoping to be present at the end and for those packs they should be included in the pack so that they can be self contained and indexable
This will complete the - Thin
option:
Spend extra chunks to reduce the number of thin transit objects and send it over a slow connection Meaning of being used
In this case a "slow" Network "is a connection where you probably want to send at least the data. In
, a little more (in reference to the use of GIT GC on the remote side as well as the remote side):
GET delitification Only in the pack file
But when you push through SSH, GIT will generate a packet file, and not in the other side, and these packs are thin packs, so they also have Delta ... <
But the remote side then adds sockets on the basis of those thin packs, making them standalone.
more accurate:
on the local side:
git-commit
makes loose (compressed, but not Deltified objectsgit-gc
packs and deltifiesOn the remote side (for Smart Protocol, i.e. git and ssh):
Git creates thin pack, Deltified; / Remote side creates a thick / self packaged by adding either base objects (object + delatas) to GIT or by cutting the pack into loose object (object).
You need GIT-GC on the remote server deltify completely on the remote side but the transfer is completely deltified.On the remote side (dumb protocol, i.e., for rsync and http):
git finds the required pack and transfers them whole.
The situation may be transferred to the local side, but the git is actually more than necessary because it is transferred to the full pack.
The problem above was related to the use of git (or non-usage) push-thin : when do you use it or not?
On exit, you need to carefully manage your binary objects if you want to take advantage of those thin packets of GIT:
- use the old (just old blob
- commit
- push
- create a new filename by copying the original copy
- committed
- Push.
If you skip the middle push in step 3, neither "
git push
", nor "git push --thin
"It may feel that this new file can be" enlarged "on the remote side (even if the git-gcult associate squashes it in the pack).In fact, the way the thin pack works is to store the delta against the base object which is not included in the pack.
Objects that are not included but used because the Delta base is currently only the previous version of the file which is part of the update / pushed / brought.
In other words, to work for it should be the previous version under the same name. Working - Otherwise, if there are thousands of files to test against previous deficiencies, then it does not scale.Those thin packs were designed for different versions of the same file, which is not a separate file with nearly identical content. This issue is to decide what should be added to the list of objects in Delta base. Currently only those items are considered as the same path to be modified.
Comments
Post a Comment