CVS와 Subversion 중 어떤게 좋을까요?

anarch의 이미지

저도 VersionControl 을 도입하려고 합니다.
SCM에는 여러가지가 있더군요... CVS... Subversion... GnuArch.. Git..
여러분들은 어떤 version control tool을 쓰시나요?
cvs의 단점을 보완한 것이 subversion이라고 하는데. cvs와 subversion 중 어떤게 좋은가요?

narusas의 이미지

기능상으로는 subversion이 훨씬 좋습니다.
다만, IDE와의 통합성이 아직는 떨어 집니다.
예를 들어 eclipse에서 CVS는 거의 완벽하게 지원되고 다양한 툴도 제공되는 것이 반해, subversion plugin은 아직 많은 버그가 있고 사용하기도 불편한 편입니다.

랜덤여신의 이미지

Subversion 이 훨씬 간단하고 익히기도 간편한 것 같습니다.

hanseok의 이미지

윈도우즈에서 subversion 사용중인데

아무것도 몰라도. 모두 알아서 해주네요.
그냥 오른쪽 마우스만 잘누르고.

용어 몇개만 확실히 알고 있다면..

update가 ... 내가 수정한것 올리는것인줄 알고..`~ 한달동안 update 못하고 있었다는.. (다른 사람 소스 업데이트.)ㅋㅋ

잠이 들어야지만 꿈을 꿀수 있는것인가?
우리는 항상 꿈을 쫓아 가며 살아가는 사람들..

coyday의 이미지

그냥 먼저 사용해본 게 CVS라.. 아무 생각 없이 CVS..

북한산(X) 삼각산(O) 백운대(X) 백운봉(O)

Necromancer의 이미지

cvs보다는 svn이 더 믿음직스럽고 편하다는 느낌이.

=3 =3 ==33

Written By the Black Knight of Destruction

익명 사용자의 이미지

cvs와 svn은 약간 다른 개념을 가지고 접근하셔야 합니다.
그래서 원하는 개념에 맞게 선택하시면 될듯 합니다.
단 IDE에 포함시켜서 쓰실거라면 svn이 IDE에 포함된 플러그인이 적은편이고(구색은 맞추고 있지만) 플러그인의 안정성이 부족한건 감안하셔야 할듯.

일단 svn은 버전을 파일별로 하는게 아니라 저장소째로 관리합니다. 형상관리라 부르지요.
cvs에서는 각 파일별로 버전이 모두 다르지만 svn은 하나의 파일을 바꿔도 전체의 버전이 올라갑니다. (이 부분이 가장 큰 차이점입니다.) 물론 내부적으로 저장할때는 바뀐 파일만 저장됩니다.

예를들어 3일전 작업상태로 되돌리고 싶을때 cvs는 각 파일별로 작업해줘야 하지만 svn은 한번 작업으로 디렉토리 전체가 3일전의 작업상태 그대로 되돌아갑니다. (물론 일부만 되돌리는 기능도 있습니다.)

cvs와의 차이는 기본적으로 전체 환경을 되돌려주는지 혹은 일부만 되돌려주는지의 차이라고 보시면 되구요.
쉽게 말해 디렉토리를 각 버전별로 통째로 기억한다고 이해하면 되겠습니다.
그밖에도 바이너리 파일도 손쉽게 관리할 수 있고 손쉬운 파일 리네임이라던지 다른 장점들도 많습니다. unicode를 지원한다는 점도 빼놓을 수 없겠네요.

svn을 직접 컴파일한다면 WebDAV 같은 기능이 모두에게 항상 필요한 기능은 아니므로 socket server와 client만 컴파일해도 충분합니다.
모든 기능을 다 사용해볼것이 아니라면 괜히 매뉴얼 따라서 이것저것 모두 포함하려 삽질하지 마세요. 저도 괜히 삽질했다가 시간만 버린적이 있습니다.
그리고 hp-ux에서는 iconv문제가 일어날수도 있으니 hp-ux에서는 gnu iconv를 구해서 링크하면 됩니다.

whitekid의 이미지

Anonymous wrote:
예를들어 3일전 작업상태로 되돌리고 싶을때 cvs는 각 파일별로 작업해줘야 하지만 svn은 한번 작업으로 디렉토리 전체가 3일전의 작업상태 그대로 되돌아갑니다. (물론 일부만 되돌리는 기능도 있습니다.)

오해의 소지가 있어서 약간 부연합니다. CVS도 한번의 명령으로 가능합니다. 3일전으로 가는것은
cvs update -D '3 days ago'
명령으로 한번에 가능합니다.

물론 파일이름만 적어주면 그 파일만 3일전으로 갑니다.~ :)

What do you want to eat?

익명 사용자의 이미지

cvs에서 브랜치에는 -D 옵션이 안먹던데 먹이는 법 아시는 분? 당연히 될 거라 생각하고 해봤는데 이미 -r 옵션 먹은 트리는 -D가 안먹더라구요? 이런 황당한 일이..

whitekid의 이미지

저도 궁금해서 해봤는데 안되네요..
update [-ACdflPpQqR] [-d] [-r tag|-D date] files...
manual 페이지에 update 가 이렇게되어있네요.. -r과 -D는 같이 못쓰나봅니다.

그런데.. checkout 명령에서는 -r과 -D옵션을 같이 쓸수 있군요..(특이하게도..)

http://groups.google.co.kr/group/muc.lists.cvs/browse_thread/thread/ac7229a540dfd379?hl=ko
을 보면 update에는 안되는것 같네요...

What do you want to eat?