GitHub๋ HTTPS ํ๋กํ ์ฝ์ ํตํด Subversion ํด๋ผ์ด์ธํธ๋ฅผ ์ง์ํฉ๋๋ค. Subversion ๋ธ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ์ฌ svn ๋ช ๋ น์ GitHub์ ์ ๋ฌํฉ๋๋ค.
Note
GitHub ๋ฒ์ 3.13์์ Subversion ์ง์์ด ์ ๊ฑฐ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํ์ธ์.
GitHub์์ ์ง์๋๋ Subversion ๊ธฐ๋ฅ
์ฒดํฌ ์์
๊ฐ์ฅ ๋จผ์ ํ ์ผ์ Subversion ์ฒดํฌ ์์์ ๋๋ค. Git ๋ณต์ ๋ณธ์ ์์ ๋๋ ํฐ๋ฆฌ(ํ์ผ์ ํธ์งํ๋ ์์น)๋ฅผ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ์ดํฐ์ ๋ณ๋๋ก ์ ์งํ๋ฏ๋ก ์์ ๋๋ ํฐ๋ฆฌ์๋ ํ ๋ฒ์ ํ๋์ ๋ถ๊ธฐ๋ง ์์ต๋๋ค.
Subversion ์ฒดํฌ ์์์ ๋ค๋ฆ ๋๋ค. ์์ ๋๋ ํฐ๋ฆฌ์์ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฏ๋ก ์ฒดํฌ ์์ํ ๊ฐ ๋ถ๊ธฐ์ ํ๊ทธ์ ๋ํ ์์ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค. ๋ถ๊ธฐ ๋ฐ ํ๊ทธ๊ฐ ๋ง์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒฝ์ฐ ๋ชจ๋ ํญ๋ชฉ์ ์ฒดํฌ ์์ํ๋ ค๋ฉด ๋์ญํญ ๋ถ๋ด์ด ํด ์ ์์ผ๋ฏ๋ก ๋ถ๋ถ ์ฒดํฌ ์์์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
-
GitHub์์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
ํ์ผ ๋ชฉ๋ก ์์์ ์ฝ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.

-
๋ฆฌํฌ์งํ ๋ฆฌ์ URL์ ๋ณต์ฌํฉ๋๋ค.
-
HTTPS๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๋ ค๋ฉด "HTTPS"์์ ์ ํด๋ฆญํฉ๋๋ค.
-
์กฐ์ง์ SSH ์ธ์ฆ ๊ธฐ๊ด์์ ๋ฐ๊ธํ ์ธ์ฆ์๋ฅผ ํฌํจํ์ฌ SSH ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๋ ค๋ฉด SSH๋ฅผ ํด๋ฆญํ ๋ค์, ์ ํด๋ฆญํฉ๋๋ค.
-
GitHub CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๋ ค๋ฉด GitHub CLI ๋ฅผ ํด๋ฆญํ ๋ค์, ์ ํด๋ฆญํฉ๋๋ค.

-
-
๋ฆฌํฌ์งํ ๋ฆฌ์ ๋น ์ฒดํฌ ์์์ ๋ง๋ญ๋๋ค.
$ svn co --depth empty https://github.com/USER/REPO > Checked out revision 1. $ cd REPO -
trunk๋ถ๊ธฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. Subversion ๋ธ๋ฆฌ์ง๋ ํธ๋ ํฌ๋ฅผ Git HEAD ๋ถ๊ธฐ์ ๋งคํํฉ๋๋ค.$ svn up trunk > A trunk > A trunk/README.md > A trunk/gizmo.rb > Updated to revision 1. -
branches๋๋ ํฐ๋ฆฌ์ ๋น ์ฒดํฌ ์์์ ๊ฐ์ ธ์ต๋๋ค.HEAD์ด์ธ์ ๋ชจ๋ ๋ถ๊ธฐ๊ฐ ์ฌ๊ธฐ์ ์์ผ๋ฉฐ, ๊ธฐ๋ฅ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค ์์น์ ๋๋ค.$ svn up --depth empty branches Updated to revision 1.
๋ถ๊ธฐ ๋ง๋ค๊ธฐ
GitHub์ ๋ํ Subversion ๋ธ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค.
svn ํด๋ผ์ด์ธํธ์์ trunk๋ฅผ ์
๋ฐ์ดํธํ์ฌ ๊ธฐ๋ณธ ๋ถ๊ธฐ๊ฐ ์ต์ ์ํ์ธ์ง ํ์ธํฉ๋๋ค.
$ svn up trunk
> At revision 1.
๋ค์์ผ๋ก, svn copy๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
$ svn copy trunk branches/more_awesome
> A branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
> Adding branches/more_awesome
> Committed revision 2.
๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ถ๊ธฐ ๋๋กญ๋ค์ด์ ์ ๋ถ๊ธฐ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.

๋ช ๋ น์ค์ ํตํด ์ ๋ถ๊ธฐ๋ฅผ ํ์ธํ ์๋ ์์ต๋๋ค.
$ git fetch
> From https://github.com/USER/REPO/
> * [new branch] more_awesome -> origin/more_awesome
Subversion์ ์ปค๋ฐ
๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ผ๋ถ ๋ฒ๊ทธ๋ฅผ ์์ ํ ํ์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ GitHub์ ์ปค๋ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ต์ํ Subversion์ฒ๋ผ ๋์ํฉ๋๋ค. ํ์ผ์ ํธ์งํ๊ณ svn commit์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํฉ๋๋ค.
$ svn status
> M gizmo.rb
$ svn commit -m 'Guard against known problems'
> Sending more_awesome/gizmo.rb
> Transmitting file data .
> Committed revision 3.
$ svn status
> ? test
$ svn add test
> A test
> A test/gizmo_test.rb
$ svn commit -m 'Test coverage for problems'
> Adding more_awesome/test
> Adding more_awesome/test/gizmo_test.rb
> Transmitting file data .
> Committed revision 4.
๋ถ๊ธฐ ๊ฐ ์ ํ
๋ถ๊ธฐ ๊ฐ์ ์ ํํ๋ ค๋ฉด trunk ์ฒดํฌ ์์์ผ๋ก ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
svn co --depth empty https://github.com/USER/REPO/trunk
๊ทธ๋ฐ ๋ค์, ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ์ ํํ ์ ์์ต๋๋ค.
svn switch https://github.com/USER/REPO/branches/more_awesome
Subversion ์ปค๋ฐ์ ๋ํ Git ์ปค๋ฐ SHA ์ฐพ๊ธฐ
GitHub์ Subversion ์๋ฒ๋ ๊ฐ Subversion ์ปค๋ฐ์ ๋ํ Git ์ปค๋ฐ SHA๋ฅผ ๊ณต๊ฐํฉ๋๋ค.
์ปค๋ฐ SHA๋ฅผ ๋ณด๋ ค๋ฉด ๋ฒ์ ์ด ์ง์ ๋์ง ์์ git-commit ์๊ฒฉ ์์ฑ์ ์์ฒญํด์ผ ํฉ๋๋ค.
$ svn propget git-commit --revprop -r HEAD https://github.com/USER/REPO
05fcc584ed53d7b0c92e116cb7e64d198b13c4e3
์๋ฅผ ๋ค์ด ์ด ์ปค๋ฐ SHA๋ฅผ ์ฌ์ฉํ์ฌ GitHub์์ ํด๋น Git ์ปค๋ฐ์ ์กฐํํ ์ ์์ต๋๋ค.