*.* -delta
in .gitattributes
, this will lead to the delta packing being disabled. Those. even if only exif data is changed, the file will be copied to the entire repository. Here I have not considered this approach. useradd git su - git git clone git://github.com/sitaramc/gitolite gitolite/install -to $HOME/bin gitolite setup -pk sam.pub
gitolite-admin/conf/gitolite.conf
# Repos to store photos, with name like 'Fotos-2013-03-13' repo Fotos-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] C = sam RW+ = CREATOR RW = WRITERS R = READERS
.gitignore
file containing one line - Thumbs.db
was added to the first .gitignore
. git clone git@my-server:Fotos-2013-03-01 cd 2013-03-01 echo Thumbs.db > .gitignore git add .gitignore git commit -m 'Initial commit' git add <> # 4 46 git commit # 47 git push --all # 23 50
git clone git@my-server:Fotos-2013-03-02 cd 2013-03-02 git config core.bigFileThreshold 50m git config core.looseCompression 0 git config pack.compression 0
core.bigFileThreshold
- disables the search for partial changes (deltas) in files larger than 50 megabytes (by default 512 megabytes)core.looseCompression
- disables the arivator packing of objects in the "loose" state.pack.compression
- disables packaging by the archiver for packed objects. git add <> # 2 16 git commit # 47 git push --all # 7 20 # 2 43 4 37 .
git clone git@my-server:Fotos-2013-03-02 # 46 .
git config --system -l | grep packsize pack.packsizelimit=2g
git config --system pack.packsizelimit 2g
git repack -A
core.bigFileThreshold = 50m # core.looseCompression = 0 # pack.compression = 0 # pack.depth = 10 # 10 ( 50) pack.deltaCacheSize = 128m # - pack.packSizeLimit = 2g # pack.windowMemory = 128m # transfer.unpackLimit = 2147483647 # push N gc.auto = 300 # 300 ,
.gitolite.rc
file .gitolite.rc
enable configuration parameters. Here is a line GIT_CONFIG_KEYS => '.*',
# Repos to store photos, with name like 'Fotos-2013-03-13' repo Fotos-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] C = sam RW+ = CREATOR RW = WRITERS R = READERS config core.bigFileThreshold = 50m # config core.looseCompression = 0 # config pack.compression = 0 # config pack.depth = 10 # 10 ( 50) config pack.deltaCacheSize = 128m # - , config pack.packSizeLimit = 2g # config pack.windowMemory = 128m # config transfer.unpackLimit = 2147483647 # push N config gc.auto = 300 # 300 ,
transfer.unpackLimit
, then git, receiving our push, which contains 3.7 gigabytes, leaves it in one package. Despite the restriction pack.packSizeLimit = 2g
.gc.auto 300
requires that the repository on the server does not accumulate too many loose objects. To " git gc --auto
", when it works it does not hang for a long time. By default, gc.auto = 6700
. git clone git@my-server:Fotos-2013-03-03 cd 2013-03-03
cd repositories/Fotos-2013-03-03 cat config
git config core.bigFileThreshold 50m git config core.looseCompression 0 git config pack.compression 0 # git add <folder> # 2.5 # git commit # 45 # git push --all # 22.5 # 7.5 , 15
# 1. # git://git.kernel.org/pub/scm/git/git.git # 2. (root) yum install gcc yum install openssl-devel yum install curl yum install libcurl-devel yum install expat-devel yum install asciidoc yum install xmlto # 3. make prefix=/usr/local all doc # # make prefix=/usr/local all doc info # "docbook2x-texi: command not found" # 4. 1.7.1, 1.8.2 yum remove git # 1.7.1 make prefix=/usr/local install install-doc install-html /usr/local/bin/git --version git version 1.8.2
git update-server-info
after each update of the repository. This is usually done in hooks / post-update. And even an example of this hook in git contains exactly this command. cp repositories/testing.git/hooks/post-update.sample .gitolite/hooks/common/post-update gitolite setup --hooks-only
/home/git/http-root
. I will add a git->../repositories
. And I will launch a “toy” server from there python -m SimpleHTTPServer > ../server-log.txt 2>&1 &
git clone http://my-server:8000/git/Fotos-2013-03-05.git
git config core.bigFileThreshold 50m
# Not to look for deltas in videogit config core.looseCompression 0
# To not archive loose objectsgit config pack.compression 0
# To not archive packed objectsgit config pack.depth 10
# Use only 10 (instead of 50) objects to search for deltasgit config pack.deltaCacheSize 128m
# Some sort of delta cache may cause swapgit config pack.packSizeLimit 2g
# Limiting the maximum packet sizegit config pack.windowMemory 128m
# Limit on the use of memory when packinggit config transfer.unpackLimit 2147483647
# Leave unpacked push packages only if there are more than N objects in themgit config gc.auto 300
# If more than 300 loose objects are accumulated, packgit remote set-url origin --push git@my-server:Fotos-2013-03-05
git config core.bigFileThreshold 50m
# Not to look for deltas in videogit config core.looseCompression 0
# To not archive loose objectsgit config pack.compression 0
# To not archive packed objectsSource: https://habr.com/ru/post/173453/
All Articles