'프로그램 사용/Version Control'에 해당되는 글 134건

  1. 2009.02.26 TortoiseSVN 사용하기 2
  2. 2009.02.26 TortoiseSVN - Svnserve Based Server 5
  3. 2009.01.22 cvs 서버 설치 / 복원 2
  4. 2008.12.12 TortoiseCVS - CVS client for windows
CVS의 경우는 CVSNT 와 TortoiseCVS로 서버 및 클라이언트 환경을 구축할 수 있다.
하지만 SVN의 경우는 TortoiseSVN만으로도 서버를 구축 할 수 있다.
물론 svn:// 으로 접속은 하지 못할지라도 말이다(아직 설정법을 모르니 혹시 모름)

ToroiseSVN을 설치 하면 다음과 같은 context-menu가 생긴다(현재 빵집/CVS/SVN/WinMerge가 설치되어 있다)

CVS에서도 그러했 듯, SVN에서도 repository는 있어야 한다.
아무것도 없는 빈 폴더를 하나 만들고, 그 안에서 Create repository here를 눌러준다.

아래의 파일들이 생성되며 repository가 생성되었다는 메시지가 뜬다.
d:\svn_repo 라는 경로로 생성했다.

일단은 SVN에 저장할 파일을 찾아본다. 원하는 폴더를 클릭해서 Import 한다.

Import 에서는 저장할 repository의 경로를 넣어준다.
위에서 d:\svn_repo에 저장소를 생성했으므로 file://d:/svn_repo가 URL이 된다.

import가 완료되었다.
(repository에 파일이 Add 되었다)

저장소에 넣었으니(import) 이제 저장소에서 꺼내오자(checkout)
경로는 저장한 경로와 동일하게 넣어 주고, 받아와서 저장할 경로를 지정해 준다.
아까는 경로를 지정해 주지 않았으므로 받을 곳에 디렉토리를 하나 추가해준다.

checkout 장소에 파일이 Add 되었다.

SVN 클라이언트가 있으면 체크가 생긴다. 녹색은 서버와 동일하다는 의미이다.
빨간색은 서버와 동일하지 않은 내용이 담겨 있다는 의미이다.

TortoiseSVN의 가장 강력한 점은 바로 Repositoty Broswer가 아닐까 생각이 된다.
원래 file://d:\svn_repo에 존재하던 po 파일들을, Create Folder를 사용하여 po를 만들고
단순하게 드래그 해서 po로 넣었더니 간단하게 이동이 되었다.
CVS는 경로이동이 불가능 한 단점이 있는데 SVN은 이렇게 편하게 이동 할 수 있다.

TortoiseSVN에 내장된 Merge 툴이다.

Checkout 창에서 Show Log를 누르면 뜨는 창
revision은 cvs는 파일별로 생겼지만, svn은 전체 저장소에 대해서 생성이 된다.
어떻게 보면 더욱 좋은것이, 태그의 확장 판으로 어떠한 행동을 했었는지 추적이 가능하고
그 때 이후의 버전을 세부적으로 받아 올수 있다. 이러한 작업은 CVS에서는 매번 tag를 해야만 가능하다.

위의 창에서 통계를 누른 모습이다. cvs에서는 역시 볼 수 없었던 기능이다.


예전부터 설치만 해 놓고 쓰지 않던 svn을 끄집어 내서 한번 서버 설치를 해보려니 결국은 또 실패로 돌아 갔다.
하지만 이렇게 클라이언트/ 개인용 서버로 사용하는 법이라도 알았으니 위안으로 삼고,
다음번 문서에 svnserve로 공용 서버 만드는 법만 추가 하면 될 듯하다.
Posted by 구차니
솔찍히 내가 TortoiseCVS Client for Windows에 쩔어 있어서
콘솔에서 명령어로 체크아웃 할지도 모르고, SVN에는 손이 가지 않는다.

SVN의 장점으로는 디렉토리 이동 등이 있다는 것도 알고,
CVS에서 SVN으로 이전도 그리 어렵지는 않다고 하지만,

가장 큰 문제는, 나 혼자 사용하는 SVN 서버가 아닌
다른 사람들도 접속할 수 있는 SVN 서버를 만드는 법을 모른다는 것이다.

아무튼! 용기를 내서 한번 문서를 뒤적이다가 발견했는데..
TortoiseSVN Client for Windows help에 있었다.. OTL 역시 등불밑이 가장 어두운 것인가..


키워드는 svnserve 이다.

Running svnserve

Now that svnserve is installed, you need it running on your server. The simplest approach is to run the following from a DOS shell or create a windows shortcut:

svnserve.exe --daemon

svnserve will now start waiting for incoming requests on port 3690. The --daemon switch tells svnserve to run as a daemon process, so it will always exist until it is manually terminated.

If you have not yet created a repository, follow the instructions given with the Apache server setup the section called “Configuration”.

To test that svnserve is working, use TortoiseSVNRepo-Browser to view a repository.

Assuming your repository is located in c:\repos\TestRepo, and your server is called localhost, enter:

svn://localhost/repos/TestRepo

when prompted by the repo browser.

You can also increase security and save time entering URLs with svnserve by using the --root switch to set the root location and restrict access to a specified directory on the server:

svnserve.exe --daemon --root drive:\path\to\repository\root

Using the previous test as a guide, svnserve would now run as:

svnserve.exe --daemon --root c:\repos

And in TortoiseSVN our repo-browser URL is now shortened to:

svn://localhost/TestRepo

Note that the --root switch is also needed if your repository is located on a different partition or drive than the location of svnserve on your server.

Svnserve will service any number of repositories. Just locate them somewhere below the root folder you just defined, and access them using a URL relative to that root.


Run svnserve as a Service

Running svnserve as a user is usually not the best way. It means always having a user logged in on your server, and remembering to restart it after a reboot. A better way is to run svnserve as a windows service. Starting with Subversion 1.4, svnserve can be installed as a native windows service.

To install svnserve as a native windows service, execute the following command all on one line to create a service which is automatically started when windows starts.

sc create svnserve binpath= "c:\svnserve\svnserve.exe --service 
--root c:\repos" displayname= "Subversion" depend= tcpip
start= auto

If any of the paths include spaces, you have to use (escaped) quotes around the path, like this:

sc create svnserve binpath= "
\"C:\Program Files\Subversion\bin\svnserve.exe\"
--service --root c:\repos" displayname= "Subversion"
depend= tcpip start= auto

You can also add a description after creating the service. This will show up in the Windows Services Manager.

sc description svnserve "Subversion server (svnserve)"

Note the rather unusual command line format used by sc. In the key= value pairs there must be no space between the key and the = but there must be a space before the value.




[출처 : http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html]
Posted by 구차니
[서버 - linux]

Fedora Core 6에서 CVS 서버 설치하기
 
step 1. xinetd이 이 없다면 설치 한다 (FC 설치시 옵션에 따라서 xinetd가 설치가 안됨. 기본 값 설치시에는 xinetd 포함)

step 2. cvs 에서 사용하는 프로그램들을 설치 한다 [optional]
        cvs, cvsgraph, cvsweb를 설치해준다

step 3. cvs 유저를 및 cvs 그룹을 만든다
        a. useradd cvs 하여 cvs 유저와 그룹을 만든 다음 passwd에서 cvs의 로그인 쉘을 /sbin/nologin 으로 바꾸어 준다
        b. '사용자 관리자' 에서  cvs  유저와 cvs 그룹을 추가 후 로그인 쉘을 /sbin/nologin으로 바꾸어준다
        c. cvs[user]/cvs[group]가 없을 경우 module이 없다는 엉뚱한 에러 메시지가 발생한다.

step 4. cvs를 저장할 곳을 생성하고 디렉토리의 권한을 설정한다.
        그룹이 같이 사용하기 위해서는  CVS 루트 디렉토리의 권한이 그룹에도 write할 수 있도록 되어야 한다
        a. chmod -R $CVS_HOME 775
        b. $CVSROOT 디렉토리의 그룹/유저 권한이 설정되어 있지 않다면 파일을 읽을 수 없으므로
            module 목록을 받아 올 때 에러가 발생하게 된다.

step 5. cvs 루트 디렉토리를 추가한다
        a. cvs -d $CVSROOT init

step 6. 루트 디렉토리 안에 CVSROOT 라는 디렉토리가 생성되었나 확인한다

step 7. CVS를 사용할 유저들을 CVS 그룹에 넣는다

step 8. CVSROOT 디렉토리로 들어 가서 passwd 파일을 생성한다
        a. htpasswd -c passwd $USERID  // 최초 생성시
        b. htpasswd passwd $USERID    // 유저 추가시

step 9. cvs 클라이언트를 이용해서 cvs를 사용한다

step 10. cvs 클라이언트 접속시 cvs pserver: cannot open /var/cvst/CVSROOT/config: Permission denied 라는
            에러가 뜨면 대부분 SELinux 활성화로 인해 충돌이 일어 나는 것이므로,
        a. # setenforce 0 로 selinux를 해제하거나
        b. selinux 설정에서 cvs 보호를 해제 한다. 조금더 안전한 방법을 찾아 봐야함<-
        c. cvs repository의 permission을 확인해본다. 일반적으로 cvs 그룹에 속해 있지 않거나,
            파일을 추가한 사람의 퍼미션을 따라가면서 others의 권한으로 읽다 보니 이런 경우가 발생함
[참고 : http://blog.naver.com/neutrino37/110011154935 & http://forums.fedoraforum.org/archive/index.php/t-100962.html]

 

 cvsweb을 굳이 설치 해야 할 이유는 없으나, 설치 하지 않을시 Tortoise CVS 에서 아래와 같이 설정을 해주어야 한다.

웹 로그를 설치 하지 않은채 '웹 로그 파싱'을 끄지 않으면 웹 로그 서버를 찾는데 엄청나게 오랜 시간 동안 멈추어 버리므로
웹 로그 설치하지 않았다면 반드시 웹 로그 파싱을 끄도록 한다.

 '빈 폴더 제거'의 경우 기본 설정이지만, 일부 프로그램에서 컴파일 결과용 폴더라던가 내용이 없는 폴더의 경우 이 옵션은 꺼주는 것이 좋다. 그게 아니라면, 없어진 폴더를 일일이 생성을 해야 하는 귀차니즘을 경험하게 될 것이다.
(컴파일시 결과 출력 디렉토리라면 컴파일 시 에러가 발생할 것 이다)
 
'네트워크(원격) 드라이브의 저장소 허용'의 경우 꺼지는 것이 기본 설정이지만,리눅스 서버에서 개발을 하고 소스 수정은
windows에서 하는 경우에는 대부분 samba나 nfs를 사용할텐데, 이경우 cvs가 작동이 되지 않게 되는 원인이 바로 이녀석이다. 이녀석을 체크해주면 원격 드라이브에서도 cvs를 사용할 수 있으므로, 개발 환경 구축이 편해지는 장점이 있다.
<20080619 추가>




2008/12/12 - [프로그램 사용] - TortoiseCVS - CVS client for windows
Posted by 구차니
2008년 12월 12일 기준 최신 버전은 1.10.9 stable 이다.
간만에 집에 설치하고 사용을 해봤더니 Checkout에서 상당히 다른 부분이 보인다.

1. 버전 정보.


2. Checkout 화면이 바뀌었다!!


3. Fetch List를 하면 예전에는 최상위 폴더만 보이던 것이 이제 하위 폴더도 보이게 변경 되었다.


4. 환경설정에서 속썩이던 WebLog 추적 기능이 사라졌다.


이번 버전에서 아쉬운 점은 아직 한글이 지원되지 않는 다는 점
(인스톨러는 한글이 지원되지만 문맥메뉴(Context-menu : 우클릭 메뉴)에서는 한글이 없다)이다.
Posted by 구차니