24 시간 내내 회사의 버전 관리 전략을 시도 할 것입니다. 우리는 현재 SVN을 사용하고 있지만 구조는 없습니다. 기본적으로 트렁크 만 있고 커밋 만합니다. 최근 개발 관리자는 "태그"역할을하는 두 번째 리포지토리를 시작했지만 동일한 리포지토리의 일부가 아니라 완전히 분리 된 리포지토리이므로 "트렁크"와 수동으로 병합해야합니다. 실제로 "Dev"라는 폴더가 하나만 있습니다 (실제로 다른 날짜에 다른 "Dev"폴더가 있지만 "Dev"가 기본 폴더 임). 그 아래에는 다른 모든 항목이 있습니다. 다른 모든 프로젝트. 프로젝트별로 구성되지 않았으며 브랜치 / 태그 / 트렁크 또는 기타 개념이 없습니다. 처음에 설정 한 사람 물론) SVN을 설정하는 방법을 전혀 모르는 것처럼 보였으므로 그 이후로 누군가가 무언가를 깨뜨리는 것을 두려워하여 올바르게 행동하는 법을 배우지 않았습니다. 우리는 어떤 종류의 CI (또는 불행히도 자동화 된 테스트)를 사용하지 않습니다.
먼저 프로젝트별로 분리해야합니까? 예를 들면 다음과 같습니다. 두 개의 ASP.NET 웹 사이트 (웹 응용 프로그램, 웹 사이트가 아님), 웹 서비스, 모든 테이블 스크립트 및 저장 프로 시저를위한 배포 폴더, 외부 프로젝트를위한 두 개의 명령 줄 클라이언트 WebSites 및 공통 비즈니스 오브젝트 등이있는 공유 폴더. 이들 각각이 브랜치 / 태그 / 트렁크 설정이있는 자체 프로젝트이거나 다음과 같아야합니다.
dev/
branches/
tags/
trunk/
Site1/
Site2/
WebService/
SharedCode/
모든 가지와 모든 Dev 폴더의 사본을 가지고 있습니까? 공유 코드 라이브러리와 웹 사이트 중 하나 이상 (보통 둘 다)을 변경해야하는 경우가 종종 있기 때문에 이러한 접근 방식은 삼키기가 더 쉬울 수 있습니다.
둘째, 우리는 dev 서버와 라이브 서버에 정기적으로 릴리스 (우리의 말로 "푸시")를 수행합니다. 내가 처리하는 가장 좋은 방법은 모든 개발이 트렁크로 들어가고 분기는 "임시적"이며 트렁크에 영향을 줄 수있는 새로운 기능을 추가하는 데 사용되고 태그는 릴리스 용이라는 것입니다. 그래서, 우리는 매달 말하고 새로운 모듈을 연구하고 있습니다. 트렁크를 분기하고 해당 분기를 내 코드, 쓰기 및 테스트에 사용합니다. 모듈이 완료되면 다시 트렁크로 병합하고 분기를 삭제하고 배포 할 준비가되면 태그를 지정합니다 ( "May2011"). 버그 수정이 게시 된 후 May2011 태그에서 수정되어 트렁크로 병합됩니다 (따라서 트렁크도 수정 사항을 얻습니다). 그리고 2011 년 5 월 수정으로 다시 밀려 날까요? 이것이 태깅의 의도입니까?