본문 바로가기
CM/Svn

배포 하기

by 태하팍 2012. 2. 22.
반응형

1. SVN
2. ANT
3. 배포 Shell

이 3박자로 배포하는것을 만들려고 한다.

상황은 이렇다.

svn 설치 완료, ant 설치완료
이클립스에서 svn을 연동한 뒤 commit 완료!

서버에 가서 소스를 찾아보았으나 소스를 찾을수 없었다.....

알고보니 repository 밑에 db 밑에 있었다. 파일 형식이 다른 것이였다.
이런 형식으로 되어있다.
./   ../  0*   1*   10*  11*  12*  13*  14*  15*  16*  17*  18*  19*  2*   20*  21*  22*  23*  24*  25*  3*   4* 

자 그럼 소스를 배포를 할려면!!

[1] 배포하기 위한 소스를 import하자! 어디에?? svn에!

1) 명령어 : svn import target http://20.100.32.199/svn/sample/trunk
위의 명령어는 target : 소스가 있는 곳 상위디렉토리에서 치면 된다.

2) 아래의 내용이 나올 것이다. :q!로 빠져나가자
--This line, and those below, will be ignored--

A    target

3) 아래의 내용이 나오면 c 를 누르면 된다.
Log message unchanged or not specified
a)bort, c)ontinue, e)dit

4) 아래와 같이 된다.

Adding         target/emartStudy07.java

Committed revision 26.

결과는 아래와 같이 해보면 된다.





또는 명령어 : svn list http://20.100.32.199/svn/sample/trunk   를 쳐본다.

결과 : svn list http://20.100.32.199/svn/sample/trunk
         emartStudy07.java

배포 쉘 내용
build build-$1
deploy deploy-$1


#! /bin/sh
cd /app/boons/drugstore_project/drug

if [[ $1 = "" ]] ; then
    echo "Usage:%>build \$target"
    echo "##################################################"
    echo "List of usable build target"
    echo "##################################################"
    ant -p


    exit 1
fi


ant "$@"


음...현재 헷깔리는게 흐름이다.

내 생각에는
1. commit시 소스가 서버에 업데이트
2. svn update 명령어를 통해 리비전 업데이트
(ex. svn update -r 36818 www/front/static/js/indexPopCommon.js)
3. 서버에 있는 소스로 빌드(ant)
4. 배포 파일 리포트 작성
5. 스크립트를 통하여 web, was 서버에 배포! or 백업, 롤백..

음..더 생각해보자!



svn 디렉토리

trunk : 단어 자체의 뜻은 본체 부분, 나무줄기, 몸통 등 입니다. 프로젝트에서 가장 중심이 되는 디렉토리입니다. 모든 프로그램 개발 작업은 trunk 디렉토리에서 이루어집니다. 그래서 위의 구조에서 trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어가게 됩니다.

branches : 나무줄기(trunk)에서 뻗어져 나온 나무 가지를 뜻합니다. trunk 디렉토리에서 프로그램을 개발하다 보면 큰 프로젝트에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 생깁니다. 프로젝트안의 작은 프로젝트라고 생각하면 됩니다. branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.

tags : tag는 꼬리표라는 뜻을 가지고 있습니다. 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈를 할 때 0.1, 0.2, 1.0 하는 식으로 버전을 붙여 발표하게 되는데 그때그때 발표한 소스를 따로 저장하는 공간입니다. 위에서 보면 tags 디렉토리 아래에는 버전명으로 디렉토리가 만들어져 있습니다.





 

반응형

'CM > Svn' 카테고리의 다른 글

about svn:externals  (0) 2015.01.15
ubuntu에 svn 설치 하기(CollabNet Subversion Edge)  (6) 2013.06.04
이클립스 SVN Repository에서 한글 깨짐 현상  (0) 2012.06.19