*.* -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-05git 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