Archive

Posts Tagged ‘SVN’

How to set up svn ignore in command line

September 16th, 2010 No comments

Often I ran into this, so here are the steps to set up the ignore files in command line or in a shell.

When adding new xcode project into svn repository: Let’s say the project name is “helloapple” and user name is “myuser”.

When editor opens up, add these lines

And finally, commit the changes

Trac Installation on Dreamhost

May 17th, 2010 No comments

trac logo

  1. Install SVN through dreamhost web panel: “Goodies>Subversion”.
  2. Install Trac through dreamhost web panel: “Goodies> One-Click Installs”.
    1. Install more new website software – Advanced mode.
    2. Click Trac and hook up with svn repository just made.
  3. Add your user and authentification through Htaccess/WebDAV.
  4. In order to add Admin, log in to your shell account and type the following to add admin.
  5. Open the trac with your browser and log in as a admin account, change the settings as you wish.
  6. Change the trac.css, the default one is ugly, /path/to/trac/projects/htdocs/css/trac.css.
  7. Set up subversion hooks, this hook forces the users to write a ticket number against the trac. The hooks that I use can be found here. Need to edit “post-commit”, “pre-commit” file to match your path.
  8. Set the permission of /path/to/trac/db directory to 777.

Successfully Built a Production Pipleline: SVN + Unity3D + CruiseControl.net + Publish To Web

May 8th, 2010 No comments

ccnet logo

As the number of the Unity3D web projects has increased, I was looking for a decent way of automating deployment.
I took some time to research and read some articles about it and finally get it all working.

The whole build pipeline was set up on Windows machine and SVN and TRAC has setup on Linux in a different machine.

Check these articles and I’m sure any one can do the same without too much of hassle.

A few notes:

  • Even though Unity doesn’t allow multiple instances when it’s running in editor, it does allows multiple instances when it’s running in batch mode
  • SVN is really poorly handing binary data such as the art assets. Maybe using Mercurial might be helpful and yet just don’t have a resource to look into it yet.
  • Combining with TDD tools like NUnit will be great and yet there was an unexpected error when handling GUIStyle with NUnit. Should look into more in a near future.

svn repository 2개 합하기

March 23rd, 2010 No comments

본사에서 하던 프로젝트에 소스코드 관리하던 중에 svn 리포 2개를 합할 일이 있어서 몇 자 적어놓는다.

상황

  1. 리포가 2개가 있다. 리포 A는 /trunk/projectA/files 이렇게 있고, 리포 B는 /trunk/files 이렇게 있다. 리포 B의 내용을 합해서 리포A로 가는 것이 궁극의 목표다. 리포 B의 files는 나중에는 리포 A의 /trunk/projectA/files 에 합해지면 된다.

해결책

  1. 리포 A를 덤프한다. svnadmin dump repoA > repoA.dmp
  2. 리포 B를 덤프한다. svnadmin dump repoB > repoB.dmp
  3. 리포 B를 리포 A에 로딩한다. svnadmin load –parent-dir trunk/projectA repoA < repoB.dmp

주의할 점

/projectA 폴더 구조를 맞출려고 repoB에서 /trunk/projectA/files 라고 디렉토리를 옮겨놓고, svn commit 해서. 그 다음에 svnadmin load를 했는데, 이 디렉토리가 있다고 에러가 나면서 로딩이 되지 않았다. 반드시 이렇게 하지 말고 svn admin –parent-dir 를 사용해야 제대로 로딩이 된다.

Categories: Developer's Tool Tags: , , ,

Subversion Repository Migration

January 22nd, 2009 No comments
  • To back up:
  • To restore:
  • SVN, CVS에서 단체로 무시해야 할 패턴

    August 6th, 2007 No comments

    아래 패턴에 해당되는 파일이나 디렉토리들은 소스 컨트롤에 포함되면 안된다. 내가 쓰는 환경이다.

    Global Ignore Pattern:

    Debug Release DebugU ReleaseU DebugPS ReleasePS *.ilk *.exp *.positions *.ncb *.scc *.ncb *.plg *.aps *.cvsignore debug release debugu releaseu Hybrid debugGiga Output Dynamic_Debug Dynamic_Release Dynamic_Unicode_Debug Dynamic_Unicode_Release Unicode_Debug Unicode_Release DebugMVT *.suo .mayaSwatches *.bak

    cvs나 svn에서 Ignore pattern에 문자열을 등록한다.

    Categories: Developer's Tool Tags: , ,

    무료 개발 지원 사이트 SVN+TRAC+WIKI / assembla.com

    July 12th, 2007 No comments


    팀단위 개발 방법에 대해서 오래 전부터 이래저래 고민이 많았는데, 거의 SVN+WIKI+TRAC이 가장 편리한 것 같다. 물론 WIKI와 TRAC은 쓰는 사람 개개인의 노력이 필요하지만 프로젝트를 세련되게 수행하고자 한다면 하는 것이 좋은 것 같다.

    전에 google project라고 비슷한 형태의 개발지원 도구를 제공하는 사이트가 있었는데 역시 구글이야 하면서 크게 기대를 하고 써볼라고 했는데, svn repo가 너무 느려서 포기했다.

    그런데 이번에 Assembla.com 이란 사이트를 발견했다. 기본으로 svn/wki/trac 제공하고 공짜다. 회원가입하면, 프로젝트 수에도 제한 없고 용량도 제한없고, 속도도 본격적으로 한 건 아니지만 테스트 프로젝트로 해봤는데 svn 업다운 속도도 괜찮은 것 같다.

    학교 프로젝트나 취미 코딩등 소규모 프로젝트에서는 유용하게 사용할 수 있을 것 같다.

    SVN서버에서 여러개의 프로젝트를 관리하기

    March 2nd, 2007 No comments

    예를 들어 내가 A, B, C란 3개의 프로젝트를 진행하고 있다고 하자. 이 경우 각각 다르게 리포를 관리하고 싶을 때는 다음과 같이 하면 된다.

    [1] 먼저 리포로 사용할 디렉토리를 정한다. 여기에서는 “c:\svnrepo”란 디렉토리를 svn 리포디렉토리로 정하기로 하자.

    [2] 이 디렉토리에 3개의 서브디렉토리를 만든다. 그러면 다음의 3개의 디렉토리가 만들어 질 것이다.

    “c:\svnrepo\A”
    “c:\svnrepo\B”
    “c:\svnrepo\C”

    [3] 각각의 디렉토리에 가서 개별적으로 TortoiseSVN의 기능을 사용하여 “여기에 저장소 생성하기” 혹은 “Create Repository Here”를 눌러서 저장소를 생성한다.
    A, B, C 디렉토리안에 개별적으로 리포지토리가 생긴다.

    [4] 개별적으로 conf 디렉토리로 들어가서 개별적인 설정들을 해준다. 설정법은 윗쪽의 내용을 참고한다.

    [5] 서비스를 등록할 때에는 개별 리포지토리가 있는 루트 디렉토리를 등록해야 한다.
    즉 다음과 같이 등록을 해야 한다.

    SVNService -install -d -r ‘c:\svnrepo”
    “c:\svnrepo\A” 이렇게 하면 안 된다는 것이다.

    [6] 이렇게 만들어진 리포지토리를 접속하기 위해서 다음의 주소를 사용한다 개별적으로 리포지토리를 관리할 수 있다.

    svn://111.111.111.111/A
    svn://111.111.111.111/B
    svn://111.111.111.111/C

    Tortoise SVN Beginner’s Guide

    October 15th, 2006 No comments

    2005-03-23 광운대학교 K-NET 5기 조형렬 씨가 작성한 Tortoise SVN  초보자 가이드 문서를 인터넷 서핑하다가 발견했다.

    출처를 정확히 밝히고 업로드 해 놓는다.

    1050628951.doc

    서브버전(Subversion)의 설치법

    May 30th, 2006 No comments

    1.준비물

    윈도우용으로 처리할 것이니 Subversion의 WIN32용 최신 패키지를 구한다.
    http://subversion.tigris.org/

    서비스로 등록하기 위해서 SVNSERVICE.exe를 구한다. (사이트 없어진 것 같다. 가시지 말고 아래에서 다운로드 받을 것)
    http://clanlib.org/~mbn/svnservice/

    2.아파치로 설치하기

    아파치로 설치하기 싫으므로 생략하고 다음에 기회가 되면 업데이트 한다.

    3.서비스로 설치하기

    자체적으로 작은 서버를 제공한다.-> svnserve.exe 파일
    여기서 다운 받으세요.
    1027347974.zip
    먼저 Repository를 생성할 곳을 정해야 한다.
    적당한 위치를 정해서 그 곳에 자신이 작업한 내용들이 쌓이도록 한다.
    여기에서는 c:/svn/ 을 Repo로 삼는 것으로 하자.

    Repository 생성하기
    [방법 1] 이방법은 알아만둘것
    svnadmin create [rep를만들패스] –fs-type fsfs
    –fs-type 옵션에서 fsfs는 파일시스템을의미하고, bdb는 버클리DB를 의미한다.

    svnadmin create “c:/svn”

    [방법2] 이 방법이 편하니 이렇게 하자.
    이 절차는 TortoiseSVN이 깔려있으면 쉽게 마우스 오른쪽 클릭해서 “여기에 저장소 생성하기” 혹은 “Create Repository Here”를 눌러도 된다.

    생성하고 나면 c:/svn 디렉토리 내부에 몇개의 디렉토리와 파일들이 생성된다.

    Repository 설정 변경
    만들어진 repository내부의 다음 파일을 수정하여 repository의 설정을 바꾼다.
    /conf/svnserve.conf

    파일을 다음과 같이 만든다.

    [general]
    anon-access = none
    auth-access = write
    password-db = passwd

    anon-access : 계정이 없는 anonymous의 권한을 설정한다.
    auth-access : 계정이 있는 경우의 권한을 설정한다.
    (none : 권한없음, read : 읽기권한, write : 읽기+쓰기권한)
    password-db : 계정을 password파일을 사용한다.

    사용자 정보 수정
    사용자 정보를 수정하기 위해서 다음 파일을 고친다.

    /conf/passwd

    [users]
    kjune = mypassword

    ‘아이디 = 암호’의 형식으로 설정한다. 암호는 암호화되지 않는다.

    실행하기
    여기는 그냥 이렇게 실행하는 방법도 있구나라고 알면 된다. 쓰기 편한 방법은 아래의 서비스로 띄우는 방법이다.
    svnserve -d -r [저장소경로]
    예) svnserve -d -r “e:/svn”

    명령어로 서버 동작 조절하는 프로그램
    여기도 그냥 이런 법도 있구나 하고 넘어가도록 한다.
    명령행에서 일일이 실행하는 불편함을 덜어주는 SVNSERVE Manager같은 프로그램을 이용할 수도 있다. svnserve의 동작/정지 상태를 트레이 아이콘으로 표시해 주며 시스템 시작시 svnserve를 자동으로 실행 하게 할 수 있다.
    써봤는데 별로 안좋다.

    NT서비스로 띄우기
    http://clanlib.org/~mbn/svnservice/ 에서 다운로드 받은 zip파일을 풀어보면, 소스와 SVNService.exe파일이 있는데, 여기선 소스를 볼 건 아니니 SVNService.exe파일만 Subversion이 풀어진 디렉토리의 bin디렉토리에 놓는 것이 좋을 것 같다.

    사이트가 없어진 것 같아서 파일만 위에 링크해 놨으니 가져가시도록…

    C:\program files\Subversion\bin\ 디렉토리 정도?

    SVNService -install -d -r ‘c:/svn”

    이렇게 하면 서비스에 SVNService가 등록된다.

    Usage instructions:

    SVNService -? to display this list
    SVNService -install to install the service
    SVNService -setup to change command line parameters for svnserve
    SVNService -remove to remove the service
    SVNService -debug to run as a console app for debugging

    Example:
    SVNService -install -d -r c:\svnrepo
    SVNService -setup -d -r c:\otherplace\svnrepo

    서비스 시작하기
    이제 서비스로 가서 보면
    SVNService라는 새로운 서비스가 있다.
    시작유형은 자동으로 하고, 서비스를 시작하면 서버의 설정은 모두 완료되었다.

    포트설정
    아파치를 사용하지 않고, 서비스로 등록된 경우 외부와 연결되는 포트는
    3690 포트를 사용한다. 방화벽과 공유기 등등에서 적절하게 설정해준다.

    4.여담

    CVS를 윈도우에 설치할 때는 CVS for NT가 있어서 그냥 제어판에서 서비스로 등록하고 다 해서 편했는데, SVN은 윈도우 쪽에서 설치할 때 여러모로 못 마땅하다. 조만간 SVN for NT라는 프로그램이 나오지 않을까 예측해 본다.

    5.cvs repo를 svn으로 바꾸기

    cvs2svn이란 python으로 작성된 변환기가 있다.

    서브버전(Subversion)의 소개

    May 30th, 2006 No comments

    개요

    - 버전관리시스템(Version Control System)이다.
    - CVS의 대체품이다.
    - 라이센스 : Apache/BSD-style open source license.
    - 2006-04-27 현재 버전 1.3.1

    기능

    - 모든 cvs의 기능을 다 가지고 있다.
    - 디렉토리, 파일이름변경, 복사, 파일메타데이타가 버전관리된다. (cvs의 단점이었던)
    - Commit이 Atomic이다..???
    - 전체 commit이 성공해야 비로서 commit이 완성된다. 부분적으로 commit되는 거 없다.
    - Revision number가 commit당 하나씩 나온다. file당이 아니라
    - 리비전 당 버전이 나온다.
    - 아파치 2.x랑 붙어서 WebDAV/DeltaV 프토토콜을 사용한다.
    - 인증, 패스당 인증, wire compression(?), rep browsing이 가능한다.
    - 독립서버도 된다.
    - 아파치 없이도 된다. inetd를 통해서
    - 기본 인증, 권한 설정이 가능하다.
    - Branching/ Tagging이 싸다 (Constant)
    - Client/Server, Layered library 설계
    - 비용은 전체량에 따라 증가하는 것이 아니라 변화량에 따라 증가한다.
    - Repository를 데이타베이스(버클리DB)로 할 지, 파일로 할지 결정할 수 있다.
    - 바이너리파일을 효율적으로 관리한다.

    Categories: Developer's Tool Tags: ,