рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрдХрдбрд╝ред рдЧрд┐рдЯ рдореЗрдВ рдмрдбрд╝реЗ рднрдВрдбрд╛рд░

рдЖрдкрдХреЗ рд╕рднреА рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЖрдк рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ?


  1. рдПрдХ рд╣реАрдк (DCIM) рдореЗрдВ рддрд╕реНрд╡реАрд░реЗрдВ рдбрдВрдк рдХрд░реЗрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛред
  2. рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдлрд╝реЛрдЯреЛ рдлреЗрдВрдХреЗрдВ, рдФрд░ рджреВрд╕рд░реЗ рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
  3. рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдлрд╝реЛрдЯреЛ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  4. рддрд╛рдХрд┐ рдЖрдк рдлрд╝реЛрдЯреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВред
  5. рд╕рдВрдкрд╛рджрди рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЬреАрдЖрдИрдЯреА рдХреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдкрд░рд┐рдгрд╛рдореА рд╡рд┐рдиреНрдпрд╛рд╕, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ


рдпрджрд┐ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдЧреНрд░рд╛рдл рджреЗрдЦреЗрдВред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдореБрдЭреЗ рдЖрд░реНрдХрд╛рдЗрд╡рд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдРрдб рдФрд░ рдХрдорд┐рдЯрдореЗрдВрдЯ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреИрдХрд┐рдВрдЧ / рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреА рдиреАрддрд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓реЛрдирд┐рдВрдЧ рдзреАрдореА рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП "рдбрдВрдм" http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ 1.7.1 рдореЗрдВ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдХрдореА рд╣реИред
рдЕрднреА рднреА рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ *.* -delta in .gitattributes , рдпрд╣ рдбреЗрд▓реНрдЯрд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрдЧрд╛ред рдпрд╛рдиреА рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдХреЗрд╡рд▓ рдПрдХреНрд╕рдлрд╝ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдлреЛрдЯреЛрдЬ рдХреЗ рд▓рд┐рдП рдЧреЗрдВрдж

рд╡рд┐рд╡рд░рдг


рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЬрд┐рдУрд▓рд╛рдЗрдЯ рдХреЛ рдЪреБрдирд╛ред рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ, рдХреЗрд╡рд▓ рдЬрдВрдЧрд▓реА рд░реЗрдкреЛ рдХреЗ рдХрд╛рд░рдг - рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдорд╛рдВрдЧ рдкрд░ рдмрдирд╛рдП рдЧрдПред рд▓реЗрдХрд┐рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЙрдирдХреА рдХреНрд╖рдорддрд╛ рднреА рдЙрдкрдпреЛрдЧреА рдереАред

Gitolite рд╕реНрдерд╛рдкрдирд╛


рд╕рд░реНрд╡рд░ рдкрд░
 useradd git su - git git clone git://github.com/sitaramc/gitolite gitolite/install -to $HOME/bin gitolite setup -pk sam.pub 

рд╕рдм рдХреБрдЫ рдкреБрд╕реНрддрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ , рдЕрдзреНрдпрд╛рдп 4.8 рдореЗрдВред

Gitolite рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЬрд┐рдУрд▓рд╛рдЗрдЯ-рдПрдбрдорд┐рди рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ, рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рдХрдорд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ, рдкреБрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рдЗрд▓реНрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗрдЯ рдХрд░реЗрдВ - рдРрд╕реЗ рдмреНрд▓реЙрдХ рдХреЛ 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 


рдкрд╣рд▓рд╛ рдкреНрд░рдпреЛрдЧ (git рдореЗрдВ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдлрд╝реЛрдЯреЛ рдЬреЛрдбрд╝рдХрд░)


рдЦрд╛рд▓реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж Thumbs.db рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХред Thumbs.db рдпреБрдХреНрдд рдПрдХ .gitignore рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рдЧрдИ рдереАред
рджреВрд╕рд░реА рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ, 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде 367 рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
Jpg рдореЗрдВ 293 рддрд╕реНрд╡реАрд░реЗрдВ - 439 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ
рдПрд╡реА рдореЗрдВ 37 рд╡реАрдбрд┐рдпреЛ - 3.26 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ
37 THM рдлрд╛рдЗрд▓реЗрдВ - 0.3 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ

 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  

9 рдорд┐рдирдЯ рдкреБрд╢ рдиреЗ рд▓реЛрдХрд▓ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА, рдлрд┐рд░ 14 рдорд┐рдирдЯ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреАред

рджреВрд╕рд░рд╛ рдкреНрд░рдпреЛрдЧ


рд╡рд┐рдЪрд╛рд░ рдЧрд┐рдд рдХреЛ рдЯреНрд╡рд┐рдХ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗред рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдмрдВрдж рдХреИрд╕реЗ рдХрд░реЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдкреАрдбрд╝рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рд╣рдо рдПрдХ рдЦрд╛рд▓реА рднрдВрдбрд╛рд░ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
 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 

рдпреЗ рдХрдорд╛рдВрдб рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ (рд╡рд░реНрддрдорд╛рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП, рдпрд╛рдиреАред Init / config рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП) рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВред
core.bigFileThreshold - 50 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 512 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ) рд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди ( core.bigFileThreshold рдХреА рдЦреЛрдЬ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
core.looseCompression - core.looseCompression рджреНрд╡рд╛рд░рд╛ "рдвреАрд▓реА" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреИрдХрд┐рдВрдЧ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИред
pack.compression - рдПрдХ рдкреИрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ pack.compression рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
 git add <> #  2  16  git commit #  47  git push --all #  7  20  #   2  43   4  37  . 

рд╕рд░реНрд╡рд░ рдкрд░ рдкреБрд╢ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдереА (рдпрд╣ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдвреАрд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣реА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдерд╛ред рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ pack.packsizelimit = 2g рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╣реАрдВ рдереАрдВ (рд▓реЗрдХрд┐рди рд╡реЗ рднреА рдирд╣реАрдВ рдмрдЪреА рд╣реЛрдВрдЧреА)ред

Ssh рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ 3.7 рдЬреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ


 git clone git@my-server:Fotos-2013-03-02 #  46 . 

рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкреИрдХреЗрдЬ 2 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдХрд╛рд░ рдореЗрдВ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдерд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
 git config --system -l | grep packsize pack.packsizelimit=2g 

рд╕рд░реНрд╡рд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди


рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд┐ рдкреИрдХреЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рдХрдореА, рдмрд╣реБрдд рдмрдбрд╝реЗ-рдмрдбрд╝реЗ рдереНрд░реЗрд╢реЛрд▓реНрдб рдФрд░ рдореЗрдореЛрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╕рд░реНрд╡рд░ рдореИрдереБрди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд
 git config --system pack.packsizelimit 2g 

рдФрд░ рдлрд┐рд░ рд╕реЗ, рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛
 git repack -A 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдХрд╛рд░ рдореЗрдВ 2 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдХреЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдП рдЧрдП, рд▓реЗрдХрд┐рди рд╡рд┐рд╢рд╛рд▓ рдкреИрдХреЗрдЬ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ред рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╕реНрдореГрддрд┐ рдХреА рдХрдореА рд╕реЗ рдЧрд┐рд░ рдЧрдпрд╛, рдпрд╛ рдПрдХ рд╕реНрд╡реИрдк рдкрд░ рджрдо рдШреБрдЯ рдЧрдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рдирдП рдлреЛрдЯреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рдо рд▓рд┐рдЦреЗрдВрдЧреЗ
 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 рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ .gitolite.rc рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ
 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 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ редunpackLimit, рддреЛ git, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рдлреЛрдХрд╕ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рд╕реАрдорд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж pack.packSizeLimit = 2g ред
gc.auto 300 рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдвреАрд▓реА рд╡рд╕реНрддреБрдПрдВ рд╕рд░реНрд╡рд░ рдкрд░ рднрдВрдбрд╛рд░ рдореЗрдВ рдЬрдорд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред " git gc --auto " рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, gc.auto = 6700 ред

рддреАрд╕рд░рд╛ рдкреНрд░рдпреЛрдЧ


рд╣рдо рдирдП рдЦрд╛рд▓реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред
рдЧреНрд░рд╛рд╣рдХ
 git clone git@my-server:Fotos-2013-03-03 cd 2013-03-03 

рд╕рд░реНрд╡рд░
 cd repositories/Fotos-2013-03-03 cat config 

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдкреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИред рдЗрд╕рд▓рд┐рдП, 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдлрд╝реЛрдЯреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЧреНрд░рд╛рд╣рдХ
 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  

рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдиреЗ рдвреАрд▓реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
Ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░, 1.7.1 рдЖрдЙрдЯ рдСрдл рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред
рдЕрджреНрдпрддрди рдЕрджреНрдпрддрди

рд╕рд░реНрд╡рд░ рдкрд░ git рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ


рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ git рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (yum install git)
рд╕рд░реНрд╡рд░ рдкрд░
 # 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 



рддреАрд╕рд░реЗ рдкреНрд░рдпреЛрдЧ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ред


рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж, рдореЗрдореЛрд░реА рд╕реЗ рдЧрд┐рд░рдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рд╕рднреА рдореЗрдореЛрд░реА рдХреЛ рдЪреБрдирд╛ - 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ, рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдЗрд╕реЗ 250 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдШрдЯрд╛ рджрд┐рдпрд╛ред
рдХреНрд▓реЛрдирд┐рдВрдЧ рдореЗрдВ рд╣реА 48 рдорд┐рдирдЯ рд▓рдЧ рдЧрдПред рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХрд╛ рдПрдХ рдкреИрдХ рдерд╛ред

рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯрд┐рдХ HTTP


рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, git http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж git update-server-info рджреЗрдиреА рд╣реЛрдЧреАред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╣реБрдХ / рдкреЛрд╕реНрдЯ-рдЕрдкрдбреЗрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЧрд┐рдЯ рдореЗрдВ рдЗрд╕ рд╣реБрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВрдЧреЗ, рдФрд░ рд╣рдо рдЗрд╕ рд╣реБрдХ рдХреЛ рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдУрд▓рд╛рдЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
рд╕рд░реНрд╡рд░ рдкрд░
 cp repositories/testing.git/hooks/post-update.sample .gitolite/hooks/common/post-update gitolite setup --hooks-only 

рдЕрдм, рдЕрдЧрд▓реЗ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА http рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред
Http рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ "рдЦрд┐рд▓реМрдирд╛" рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдлреЛрд▓реНрдбрд░ /home/git/http-root рдмрдирд╛рдПрдБред рдЗрд╕рдореЗрдВ рдПрдХ git->../repositories рдЬреЛрдбрд╝реЗрдВ git->../repositories ред рдФрд░ рдореИрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдПрдХ "рдЦрд┐рд▓реМрдирд╛" рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░реВрдВрдЧрд╛
рд╕рд░реНрд╡рд░ рдкрд░
 python -m SimpleHTTPServer > ../server-log.txt 2>&1 & 

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
 git clone http://my-server:8000/git/Fotos-2013-03-05.git 

рд░рдирдЯрд╛рдЗрдо 4 рдорд┐рдирдЯ! 4 рдорд┐рдирдЯ рдореЗрдВ 3.7 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ! рдпрд╣ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


Git рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓реЛрди рдФрд░ Fetch рдХреЛ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рдЧрд┐рдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рд╕рд░реНрд╡рд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА

рдЧреНрд░рд╛рд╣рдХ рднрдВрдбрд╛рд░

рдореБрдЭреЗ рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In173453/


All Articles