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 디렉토리
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 |