SubversionTrac
이 페이지의 목적은 최근에 컴포넌트 연구팀에서 도입해서 운영중인 Subversion (이하 SVN) 소스코드 관리 시스템과 Trac 프로젝트 매니지먼트 시스템을 연동해서 운영하는 내용을 소개하는 페이지입니다.
이 위키페이지가 포함하고 있는 내용의 범위는 :
- 도입하게된 배경
- SVN시스템이 가지는 장점
- Trac 시스템을 연동하게되었을 경우 강화되는 기능
- 클라이언트 툴 소개
- SVN 단점
이 페이지에서 포함하지 않는 내용의 범위는 :
- SVN 소스코드 관리 시스템 설치 / 환경설정 방법
- Trac 시스템 연동 설치 / 환경설정 방법
- 각종 연동 클라이언트 툴 사용법
- 각 시스템(SVN, Trac) 의 관리자 기능 (백업 / 권한 등등)
포함되지 않은 내용들은 이 페이지가 아닌 아래의 페이지에서 참조하시기 바랍니다. 아직 정리중이라 미완성 페이지들도 있습니다.
도입배경
아직도 엑셀인가 ?!!!!
프라미스의 한계인가? 아니면 엑셀에 만족하는 것인가? 더이상 엑셀로 요구사항을 관리 / 추적 하진 않겠다. 나부터 바뀌자....
내꺼야 건들지마!!!!
근래 유행하는 XP 같은 걸봐도 프로그램 소스는 공동 소유와 같은 개념으로 접근하기 때문에 "이 파일은 내거니까 아무도 손대지마!"하는 식의 태도는 용납하지 않는 경우가 많다.
KLDP 의 vss 와 cvs 의 장단점에 대해...
VSS냐 CVS 냐 라는 것에 대한 언쟁도 벌써 2년전의 일이다. CVS 에서 더욱 발전한 SVN 은 더이상 말해 무엇하리... http://bbs.kldp.org/viewtopic.php?p=93275
오래된 투표결과 이것도 한 2년쯤 된 내용 http://bbs.kldp.org/viewtopic.php?t=27899
-
여러분들의 회사에서는 CVS, VSS같은 버전관리 프로그램을 사용하십니까?
CVS를 이용한다. 44% [ 45 ]
Visual Sourcesafe를 이용한다. 9% [ 10 ]
막강한(?) 공유폴더를 이용한다. 12% [ 13 ]
기타 버전관리 프로그램을 사용한다. 6% [ 7 ]
각자 알아서 개발한다. 버전관리 같은거 안하더라. 26% [ 27 ]
눈에띄는 각종 늬우스
-
2005년 10월 28일 파이썬 subversion으로 이전 완료
CVS를 사용하고 있는 소스포지의 안정성에 문제를 느끼고 있던 파이썬 프로젝트가 이전함. -
Thursday 05/May/2005. KDE's Switch to Subversion Complete http://dot.kde.org/1115285369/ -
Zope.org is move to CVS to SVN. -
ASF: The Apache Software Foundation. [ http://svn.apache.org/repos/asf/] -
KDE: The K Desktop Environment. [ svn://anonsvn.kde.org/home/kde/] -
GCC: The GNU Compiler Collection. [ svn://gcc.gnu.org/svn/gcc] -
Python: The Python programming language http://svn.python.org/projects/python/ -
Samba: SMB services for *nix systems. [svn://svnanon.samba.org/samba] -
Mono: an open-source implementation of C#/.NET. [svn://mono.myrealbox.com/source/] -
PuTTY: Win32 SSH/Telnet implementation [svn://ixion.tartarus.org/main/putty/] -
Zope: web application server/framework. [svn://svn.zope.org/repos/main/Zope] -
Plone: content management system. http://svn.plone.org/ -
Xiph: open-source multimedia protocols. http://svn.xiph.org/ -
GnuPG: a free encryption program. [svn://cvs.gnupg.org/gnupg/] -
CUPS (Common UNIX Printing System): printing services for Unix-based OS's. http://svn.easysw.com/public/cups/trunk/ -
Irssi: a GPL-licensed IRC client. http://svn.irssi.org/ -
Linux From Scratch: a Linux distribution built from source. [svn://linuxfromscratch.org/LFS/] -
Conectiva: a South American Linux distribution. [https://moin.conectiva.com.br/RepositorySystem -
Trac: a project management system.http://svn.edgewall.com/repos/trac/ -
GNU Enterprise: enterprise application development. [ http://www.gnuenterprise.org/developers/svn.php]
...........
다른 사람들의 말.말.말.
-
openlook.org Trac과 함께한 2주 : http://openlook.org/blog/867
- 오 랫동안 변함없이 사용할 수 있는 좋은 도구를 갖는 것도 중요하겠지만, 도구는 언제나 자신의 한계를 가지고 있다. 모든 문제를 해결할 수 있는 도구가 있다면, 그 도구는 모든 문제를 똑같이 어렵게 해결할 것이다. 그러므로 하나의 도구에 종속되지 않고 문제 해결에 적합한 도구를 유연하게 받아들이는 능력 또한 현대의 프로그래머가 갖추어야 할 기본 덕목이라고 생각한다. - nohmad
SVN 시스템 소개
-
WikiPedia : http://en.wikipedia.org/wiki/Subversion_%28software%29
-
KLDP Wiki : http://wiki.kldp.org/wiki.php/Subversion 한글화된 문서로 소개되어있다.
SVN 시스템의 기본개념
- 소스세이프 : 체크아웃 - 체크인
- CVS or SVN : 카피- 머지 (체크아웃 - 업데이트 - 커밋) SVN는 로컬에 체크아웃 한다고 해서 다른 사람이 체크아웃 못하는 것이 아니다. 단순히 로컬에 복사해 오는 동작이라고 생각하면 된다. 이것을 나중에 체크인(커밋) 하려고 할때 충돌이 나면 머지하는 과정을 거친다.
SVN 시스템의 장점 / 단점
장점
- Can use command line.
- Directory Versioning : CVS does not version control directories but SVN can do.
- Atomic commits
- Simpler (and faster) branching
- offline operation : 여러 사람이 쓰는 저장소라도 base rev. vs. w.c. diff 같이 유용한 작업을 빨리 할 수 있다. branching과 tagging, 그리고 각 branch 사이를 오가며 특정 changeset을 merge 하는 일이 잦은 경우 최고의 성능을 발휘한다. (CVS도 상대가 되지 않음)
- offline oeration 1 : hidden directory 인 .svn 디렉토리에는 각 파일의 원본이 저장되어있으므로 심지어 네트웍에 연결이 되지 않은 상태라도 수정전의 상태로 되돌릴 수 있다.
- 네트워크 레이어 선택 : Subversion은 리파지터리 액세스를 위해 별도의 추상화된 표기법을 이용하여 새로운 네트워크 메커니즘 구현을 쉽게 해준다. Subversion은 아파치 HTTP 서버에 확장 모듈로 추가할 수 있으며, 이로인해 안정성과 상호운용성에 있어서 큰 이점을 갖는다. 기존 웹 서버의 인증, 압축기능 등을 그대로 사용할 수 있다. 게다가 가볍고, 독립실행이 가능한 Subversion 서버 프로세스를 이용할 수도 있다. 독립실행 서버는 SSH를 이용해서 쉽게 이용할 수 있는 고유의 프로토콜을 사용한다.
단점
- 소스세이프와 비교했을때 상대적으로 지저분한:( 작업 디렉토리
- grep 명령을 사용할 때 –exclude=’*.svn*’ 와 같은 필터 조건을 넣는다던지, 윈도우즈에서 작업하는 경우 .svn 이라는 hidden 디렉토리가 로컬에 생성됨 (이것은 CVS 도 마찬가지), 하지만 릴리즈를위한 깨긋한 소스코드를 내려받으려면 export 명령을 사용하면 되고, 특별히 hidden 폴더의 존재때문에 불편한 점은 없다고 느껴짐.
- 잦은 커밋을 하는 경우 리비전 번호 인플레이션이 유발될 수 있음.
TRAC 소개
-
TracGuide : http://projects.edgewall.com/trac/wiki/TracGuide
- WebDAV on HTTPS basic authentication
- Trac은 텍스트가 들어갈 수 있는 모든 부분에 위키 포매팅을 사용하고 있어서 위키의 강력하고 유연함을 충분히 활용할 수 있다. 리비젼간 이슈간 티켓간 등등 여러가지 기능들 목록들 내용들과 링크가 지원된다는 얘기...
- 파이썬으로 작성되어있으며 C로 작성된 템플릿 라이브러리인 clearsilver를 깔고 있어서 속도가 빠름, clearsilver외에도 sqlite를 DBMS로 사용하고, 저장소에 접근하기 위해서 python-subversion이 필요하다.
Trac 시스템과 연동하게되었을 경우 가지게되는 장점
-
웹 인터페이스 제공 -
강력한 Timeline 기능 -
위키와 SVN 간의 연동 -
version과 milestone개념을 지원 -
티켓 시스템 -
사용자 지정 리포트 기능 -> SQL 을 사용해서 사용자가 마음대로 리포팅을 뽑아낼 수 있음. (UI 로 이쁘게 보여준다) -
무지무지 강력한 검색기능 : 위키 페이지나, 이슈 트래커 본문에서만 검색이 되는 것이 아니라, 커밋 로그나 각 수정사항(위키 페이지, 이슈 등)의 짧은 커멘트에서 까지도 검색이 되기 때문에, 사실상 프로젝트와 관련된 대부분의 곳에서 검색을 해 준다.
SVN GUI 클라이언트 프로그램 소개
-
TortoiseSVN : MS Windows용 GUI 클라이언트 프로그램. CVS GUI 클라이언트 프로그램으로 유명한 TortoiseCVS와 거의 같은 인터페이스를 가지고 있음. http://tortoisesvn.tigris.org
-
Ankhsvn : Visual Studio .NET 애드인 형식의 SVN 클라이언트 프로그램. VS.NET과 통합성이 매우 높다. VS.NET의 솔루션 뷰에서 커밋, 업데이트 등의 작업이 가능하며 솔류션 뷰의 각 파일에 수정되었거나 수정되지 않은 파일의 상태를 표시해줌. http://ankhsvn.tigris.org
-
RapidSVN : 크로스 플랫폼 SVN 클라이언트 프로그램. Windows, 리눅스, BSD의 X Window에서 사용할 수 있음. http://rapidsvn.tigris.org
-
eSvn Qt toolkit|Qt-based client
-
JSVN [[Java programming language|Java]] Swing Java client
-
TortoiseSVN [[Microsoft Windows|Windows]] shell (i.e. Windows Explorer) extension
-
svnX Mac OS X GUI front-end to svn
- AnkhSVN is a Visual Studio .NET addin. It allows you to perform the most common subversion operations from directly inside the VS.NET IDE.
-
gsvn mostly abandoned by its original authors, due to lack of time; written entirely in python, using GIMP Toolkit|GTK+
-
SmartSVN multi-platform (java based) client for Subversion; work in progress at the time of the writing.
-
SCPlugin [[Mac OS X]] plug-in for the Macintosh_Finder|Finder
-
kdesvn, Yet another subversion client for KDE
검토배경 [QA팀 EKP부문 오일균 입장]
불필요한 반복작업 및 수작업을 제거하고, 소스의 자동화되고 정확한 이력 제어/관리
비교대상 : 현행 사용중인 기능추가게시판
- 중복 작업 제거 -- 시간 비용 감소 (기능추가게시판 폐쇄 및 활용범위 축소)
- 수동 작업 최소화 -- 정확성 향상
- 관리의 간소화 -- 스트레스 제거
SVN 도입을 위한 고려(요구)사항 [QA팀 EKP부문 오일균 입장]
- 열람성 (통계,검색 기능)
- 편의성, 사용성 (라이트 유저에게 비교적 세련된 UI가 제공되는가)
- 관리성, 운용성 (관리자입장에서 다루기 간편한가)
- 안정성 (데이터 백업/복원/복구의 용이성)
- 이식성 (이기종간 OS 및 HW 호환)
- 자동성 (빌드 ~ 반영) - FEEDBACK REPORT
- 기능성
- 이력로그에 대한 관련첨부기능
- 빌드/패치/릴리즈 등의 레이블 기능 (TAG, BRANCH 의 실용성)
- 이력로그의 COMMENT의 양/형태 지원의 유연한 기능
- 분류기능 (제품별, 프로젝트별, 버전별 별도 및 통합관리)
SVN 활용범위 [QA팀 EKP부문 오일균 입장]
MAIN WORKING VERSION BEFORE FREEZE : 연구팀이 OWNER (리서치대상)
AFTER FREEZED, RELEASED, PATCHED VERSION : QA팀이 OWNER (통제대상)
History
Last edited on 03/14/2007 17:02 by JasonPA
Comments (0)