Skip to main content

Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ Git์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ GitHub๋กœ ํ‘ธ์‹œํ•˜์—ฌ Subversion์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์กฐ๊ฑด

์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๋ ค๋ฉด macOS ๋˜๋Š” Linux ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ

  1. GitHub์— ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ โ€˜์ถ”๊ฐ€ ์ •๋ณดโ€™, ๋ผ์ด์„ ์Šค ๋˜๋Š” gitignore ํŒŒ์ผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ๋งˆ์„ธ์š”. ํ”„๋กœ์ ํŠธ๊ฐ€ GitHub์— ํ‘ธ์‹œ๋œ ํ›„ ํ•ด๋‹น ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ์ปดํ“จํ„ฐ์— Git์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด git --version.์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ์€ git version 2.40.0๊ณผ ๋น„์Šทํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ปดํ“จํ„ฐ์—์„œ git svn์„(๋ฅผ) ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด git svn --version์„(๋ฅผ) ์‹คํ–‰ํ•˜์„ธ์š”.

    ์ถœ๋ ฅ์€ git-svn version 2.40.0 (svn 1.14.2)์™€(๊ณผ) ๋น„์Šทํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    git์„(๋ฅผ) ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ git svn์„(๋ฅผ) ์‹คํ–‰ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ„๋„๋กœ git svn์„(๋ฅผ) ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. git-svn ํŒจํ‚ค์ง€์ง€๊ฐ€ ํฌํ•จ๋œ Homebrew ๋˜๋Š” Ubuntu ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  4. Git LFS์ด(๊ฐ€) ์ปดํ“จํ„ฐ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด git lfs --version์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ์€ git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)๊ณผ ๋น„์Šทํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  5. Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

    ์˜ˆ๋ฅผ ๋“ค์–ด Sourceforge์—์„œ Logisim ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด svn checkout https://svn.code.sf.net/p/circuit/code/trunk์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  6. Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  7. Subversion ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์„ฑ์ž ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€ authors.txt์˜ ๋ชฉ๋ก์„ ์ €์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    Shell
    svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2" = "$2 }' | sed -E 's/^ *//' | sort | uniq > authors.txt
    
  8. authors.txt ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉ๋œ ์ž‘์„ฑ์ž ์ด๋ฆ„์„ ๋‹ค์Œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ด๋ฆ„์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

    octocat = The Octocat <octocat@github.com>
    
  9. Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด git svn์„(๋ฅผ) ์‚ฌ์šฉํ•˜์„ธ์š”.

    • Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— "ํŠธ๋ ํฌ", "๋ถ„๊ธฐ" ๋ฐ "ํƒœ๊ทธ" ํด๋”๊ฐ€ ํฌํ•จ๋œ ํ‘œ์ค€ ํ˜•์‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ git svn clone -s URL PATH/TO/DESTINATION --authors-file PATH/TO/AUTHORS.TXT์„(๋ฅผ) ์‹คํ–‰ํ•˜๊ณ , URL์„(๋ฅผ) Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ URL๋กœ, PATH/TO/DESTINATION์„(๋ฅผ) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๋ ค๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ฒฝ๋กœ๋กœ, PATH/TO/AUTHORS.TXT์„(๋ฅผ) authors.txt ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      ์˜ˆ๋ฅผ ๋“ค์–ด Sourceforge์˜ Logisim ํ”„๋กœ์ ํŠธ๋ฅผ logisim์ด๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์ œํ•˜๋ ค๋ฉด git svn clone -s https://svn.code.sf.net/p/circuit/code logisim --authors-file path/to/authors.txt์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • Subversion ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋น„ํ‘œ์ค€์ธ ๊ฒฝ์šฐ git svn์ด(๊ฐ€) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Git ์„ค๋ช…์„œ์˜ git-svn์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  10. Git์€ ๊ฐ SVN ์ˆ˜์ • ๋ฒ„์ „์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ˆ˜์ • ๋ฒ„์ „์„ Git ์ปค๋ฐ‹์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋งŽ์€ ํŒŒ์ผ ๋˜๋Š” ๋งŽ์€ ๊ธฐ๋ก์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋ช…๋ น์ด ์ค‘์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Ctrl+C๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์„ ์ข…๋ฃŒํ•˜๊ณ  ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ git svn fetch์„(๋ฅผ) ์‹คํ–‰ํ•˜์—ฌ ์ข…๋ฃŒ๋œ ์œ„์น˜๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  11. ์ƒˆ๋กœ ๋งŒ๋“  Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  12. GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์›๊ฒฉ ์‹คํ–‰ git remote add origin URL๋กœ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋จผ์ € ๋งŒ๋“  GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ URL์„ URL์—์„œ https://github.com/octocat/example-repository.git ๋“ฑ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์‹คํ–‰ ํ•ฉ๋‹ˆ๋‹ค.

  13. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ GitHub๋กœ ํ‘ธ์‹œํ•˜๋ ค๋ฉด git push --mirror origin์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— GitHub์˜ ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ๋ณด๋‹ค ํฐ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ํ‘ธ์‹œ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. git lfs import์„ ์‹คํ–‰ํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ Git LFS์œผ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ