2012-08-22 7 views
1

내 조직에 SVN을 구현하려고합니다. 우리는 생산 및 개발이라는 2 개의 서버를 보유하고 있습니다. 일부 프로그래머는 시스템 사본을 소유하고 있습니다.SVN을 사용하는 가장 좋은 방법

우리는 현재 어떻게 작동합니까 : 개발 서버가 트렁크 아래에 있습니다. 일부 프로그래머는 직접 작업합니다. 프로그래머가 자신의 복사본을 가지고 있다면 - 그는 svn에 private branche를 가지고 있습니다.

프로덕션 서버의 주된 문제점은 다음과 같습니다. 우리 시스템에는 릴리즈 버전이 없으므로 svn에 태그가 없습니다. 제작 용으로 별도의 branche를 만들었습니다 - 마스터. 개발에서 생산까지 커밋을 전송해야하는 경우 트렁크와 마스터 브랜치를 병합합니다.

프로덕션 서버로 변경 사항을 전송하고 제어하는 ​​다른 방법이 있습니까? 다른 버전 관리 시스템을 사용 하시겠습니까?

답변

1

"프로그래머는 자신의 복사본이 있습니다"라는 것이 무슨 뜻인지 확신 할 수 없습니다 ... SVN을 사용하는 경우 작동하려면 로컬 복사본이 있어야합니다.

어쨌든 Version Control with Subversion (the SVNBook), 더 구체적으로는 basic working cycle에서 읽는 것이 좋습니다. tags을 사용하는 방법을 확인하십시오. 비록 어쨌든 이것을해야 할지라도, 'release'를하고 싶을 때마다 트렁크에 대해 브랜치를 합치는 것보다 확실히 사용하기 쉽습니다.

Git, Mercurial 또는 Bazaar과 같은 다른 SCM을 사용할 수도 있습니다. 나는 Git을 정말 좋아하지만, Bazaar는 사용하기 쉽고 Git만큼 좋은 SCM 중 하나이다. 힘내는 정말 좋지만 SVN에서 온 경우에는 마스터에 시간을 할애 할 수있다.

하나의 SCM에서 다른 SCM으로 전환하는 것은 쉬운 일이 아닙니다. 특히 이미 많은 저장소가있는 경우 특히 그렇습니다. 그렇게하려는 경우 먼저 작은 것으로 테스트하고 테스트하고 버전 기록을 유지하십시오 SVN에서 (목적지가 Git 인 경우 이것들은 tools입니다.) 그리고 큰 것을 찾으십시오.

+0

모든 프로그래머가 로컬 복사본을 가지고있는 것은 아니며 일부는 개발 서버에서 직접 작동한다는 것을 의미합니다. 나는 태그에 대해 알고 있지만 다음과 같은 것을 이해하지 못한다 : 나는 많은 commint를 하루 동안 가지고있다 - 나는 같은 양의 태그를해야만 하는가? –

+0

태그 추가는 릴리스 전략을 기반으로합니다. 소프트웨어를 버전 관리하는 방법에 따라 버그가 수정되거나 새로운 기능이 추가 될 때마다 또는 새로운 구조적 결정을 내포하는 주요 기능 세트가 작성된 경우에만 새 릴리스를 암시 할 수 있습니다. 예를 들어 일반적인 3 자리 버전 구성표 인 X.X.X를 사용하는 경우 각 버전은 주요 기능으로 나타낼 수 있습니다. 보조 기능. 버그 수정, 나는 그 각각에 대한 새로운 릴리스를 만들 것입니다. – AlejandroVK

+0

확인. 다음 상황을 해결하는 방법 : 우리는 하나의 파일이 있습니다. 2 명의 프로그래머가 트렁크에 몇 가지 변경 사항을 적용했습니다 (예 : 182 및 183 수정). 우리는 183 개정판 만 생산으로 이전해야하지만, 183 개정판의 태그를 만들면 182 개정판도 포함됩니다. –

관련 문제