Git 2.53 ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ ์ถœ์‹œ

๋ถ„์‚ฐ ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ Git 2.53์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Git์€ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ์ž๋ž‘ํ•˜๋ฉฐ ๋ธŒ๋žœ์นญ๊ณผ ๋ณ‘ํ•ฉ ๊ธฐ๋ฐ˜์˜ ๋น„์„ ํ˜• ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ก์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์†Œ๊ธ‰ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๋ณต์›๋ ฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์ปค๋ฐ‹์— ์ด์ „ ํžˆ์Šคํ† ๋ฆฌ ์ „์ฒด๋ฅผ ์•”๋ฌต์ ์œผ๋กœ ํ•ด์‹ฑํ•˜๊ณ , ๊ฐœ๋ณ„ ํƒœ๊ทธ์™€ ์ปค๋ฐ‹์— ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Git์€ GPLv2+ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜์—ฌ ์ƒˆ ๋ฒ„์ „์—๋Š” 70๋ช…์˜ ๊ฐœ๋ฐœ์ž(๊ทธ์ค‘ 21๋ช…์€ Git ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์—†์Œ)๊ฐ€ ์ฐธ์—ฌํ•œ 466๊ฐœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ƒˆ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • "promisor" ๋ชจ๋“œ(ํ•„์š”์— ๋”ฐ๋ผ ๋ˆ„๋ฝ๋œ ๊ฐ์ฒด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹)๋กœ ์‹คํ–‰๋˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ๋ณต์ œ๋œ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— "๊ธฐํ•˜ํ•™์ " ์ €์žฅ์†Œ ํŒจํ‚น ์ „๋žต("git repack --geometric")์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "--geometric" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌํŒจํ‚นํ•  ๊ฒฝ์šฐ, ".promisor" ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒฉํŒŒ์ผ์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ํŒจํ‚น๋ฉ๋‹ˆ๋‹ค. "๊ธฐํ•˜ํ•™์ " ์ „๋žต์€ ๊ฐ์ฒด๋ฅผ ์„ ํƒ์ ์œผ๋กœ ์žฌํŒจํ‚นํ•˜๊ณ  ๋ชจ๋“  ํŒฉํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ถˆํ•„์š”ํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ธ ์ž‘์—…์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๋Œ€๊ทœ๋ชจ ๋ชจ๋…ธ ์ €์žฅ์†Œ์˜ ์œ ์ง€ ๊ด€๋ฆฌ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค. (ํŒฉํŒŒ์ผ ํฌ๊ธฐ์˜ ๊ธฐํ•˜๊ธ‰์ˆ˜์  ์ฆ๊ฐ€๊ฐ€ ์œ ์ง€๋˜๋ฏ€๋กœ ๊ฐ ํ›„์† ํŒฉํŒŒ์ผ์€ ์ด์ „ ํŒฉํŒŒ์ผ ํฌ๊ธฐ์˜ ์ตœ์†Œ ๋‘ ๋ฐฐ ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
  • ์ด์ œ `git fast-import` ๋ช…๋ น์–ด์— `--signed-commits=strip-if-invalid` ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์–ด ์ €์žฅ์†Œ ๊ธฐ๋ก์˜ ์ผ๋ถ€๋ฅผ ๋ฎ์–ด์“ด ํ›„ ์œ ํšจํ•˜์ง€ ์•Š๊ฒŒ ๋œ ๊ฐ€์ ธ์˜จ ๊ฐ์ฒด์˜ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์œ ํšจํ•œ ์„œ๋ช…๊ณผ ์œ ํšจํ•˜์ง€ ์•Š์€ ์„œ๋ช…์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ์„œ๋ช…์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. `strip-if-invalid` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ ํšจํ•œ ์„œ๋ช…์€ ์œ ์ง€ํ•˜๊ณ  ๋งŒ๋ฃŒ๋œ ์„œ๋ช…์ด ์žˆ๋Š” ๊ฐ์ฒด๋Š” ๋‹ค์‹œ ์„œ๋ช…ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ 'git repo structure' ๋ช…๋ น์˜ ์ถœ๋ ฅ์€ ์ €์žฅ์†Œ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์œ ํ˜•๋ณ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ์ธก์ • ๋‹จ์œ„์™€ ํ•จ๊ป˜ ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ์‹ค์ œ ํฌ๊ธฐ์™€ ๋””์Šคํฌ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ๊ฐ€ ๋ณ„๋„๋กœ ํ‘œ์‹œ๋˜์–ด ์ €์žฅ์†Œ์˜ ์ด ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ git repo structure | ์ €์žฅ์†Œ ๊ตฌ์กฐ | ๊ฐ’ | | โ€”โ€”โ€”โ€”โ€”โ€”โ€” | โ€”โ€”โ€”- | | * ์ฐธ์กฐ | | | * ๊ฐœ์ˆ˜ | 1.78k | | * ๋ธŒ๋žœ์น˜ | 5 | | * ํƒœ๊ทธ | 1.03k | | * ์›๊ฒฉ ์ €์žฅ์†Œ | 749 | | * ๊ธฐํƒ€ | 0 | | | | | * ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด | | | * ๊ฐœ์ˆ˜ | 421.37k | | * ์ปค๋ฐ‹ | 88.03k | | * ํŠธ๋ฆฌ | 169.95k | | * ๋ธ”๋กญ | 162.40k | | * ํƒœ๊ทธ | 994 | | * ๋ถ€ํ’€๋ ค์ง„ ํฌ๊ธฐ | 7.61 GiB | | * ์ปค๋ฐ‹ | 60.95 MiB | | * ํŠธ๋ฆฌ | 2.44 GiB | | * ๋ธ”๋กญ | 5.11 GiB | | * ํƒœ๊ทธ | 731.73 KiB | | * ๋””์Šคํฌ ํฌ๊ธฐ | 301.50 MiB | | * ์ปค๋ฐ‹ | 33.57 MiB | | * ํŠธ๋ฆฌ | 77.92 MiB | | * ๋ธ”๋กญ | 189.44 MiB | | * ํƒœ๊ทธ | 578.13 KiB |
  • ์ด์ œ 'git maintenance' ๋ช…๋ น์–ด์— 'is-needed' ํ•˜์œ„ ๋ช…๋ น์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ €์žฅ์†Œ ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ์‹คํ—˜์ ์ธ "git replay" ๋ช…๋ น์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ์ฐธ์กฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์—…๋ฐ์ดํŠธ ์—†์ด ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•  ์œ„์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ "git blame" ๋ช…๋ น์–ด์—์„œ "--diff-algorithm=" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐจ์ด์  ํ‰๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ".
  • "git repo info" ๋ช…๋ น์–ด์— "--all" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ะ˜ะท Git-for-Windows ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ง€์› ๊ธฐ๋Šฅ์ด ํ”Œ๋žซํผ์œผ๋กœ ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Windows.

์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” Git 2.53์—์„œ Rust ์ปดํฌ๋„ŒํŠธ ๋นŒ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ๊ฒฝ๊ณ ๊ฐ€ ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Git 2.53์€ Rust ์ง€์›์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ(์˜ˆ: GNU sed ์—†์ด ๋นŒ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ)๋งŒ ์ถ”๊ฐ€ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Makefile์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” Rust ๋นŒ๋“œ๊ฐ€ ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ(WITH_RUST ํ”Œ๋ž˜๊ทธ ํ•„์š”), Meson์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” rustc ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. Git 3.0์—์„œ๋Š” Rust ํˆด๋ง์„ ํ•„์ˆ˜ ๋นŒ๋“œ ์ข…์†์„ฑ์œผ๋กœ ํฌํ•จํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster