티스토리 뷰

728x90
반응형

다음으로 SVN + Eclipse 연동과정까지 앞서 살펴봤고 팀 단위 프로젝트를 어떻게 효율적으로 관리하는 것이 좋은지 살펴보자.

앞서 진행된 과정을 되짚어보면,

1) Eclipse download 및 압축 해제

2) svn yum 설치

3) svn 기동 종료

4) eclipse plugin 설치

5) svn / eclipse 연동 (repositories 생성)

Eclipse SVN 활용

1. commit

프로젝트 커밋 방법에 대해 알아보자. 연동이 완료되면, 다음과 같이 개발한 프로젝트를 SVN Repository에 Push해야 한다.

다음과 같이 프로젝트 우클릭 > Team > Commit을 선택한다.

화면에 보이는 노란색 기둥 모양은 동기화 되어있는 상태를 의미하며, 물음표 모양은 추가된 부분이 있음을 의미한다.

적용할 Comment를 입력하고 Commit 대상 파일을 선택한 후 OK를 클릭한다.

정상적으로 완료되면 다음과 같이 확인할 수 있다.

svn: URL 'svn://192.168.56.100/SpringBootApplicationTemplate' non-existent in revision 0

mkdir --parents -m "Initial import." [svn://192.168.56.100/SpringBootApplicationTemplate]
    Unknown action received: commit finalizing
checkout svn://192.168.56.100/SpringBootApplicationTemplate -r HEAD --depth=immediates --force
    Checked out revision 1.
add -N D:\workspace\SpringBootApplicationTemplate\.mvn
    A         D:/workspace/SpringBootApplicationTemplate/.mvn
add -N D:\workspace\SpringBootApplicationTemplate\.mvn\wrapper
    A         D:/workspace/SpringBootApplicationTemplate/.mvn/wrapper
add -N D:\workspace\SpringBootApplicationTemplate\.settings
    A         D:/workspace/SpringBootApplicationTemplate/.settings
...
...
add -N D:\workspace\SpringBootApplicationTemplate\src\main\java\com\nrson\test\dto\TestRequestDTO.java
    A         D:/workspace/SpringBootApplicationTemplate/src/main/java/com/nrson/test/dto/TestRequestDTO.java
add -N D:\workspace\SpringBootApplicationTemplate\.settings\org.eclipse.wst.validation.prefs
    A         D:/workspace/SpringBootApplicationTemplate/.settings/org.eclipse.wst.validation.prefs
add -N D:\workspace\SpringBootApplicationTemplate\src\main\java\com\nrson\common\config\HttpRequestWrapper.java
    A         D:/workspace/SpringBootApplicationTemplate/src/main/java/com/nrson/common/config/HttpRequestWrapper.java
commit -m "Init Project" -N (135 paths specified)
    Adding         D:/workspace/SpringBootApplicationTemplate/.classpath
    Adding         D:/workspace/SpringBootApplicationTemplate/.gitignore
    Adding         D:/workspace/SpringBootApplicationTemplate/.mvn
...
...
    Adding         D:/workspace/SpringBootApplicationTemplate/src/test/java/com/nrson
    Adding         D:/workspace/SpringBootApplicationTemplate/src/test/java/com/nrson/SpringBootTemplateApplicationTests.java
    Adding         D:/workspace/SpringBootApplicationTemplate/wasbuild.xml
    Transmitting file data ...
    Unknown action received: commit finalizing
    Committed revision 2.

Commant와 함께 Modified 상태의 Class와 신규로 추가된 Package & Class를 확인할 수 있다.

이중 Commit 하고 싶은 대상을 선택하고 OK 버튼을 클릭합니다.

완료 되면 아래와 같이 물름표가 살아진것을 볼 수 있다.

처음으로 알아본 Commit의 경우 내가 개발한 코드를 SVN에 업데이트 하는 방법이라 할 수 있고, 다음 살펴볼 Check Out과 Update는 SVN에 있는 코드를 내려 받는 방법이라고 할 수 있다.

2. check out

프로젝트 전체를 내려 받을때 사용한다.

위는 앞서 Commit을 통해 생성된 SVN Repository 내의 Project이다. SpringBootApplicationTemplate이 생성되어 있으며, 이제 이 SVN 서버에 접근가능한 모든 사용자는 해당 프로젝트를 다운로드 받을 수 있게 된다.

프로젝트 우클릭 > Checkout

아래와 같이 입력 후 Finish를 클릭하면,

다음과 같이 SpringBootSVNTemplate이라는 프로젝트가 생성된것을 확인할 수 있다.

3. update

다음으로 업데이트이다. 업데이트는 변경된 소스코드를 다운로드 받는 기능이다.

소스 코드를 회사에서 수정한 상태로 commit 처리를 하였다면 집에서 작업하던 어제 버전의 source를 수정 사항으로 변경하기 위해 update를 눌려 주면 된다.

앞서 처음으로 생성한 SpringBootApplicationTemplate Project에서 파일을 수정하여 Commit하고 SpringBootSVNTemplate 프로젝트에서 업데이트하는 과정을 살펴보도록 하자.

수정 사항은 다음과 같다.

pom.xml
<name>NRSON</name>
==>
<name>NRSONPROJECT</name>

Commit이 완료되면 다음과 같이 Revision 정보가 출력되며, 현재 Revision 3가 Commited 되었다는 정보를 확인할 수 있다.

commit -m "modify pom.xml" -N D:/workspace/SpringBootApplicationTemplate/pom.xml
    Sending        D:/workspace/SpringBootApplicationTemplate/pom.xml
    Transmitting file data ...
    Unknown action received: commit finalizing
    Committed revision 3.

다음으로 SpringBootSVNTemplate 프로젝트에서 Update를 받아보자.

현재 pom.xml은 Revision 2 상태임을 확인하고 다음과 같이 업데이트를 받는다.

업데이트는 프로젝트 우클릭 > Team > Update to Version을 선택하여 진행할 수 있다.

Commit 된 소스와 동기화 되어 변경된 소스에 대한 업데이트가 이루어진다.

update D:/workspace/SpringBootSVNTemplate -r HEAD --force
    U   D:/workspace/SpringBootSVNTemplate/pom.xml
    Updated to revision 3.
    ===== File Statistics: =====
    Updated: 1

# 참조

a. SVN Repository Project 확인 방법 (svn list)

[root@ciserver conf]# svn list svn://localhost:3690
SpringBootApplicationTemplate/
[root@ciserver conf]# svn list svn://localhost:3690/SpringBootApplicationTemplate
.classpath
.gitignore
.mvn/
.project
.settings/
.springBeans
mvnw
mvnw.cmd
pom.xml
src/
wasbuild.xml
[root@ciserver conf]#

b. SVN Repository 내 파일 삭제 (svn delete)

[root@ciserver conf]# export SVN_EDITOR=/usr/bin/vi
[root@ciserver conf]# svn delete svn://localhost:3690/SpringBootApplicationTemplate/wasbuild.xml
delete wasbuild.xml file

--This line, and those below, will be ignored--

D    svn://localhost/wasbuild.xml
================================================ >>>>>>>>>>>>>>>>>>>>>>
Username: admin
Password for 'admin': 

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://localhost:3690> 34342d50-e47e-40b2-9e7d-012e998756b9

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes

Committed revision 4.
[root@ciserver conf]# 

svn delete의 경우 delete comment를 지정하기 위해 SVN_EDITOR를 환경변수에 등록해 주어야 한다.

Linux의 경우 vi, Windows의 경우 nodepad.exe 파일을 등록한다.

c. SVN Repository를 여러개 구성하는 경우

하나의 Repository에 여러 개의 프로젝트를 구성할수 있다. 그럼에도 불구하고, SVN Repository를 여러개로 구분하는 경우는 다음과 같다. 각 프로젝트에 접근하기위한 사용자를 제한적으로 관리하고, 접근권한을 차단하기 위해서이다.

svnadmin create를 반복적으로 생성하되, --listen-port 옵션으로 default 3690, 3790, 3890,,, 등으로 추가생성하여 관리할 수 있다.

728x90
반응형