svn repository ๋ฅผ git ์ผ๋ก ์ ํ
svn2git ์ ์ฌ์ฉํ๋๊ฒ ๋ ๋์. ์๋ธ๋ฒ์ ์ ์ฅ์(subversion repository)๋ฅผ git ์ผ๋ก ์ด๊ดํ๊ธฐ ์ฐธ์กฐ
ย
์ํ๋ผ์์์ด ์์ฑํ svn ์ ์ฅ์๋ฅผ git ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ ์ ๋ฆฌ(https://www.atlassian.com/git/migration)
ย
ย
Prepare
๋ค์ด๋ก๋ ย (https://bitbucket.org/atlassian/svn-migration-scripts/downloads)
migration ์ด ๊ฐ๋ฅํ๊ฒ ์์คํ ์ด ๊ตฌ์ฑ(git, svn, perl ์ค์น ์ฌ๋ถ)๋์๋์ง ๊ฒ์ฆ
java -jar svn-migration-scripts.jar verify
svn author ์ ๋ณด ์ถ์ถ - svn ์ id ์ง๋ง git ์ ์ด๋ฆ๊ณผ email ์ด๋ฏ๋ก ๋ณํ ํ์
java -jar ~/svn-migration-scripts.jar authors <svn-repo> > authors.txt
<svn-repo. ๋ ์ ์ฅ์์ URI ๋ก ์ธ๋ถ์ ์๋ค๋ฉด ์ ์ฒด URL ๋ช ์
java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt
์ ์ ์ ๋ณด ํ์ผ ํธ์ง. ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์์ฑ์ด ๋๋ค. ย ์ข์ธก์ id ์ด๊ณ ์ฐ์ธก์ full name ๊ณผ email ์ฃผ์์ด๋ค.
j.doe = j.doe <j.doe@mycompany.com> m.smith = m.smith <m.smith@mycompany.com>
์ข์ธก์ id๋ ๊ทธ๋๋ก ๋๊ณ ์ฐ์ธก์ full name ๊ณผ email ์ ์ฌ์ฉ์์ ๋ง๊ฒ ์์ ํ๋ค.
j.doe = John Doe <john.doe@atlassian.com> m.smith = Mary Smith <mary.smith@atlassian.com>
ย
๋ณํ
svn repos ์ฒดํฌ์์. ์ ์ฅ์๊ฐ trunk, tags, branches ๊ฐ ๋ถ๋ ํ์ค ๊ตฌ์กฐ๋ผ๋ฉดย --stdlayout ์ต์ ์ ์ฌ์ฉํ๋ค. <svn-repo> ๋ URI ๋ก ๋ช ์ํด์ผ ํ๋ค.ย
git svn clone --stdlayout --authors-file=authors.txt <svn-repo>/<project> <git-repo-name>
svn ์ ์ฅ์์ URI ๊ฐย https://svn.example.comย ์ด๊ณ ํ๋ก์ ํธ๊ฐ test-proj ์ผ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์คํํ๋ค.
git svn clone --stdlayout --authors-file=authors.txt https://svn.example.com/test-proj test-proj-git
์ ์ฅ์๊ฐ ํ์ค ๊ตฌ์กฐ๊ฐ ์๋๋ฉด ์ต์ ์ผ๋ก ์ง์ ํด์ผ ํ๋ค.
git svn clone --trunk=/trunk --branches=/branches --branches=/bugfixes --tags=/tags --authors-file=authors.txt https://svn.example.com/test-proj test-proj-git
clean
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git
- a
ย
Ref
ย