1. Intro ¶
CVS์ ๋์ฉ์ผ๋ก ๊ฐ๋ฐ๋๊ธฐ ์์ํ์ฌ, ์ต๊ทผ fsfs์ ์ง์ ์ดํ๋ก CVS๋ฅผ ๋์ฒดํด ๋๊ฐ๋ ์ถ์ธ์ด๋ค. ๋ง์ opensource ๊ธฐ๋ฐ ํ๋ก์ ํธ๋ค์ด SVN์ผ๋ก ์ฎ๊ฒจ๊ฐ ์ค๋น๋ค์ ํ๊ณ ์๋ค. ์ต์ ๋ฒ์ ์ธ 1.2๋ฒ์ ๋ถํฐ๋ bdb๊ฐ ๊ธฐ๋ณธ์ด์๋ ๊ฒ์ด fsfs๊ฐ ๊ธฐ๋ณธ ํ์
์ผ๋ก ์ค์ ๋์๋ค.
What's New in Subversion 1.2
- Optional locking ("reserved checkouts")
- Full WebDAV autoversioning
- FSFS repository back end is now the default
- Faster access to old revisions
- Many improved APIs
2. Detail ¶
- ๊ธฐ๋ณธ์ ์ธ ์ด์ฉ๋ฒ์ ๊ฑฐ์ cvs์ ๋์ผํ๋ค. ์ฌ์ง์ด๋ ์ฝ์์ ๋ช
๋ น์ด๋ ๊ฑฐ์ ๋์ผํ๋ค๊ณ ์๊ฐ๋๋ค. ํ๋ฌผ๋ฉฐ Tortoise๊ฐ์ ํ๋ก๊ทธ๋จ์ธ๋ฐ ์ค์ฃฝํ๋ด. ๋ค๋ฅธ ๊ฒ์ ์ ์ฅ์๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค.
- ๊ณต์ฉ ์ ์ฅ์ (svn group์ ์ํ ์ฌ์ฉ์๋ค์ด ๊ณต๋์ผ๋กฏ ์ฌ์ฉํ๋ ๊ณต๊ฐ)
~cpp svn+ssh://ID@zeropage.org/home/SVN/project
http://zeropage.org/svn/project ํ๋ก์ ํธ ์งํ Repository ~cpp svn+ssh://ID@zeropage.org/home/SVN/study
http://zeropage.org/svn/study ์คํฐ๋ ์งํ Repository
SubVersion์ ์ ์ฅ์๋
์ ํํ๋ก ์ด๋ฃจ์ด์ง๋ค. ๊ทธ์ธ์ ๋ชจ๋ ๊ฒ์ CVS์ ๋์ผํ๋ค.~cpp protocol-name://id@hostname/remote_repository_absolute_dir
ViewCVS : ์น์ธํฐํ์ด์ค๋ก์ ์ฒดํฌ์์์ด ๊ฐ๋ฅํ๋ค.
3. Account? ¶
์ ๋กํ์ด์ง์ ์ฌ์ฉ์ ๊ณ์ ์ด ์๋ค๋ฉด ๋๊ตฌ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๋์ ์ ๋ก์ปฌ์๋ ssh์ ํด๋ผ์ด์ธํธ(์ปค๋งจ๋ ๊ธฐ๋ฐ)๊ฐ ํ์ํ๋ค. (๊ทธ๋ ์ง๋ง ๊ทธ๋ฃน์ค์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์์๊ฒ ๊ทธ๋ฃน์ผ๋ก ์ค์ ํด๋ฌ๋ผ๊ณ ํด์ผํฉ๋๋ค. ๊ทธ๋ฃน์ด์ฉ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ ์ฅ์๋ฅผ ์ฝ์ ์๋ ์์ง๋ง ์ฐ๊ธฐ๋ ํ์ง๋ชปํ๋ค.)
svnserver์ ์ด์ฉํ๋ฉด ์ฌ์ฉ์ด ๊ฐํธํ๊ณ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ธฐ๋ ํธํ์ง๋ง, ์์ง SubVersion์ด ๊ณ์ ํ์ผ๋ก encrypt ๋ ๊ฒ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ํจ์ค์๋ ๋ ธ์ถ์ ์์ง๊ฐ ์๋นํ ๋์์ ์ด์ฉํ์ง ์์๋ค. ์ฐจํ subversion ์ด ์ด ์ฌํญ์ ์ง์ํ๋ฉด ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ ๋ฏ ํจ.
subversion ์ http ๋ก์ ์ ๊ทผ๋ ์ ๊ณตํ๋ค. ๋์ ์ ๊ธฐ๋ณธ์ ๊ณต ํ๋กํ ์ฝ๋ณด๋ค๋ ์๋๊ฐ ๋๋ฆฐ ๋จ์ ์ด ์๋ค. http ์ ์ ๊ทผ์ ํ์ฌ ์ต๋ช ๊ณ์ ์ ๋ํด์๋ checkout, read ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ checkin ๊ณ์ ์ ๋ฐ๊ธฐ ์ํด์๋ ๊ด๋ฆฌ์์๊ฒ ๋ค์์ ์ ๋ณด๋ฅผ ๋ฉ์ผ๋ก ๋ณด๋ด์ฃผ๋ฉด ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
svnserver์ ์ด์ฉํ๋ฉด ์ฌ์ฉ์ด ๊ฐํธํ๊ณ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ธฐ๋ ํธํ์ง๋ง, ์์ง SubVersion์ด ๊ณ์ ํ์ผ๋ก encrypt ๋ ๊ฒ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ํจ์ค์๋ ๋ ธ์ถ์ ์์ง๊ฐ ์๋นํ ๋์์ ์ด์ฉํ์ง ์์๋ค. ์ฐจํ subversion ์ด ์ด ์ฌํญ์ ์ง์ํ๋ฉด ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ ๋ฏ ํจ.
subversion ์ http ๋ก์ ์ ๊ทผ๋ ์ ๊ณตํ๋ค. ๋์ ์ ๊ธฐ๋ณธ์ ๊ณต ํ๋กํ ์ฝ๋ณด๋ค๋ ์๋๊ฐ ๋๋ฆฐ ๋จ์ ์ด ์๋ค. http ์ ์ ๊ทผ์ ํ์ฌ ์ต๋ช ๊ณ์ ์ ๋ํด์๋ checkout, read ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ checkin ๊ณ์ ์ ๋ฐ๊ธฐ ์ํด์๋ ๊ด๋ฆฌ์์๊ฒ ๋ค์์ ์ ๋ณด๋ฅผ ๋ฉ์ผ๋ก ๋ณด๋ด์ฃผ๋ฉด ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- ์ ์ฅ์์ ๊ฐ์ธ๊ถํ์ ๋ง๋ค๋ ค๊ณ ํ๋ค๋ณด๋ ์น์์์ ์ฒดํฌ์์์ ๊ณต์ฉ ์ ์ฅ์์ธ project, study ์ ๊ตญํํฉ๋๋ค. ๊ฐ์ธ๋ณ ์ ์ฅ์๋ ์ค๋ก์ง ssh ์ ์ํ ์ ๊ทผ๋ง์ ํ์ฉํฉ๋๋ค.
~cpp ๋ฆฌ๋ ์ค ๊ณ์ ์ ์์คํ ์์ ๋ค์์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ์ถ๋ ฅ๋๋ ๋ฌธ์ฅ์ ๋ณต์ฌํด์ ๊ด๋ฆฌ์์๊ฒ ๋ณด๋ด์ฃผ๋ฉด ๋๋ค. sapius@zeropage:/home/SVN$ htpasswd -n sapius New password: Re-type new password: sapius:i2BKwIhXaPCbc // ์ด๋ฐ ๋ฌธ์ฅ์ด๋ค. Crypt ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํ๋ ๋ฌธ์ฅ์ด๋ค.
4. SSH Login Tip ¶
- SSH๋ฅผ ํตํด์ ์ ๊ทผ์ ํ๋ ๊ฒฝ์ฐ ์๋นํ ์ฆ์ ํจ์ค์๋ ์
๋ ฅ ์ฐฝ์ ๋ณด๊ฒ๋ฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ช๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋๋ฐ.. (ํฐ๋๋ง ํ๋กํ ์ฝ๋ก SSH๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์ด์ฐํ์๋ SSH ํ๋ก๊ทธ๋จ์ ๋ฑ๋กํด์ผํจ.)
๊ฐ๋จํ์ง๋ง ๋ณด์์์ ์ทจ์ฝํ ๋ฐฉ๋ฒ
- SSHํ๋ก๊ทธ๋จ์ ์ต์
์ผ๋ก ํจ์ค์๋๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ
~cpp explorerํ๊ฒฝํ์์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญ "TortoiseSVN"->"Settings" Network"ํญ์์ "SSH"์ค์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ D:Program FilesTortoiseSVNbinTortoisePlink.exe" -l ๊ณ์ -pw ์ํธ
์๊ธฐ์ ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ์๋ ์ํธ๊ฐ ๊ทธ๋๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ณธ์ธ์ ์ปดํจํฐ๊ฐ ์๋ ์ํฉ์์๋ ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๋ฐฉ๋ฒ์ ํตํ์ง ์์ผ๋ฉด SVN์ ๋จ์ ์์ ์ ํ ๋๋ง๋ค ํจ์ค์๋๋ฅผ ๋ญ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ฉด ๋น์ทํ ๋ฐฉ๋ฒ์ด๋ผ๋ ์ฐ๋ ๊ฒ์ด ์ข๋ค.
์ฝ๊ฐ ๋ณต์กํ์ง๋ง ๋ณด์์ด ํ์คํ ๋๋ฒ์งธ ๋ฐฉ๋ฒ
- rsa key pair ๋ฅผ ๋ง๋ค์ด์ ํค๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ
~cpp 1. puttygen, Pageant ๋ฅผ ๋ฐ๋๋ค. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html puttygen: rsa, dsa ๊ณต๊ฐํค/๋น๋ฐํค ์ ์์ฑ ํ๋ก๊ทธ๋จ pageant: ํค๊ด๋ฆฌ ํ๋ก๊ทธ๋จ Linux ๊ณ์ ์ด ์๋ค๋ฉด ssh-keygen ์ ์ด์ฉํด์ ์์ฑ์ํค๋ ๋ฐฉ๋ฒ๋ ์กด์ฌํ๋ค. ์ด ๋ฐฉ๋ฒ์ด ํจ์ฌ๋ ๋น ๋ฅด๊ฒ ์์ฑ๋๋ค. 2. puttygen ์ ์คํ. generate๋ฅผ ๋๋ฌ์ ํค๋ฅผ ์ฐ์ ๋ง๋ ๋ค. 3. key comment ๋ฅผ ์์๋ณด๊ธฐ ์ฝ๊ฒ ๋ณ๊ฒฝํ๋ค. ๋จ์ํ ํค์ ์ฃผ์์ ๋ค๋ ๊ฒ์ด๋ฏ๋ก ์๋ฌด๊ฑธ๋ก ํด๋ ๋ฌด๊ดํ๋ค. keyphrase ๋ ์ฃผ์ํด์ ๋ง๋ค์ด์ผํ๋ค. ์ด๋ private-key์ ์ํธ๋ฅผ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ์ผ๋ก ํคํ์ผ์ด ์ ์์ ์ฌ์ฉ์์๊ฒ ๋ณต์ฌ๋์์ ๋ ์ด๋์ ๋์ ์์ ์ฑ์ ๋ณด์ฅํ๋ค. ๋ง์ฝ ์ค์ ํ์ง ์์ผ๋ฉด ํ์ผ๋ง ์๋ค๋ฉด ๊ธฐํ์ ํ์ธ์ ์ฐจ์์ด ๋ฐ๋ก ์ฌ์ฉ์ด ์์คํ ์ ์ ์ํ๊ฒ ๋๋ค. ๋ณด๋ฉด ์๋ ์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด -_-;; 4. Save Public Key ๋ฅผ ๋๋ฌ์ ํค๋ฅผ ์ ์ฅํ๋ค. ์๋จ์ Public key for pasting into OpenSSH authorized_keys file ๋์ ์๋ ๋ด์ฉ์ ๋ณต์ฌํด์ ~/.ssh/authorized_keys ์ ๋ถ์ฌ๋ฃ๋๋ค. (๋ด์ฉ์ ์ ์ฒด๋ฅผ ๋ณต์ฌํด์ผ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ธ์ฆ์ด ์๋๋ค. ์ ์ฒด๋ ํ์ค๋ก ์ด๋ฃจ์ด์ง๋ค) ๋ง์ฝ ํค๊ฐ ๋ค์๊ฐ๊ฐ ์กด์ฌํ๋ค๋ฉด ๋ฐ๋ก ๋ค์์ค์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋๋ค. ๋ง์ฝ ํ์ผ์ด ์๋ค๋ฉด ๋์ผํ ํ์ผ์ด๋ฆ์ ๋ง๋ค๋ฉด๋๋ค. root@zeropage:~/.ssh# ls authorized_keys known_hosts root@zeropage:~/.ssh# vi authorized_keys 5. Save Private Key ๋ฃฐ ๋๋ฌ์ ํค๋ฅผ ์ ์ฅํ๋ค. 6. pageant ๋ฅผ ์คํํ์ฌ์ ํ๋ผ์ด๋น ํค๋ฅผ ๋ฑ๋กํ๋ค. ์ต์ด ํค ๋ฑ๋ก์์ ์ํธ๋ง ์ ๋ ฅํ๋ฉด ์์คํ ์ ์ ์ํ๊ธฐ ์ํด์ ๋ฐ๋ก ์ํธ๋ฅผ ์น ํ์๊ฐ ์๋ค. ๋ฌผ๋ก ํคํ์ผ์ rsa๋ก ์ํธํ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋ด ์ํธ๋ฅผ ์ญ์ผ๋ก ์์๋ผ ์๋ ์๋ค. ๋จ์ง ํค๋ฅผ ๋ถ์คํ๊ณ , ๊ทธ ํค์ ์ํธ๋ฅผ ํดํน๋นํ๋ค๋ฉด ์๊ฐ ์๋ค. ํธํฐ์ ์์ด์ ํธ๋ก TortoisePlink.exe ๊ฐ ์ ์์ด ๋๋ ์ด์ ๋ TortoisePlink.exe๊ฐ ํธํฐ์ ์์ค๋ฅผ ๊ฐ์ ธ์จ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ pageant์ ํธํ์ด ๋๋ ๊ฒ์ด๋ค. ํธํฐ ๋นํธํ ํ๋ก๊ทธ๋จ์์๋ ๊ทธ ํ๋ก๊ทธ๋จ์ ๋ง๋ ํค ์์ด์ ํธ๋ฅผ ์ค์นํ๋ฉด ๋๋ค.
์ด์จ๋ฏ ์๊ธฐ์ ๋ฐฉ๋ฒ์ ๋จ์ํ SVN๋ฟ๋ง์๋๋ผ SSH๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์๋ฒ, ํด๋ผ์ด์ธํธ์๊ฒ ํด๋นํ๋
์ ์ ๋ฐฉ๋ฒ์ด๋ค.
๋ง๋ค์ด์ง ๊ฐ์ธํค๋ฅผ USB๋ ๋ฉ์ผ ๊ณ์ ์ ๋ฃ์ด๋๊ณ ํ์ํ ๋๋ง๋ค ๋ฐ์์ ์ฌ์ฉํ๋ฉด ๊ฑฐ์ ๋ฌธ์ ๊ฐ ์๋ค.
(๋ฌผ๋ก ์ํํ ๋ค๋ฃจ๋ฉด ์์ฒญ๋ ์ฌ์์ด...ํธํ ๋งํผ ์ง์ผ์ผํ ๊ฒ๋ ๋ง๊ฒ ์ง...^^)
๋ง์ฝ ์๊ธฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํ๋๋ฐ ์ ์์ด ์๋๋ค๋ฉด ์๋ฒ ๊ด๋ฆฌ์์๊ฒ /etc/ssh/sshd_config (๋ฐ๋น์ ๊ธฐ์ค)๋ฅผ
ํ์ธํด์
~cpp RSAAuthentication yes
~cpp PubkeyAuthentication yes
~cpp AuthorizedKeysFile %h/.ssh/authorized_keys
์ต์ ์ด ssh ๋ฐ๋ชฌ์ ํ์ฑํ๋ ์ํ์ธ์ง๋ฅผ ํ์ธํ๋ฉด ๋๋ค.
5. Thread ¶
- ์๋์ฐ์์๋ TortoiseSVN ์ ์ด์ฉํด์ ๊ธฐ์กด์ CVS์ ๊ฑฐ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- CVS๋ฅผ ์ด์ฉํ๋ ์ฌ๋์ ๋ฐ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ ์ ๋๋ก ๊ธฐ์กด์ CVS์ ๋ช
๋ น์ด์ ๊ตฌ์ฑ์ฒด๊ณ๊ฐ ์ ์ฌํ๋ค.
- ์์ ์ด ๋ง๋ ์์ค๋ฅผ CVS์ ์ ์ฅํ์ฌ์ ๋ณด๊ดํ๋ฉด์ ํ์ ํฌํธํด๋ฆฌ์ค๋ก ๋ง๋ค์ด ๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ์.
์ํ๋ค๋ฉด ๊ฐ์ธ์ฉ ์ ์ฅ์๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ๋ ๊ฐ๋ฅํจ.
- ์์ฐฝ์ฐ ๊ฐ์ฌ..~ ์๊ฐ๋๋ฉด ViewCVS ๋ ์ฐ๋๋. (๊ทผ๋ฐ, ์ฌ๋๋ค CVS ๋ค์ ์ฐ๊ณ ์๋๊ฐ.? http://zeropage.org/cvs ์ฐธ๊ณ ) --1002
ZeroPageServer SubVersion