์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

git submodules
google repo

 

์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ถ„์‚ฐ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€๋‹ˆ๋Š” ์ˆ˜ํผํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ,
repo๋ฅผ ์“ธ์ง€ git submodule์„ ์“ธ์ง€ ...(ํ˜น์€ ๋‹ค๋ฅธ ๋Œ€์•ˆ์„ ์“ธ์ง€...) ๊ณ ๋ฏผํ•˜๊ฒŒ ๋œ๋‹ค.

์—ฌ๊ธฐ์— ๋Œ€ํ•œ ์•„๋ž˜์—์„œ ๊ฒฉ๋ ฌ(?)ํ•œ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰๋˜์—ˆ๋‹ค.

https://news.ycombinator.com/item?id=3904932

๊ทธ์ค‘ ๋ช‡๊ฐ€์ง€ ํ•„์ž๊ฐ€ ๋™์˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ํ†ตํ•ด git submodule ์— ํ•œํ‘œ๋ฅผ ๋˜์ง€๊ณ  ์‹ถ๋‹ค๋Š” ์˜๊ฒฌ์„ ๋‚จ๊ฒจ๋ณธ๋‹ค.
Repo ๋ฟ ์•„๋‹ˆ๋ผ gerrit์„ ๋™์‹œ์— ๊นŒ๋Š” ๋“ฏํ•œ ๋ชจ์Šต๋‹ˆ๋‹ค. ^^

I've said this before but I'll say it again. Stay the hell away from Google's Repo tool. It's a half-baked badly maintained piece of ad-oc software. It will completely destroy your git workflow. You'll also be married to the crappy review tool called Gerrit.
 Repo was made prior to Git submodules to do the exact same thing for Android. Now that Git has submodule support, Repo is useless. It does pretty much the same thing as submodules, but it does it in a very crappy way.
 For example, you cannot go back to a specific set of versions of subdirectories with Repo. In other words there's no "global" git bisect as there would be with submodules. This stops you from automatically finding a problem in one of the submodule repos if there are dependencies betweeen the problematic repo and other repositories. Another decision the Repo designers made that I disagree with is the silly Change-Id added to every commit message(!). Since when do globally unique identifiers (GUIDs) solve problems instead of creating more?

ํ•ด์„>

Google์˜ Repo ๋„๊ตฌ์—์„œ ๋ฒ—์–ด๋‚˜์‹ญ์‹œ์˜ค.
๋œ ์ตํžŒ ์ž˜ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์€ ์• ๋“œํ˜น ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.
์ž์‹ ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ์™„์ „ํžˆ ํŒŒ๊ดดํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ Gerrit์ด๋ผ๋Š” ์—‰ํ„ฐ๋ฆฌ ๋ฆฌ๋ทฐ ๋„๊ตฌ์™€ ๋งค์—ฌ์žˆ์Šต๋‹ˆ๋‹ค.
Repo๋Š” Git ์„œ๋ธŒ ๋ชจ๋“ˆ ์ด์ „์— Android์—์„œ ๋˜‘๊ฐ™์€ ์ผ์„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
Git์€ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ์ง€์›ํ•˜๋ฏ€๋กœ Repo๋Š” ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ•˜์œ„ ๋ชจ๋“ˆ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜์ง€๋งŒ ๋งค์šฐ ์—‰๋šฑํ•œ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Repo๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฒ„์ „์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค์‹œ ๋งํ•ด ์„œ๋ธŒ ๋ชจ๋“ˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ "๊ธ€๋กœ๋ฒŒ"git bisect๋Š” ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์‚ฌ์ด์— ์ข…์†์„ฑ์ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•˜์œ„ ๋ชจ๋“ˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ ํ•˜๋‚˜์—์„œ ์ž๋™์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Repo ๋””์ž์ด๋„ˆ๊ฐ€ ๋‚ด๊ฐ€ ๋™์˜ํ•˜์ง€ ์•Š์€ ๋˜ ๋‹ค๋ฅธ ๊ฒฐ์ •์€ ๋ชจ๋“  ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ (!)์— ์ถ”๊ฐ€ ๋œ ๋ฐ”๋ณด ๊ฐ™์€ Change-Id์ž…๋‹ˆ๋‹ค. GUID (Globally Unique Identifier)๋Š” ์–ธ์ œ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

 

๋ฐ˜์‘ํ˜•

+ Recent posts