CVS를 이용함으로써, 3개의 데스크탑과 노트북에서 동일한 소스를 가지고 작업을 할 수 있게 되는데, 서버 아이피가 고정 아이피인 경우에는 그럴일이 드물겠지만, 유동 아이피를 사용한다던가 혹은 서버 아이피/도메인이 어떤 사정에 의해 변경되었을때는 Commit/Update 작업이 되지 않아 상당히 골머리를 썩게 한다.
TortoiseSVN의 경우에는 "Relocate" 메뉴를 지원한다고 하는데, (관련 링크 : http://junho85.tistory.com/10)
이미지 출처 : http://junho85.tistory.com/10
내가 사용중인 CVS에서는 저런 메뉴는 보이지도 않는다.
결국 이런 경우에는 다시 checkout 을 하거나 CVS/Root 파일내에 아이피 정보를 모두 수정 해 주어야 한다.
:pserver:cvsid@변경전 아이피:/var/repo 를 :pserver:cvsid@변경후 아이피:/var/repo 로...
뭐 이걸 일일이 수작업으로 변경하는 일은 프로젝트의 규모가 크지 않은 경우라면 관계없지만, 프로젝트 규모가 큰 경우에는 수정해야할 "root" 파일의 갯수만 해도 수백개가 된다. 결국 매번 저런 작업을 한다는것은 무리라는 얘기...
그래서 리눅스에서는 perl 스크립트를 이용하여 변경작업을 하여주고,
find ./ -name "Root" -exec perl -pi -e 's/변겅전IP/변경후IP/g' {} \;
윈도우에서는 AcroEdit나 기타 파일 내용 바꾸기가 가능한 툴을 이용해서 변경 작업을 해주면 된다.
하지만!!!!! CVS 서버 주소의 변경이 빈번하게 일어나는 일이 아니기때문에 저런 형태로의 대응 방법도 괜찮겠지...
저 방법보다 좀더 깔끔한 방법을 소개하고자 한다. 현재 본인이 사용하고 있는 방법인데 굉장히 편하다.
자 그 방법에 대해 알아보도락 하자.
1. C:\Windows\System32\Drivers\Etc 폴더를 보면 "hosts"라는 파일이 존재하는데 해당 파일을 약간만 수정해줌으로써, CVS 서버에 관해 좀더 유연한 대처를 할 수 있게 된다.
해당 파일의 내용을 살펴보자.
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
위의 내용에서 보면 127.0.0.1 / localhost 라는 내용을 볼 수 있는데, 127.0.0.1이라는 아이피 주소를 localhost라는 영문명(도메인명)으로 별명을 지어주는 역할을 할 수 있다.
2. 이를 이용하여 저 hosts 파일에 아래의 내용을 넣어보자.
192.168.0.100 my_cvs_server
이후에 CVS 서버에 새로운 모듈을 만들거나 CheckOut / Commit / Update를 수행할때 아래와 같이
:pserver:cvsid@my_cvs_server:/var/repo 의 형태로 하게 되면 서버 아이피가 바뀔때마다 hosts 파일만 손봐주면 손쉽게 CVS를 이용할 수 있게 된다.
애초에 CVS 서버 주소를 "my_cvs_server" 나 기타 자신이 좋아하는 영문 이니셜등으로 하자라는 얘기!!!
위에서 언급한 방법보다 더 좋은 방법이 있다면 알려주시길....그리고 CVS에서 지원하고 있다면 해당 CVS Client의 버전 정보도 ㅠㅠ