문제

"Google Code"에서 호스팅되는 OpenSource 프로젝트 중 하나에 "Tortoise SVN Client"와 함께 "Subversion"을 사용하기 시작했습니다. 사용에 대한 모범 사례를 얻고 싶습니다. 기본 폴더 구조 (트렁크, 브랜치, 태그)를 따르고 있습니다. 다음은 질문입니다

  1. 초기 체크인은 언제 하시겠습니까? 일련의 기능을 완료 한 후 또는 개발 첫날부터 발생합니까?
  2. 초기 체크인은 어떤 디렉토리에? "트렁크"에 들어가거나 "분기"를 확인하고 기능이 완료되면 "트렁크"로 병합됩니다. 이 경우 "트렁크"는 기능이 완료 될 때까지 비어 있습니다.
  3. 변경되면 "트렁크"를 직접 확인 하시겠습니까? 작업 사본이 항상 "Branch"디렉토리를 사용하지 않으면 맞습니까?

모든 도움이 감사하겠습니다.

도움이 되었습니까?

해결책

  1. 파일에 대한 수정을 시작하기 전에 파일을 체크인하는 것이 좋습니다 (일찍 체크인하고 자주 체크인하십시오).

  2. 그것은 의존합니다. 어떤 사람들은 트렁크를 좋아합니다 안정적인, 지점에서 작업 한 다음 기능이 준비되면 지점을 트렁크로 다시 병합하지만 트렁크에 직접 커밋 할 수도 있습니다.

  3. 또한 작업 방법과 트렁크 (최신 안정 버전 또는 최신 출혈 엣지 버전)에서 무엇을 갖고 싶은지에 따라 다릅니다.

다른 팁

일찍 그리고 자주 확인하는 것이 좋습니다.

이를 수행하는 방법에는 여러 가지가 있지만, 내가 성공적으로 작업 한 가장 일반적인 것은 개발 지점에서 작업하고 안정적인 지점 (마이너 버전 릴리스, 이정표 등)에 도달 할 때 트렁크로 합병하는 것입니다.

아직하지 않은 경우 확인하십시오 레드 북, SVN 정보에 대한 훌륭한 리소스입니다.

처음부터 새 프로젝트를 만들 때 일반적으로 SVN의 사용자 영역에서

/svn/users/me/project1

이것은 대부분의 프로젝트가 프로토 타입을 버리기 시작하고 이것에 대해 분기를 거의 사용하지 않기 때문입니다. 프로젝트가 공식화되고 가까워지면 첫 번째 "프로토 타입"릴리스입니다. 자체 저장소로 마이그레이션합니다.

/svn/project1/trunk

분기를 사용하려면 약간의 추가 작업이 필요하므로 필요하지 않으면 사용하지 않습니다. 여러 사람들이 동일한 프로젝트를 진행하고 충돌이 종종 있거나 반복하고 버리기로 결정할 수있는 기능을 연구 할 때입니다. 분기에서 완료되면 병합하지 않고 삭제하기 만하면됩니다.

모든 대답은 당신이 일찍 체크인하고 자주 체크인하고 더 이상 동의 할 수 없다고 제안합니다. 그래서 그게 전부입니다. 그러나 요약을 다음과 같이 읽었습니다. 어떤 종류의 용도가 적합 할 수 있습니까? 그래서 여기에 대한 답이 있습니다.

전복을 애플리케이션 저장소로 사용하는 회사에 대해 읽었습니다. 따라서 서버에 Application Y의 버전 X를 설치하려고한다고 말합니다. 그러면 서버는 SVN 서버에서 업데이트를 실행합니다. 또한 구성 파일도 저장했습니다. 그리고 구성에 대한 변경 사항 (최종 고객을위한 별도의 웹 인터페이스를 통해)은 SVN 구성 리포에 전념했습니다. 이것은 훌륭합니다. '코스이 사람들은 Win2K3에서 MS Power Shell을 사용하고 있었지만 여전히 다른 곳에서는 기술을 적용 할 수 있습니다.

일찍가 아니라 즉시 체크인하십시오. 브레인 스토밍이 포함 된 임시 텍스트 파일과 끔찍한 암호화 된 psuedo 코드가 포함되어 있지 않더라도 커밋하십시오.

나는 (많은 사람들처럼) 코드 검색을 수행하거나 내가 원하는 것을하는 프로그램을 검색하는 동안 당신과 같은 프로젝트를 찾습니다. 나는 당신의 첫 페이지를 읽은 다음 즉시 당신의 SVN 트렁크를 탐색하여 당신이하고있는 일을 확인할 것입니다.

트렁크에 코드가 제로가 있다면 모든 것을 잊어 버릴 것입니다. 의도 한 디자인과 Psuedo 코드를 설명하는 파일이 적어도 있다면 내 아이디어를 보여주는 패치를 보내기 시작할 것입니다.

빈 저장소가있는 프로젝트는 "긁히지 않는 가려움증"을 외칩니다. 가능한 한 빨리 무언가를 밀어 넣으십시오.

그 후, 자주 커밋하십시오. 나는 많은 작고 질서있는 약속을 만들고 싶어서 회귀를 쉽게 추적하고 롤백/독성 개정판을 수정 할 수 있습니다.

  1. 당신이 당신의 생성 후에 확인하십시오 공백 기준 프로젝트/솔루션 구조. 이 상태에서는 실제로 비워집니다 편집 가능 작동 코드는 없지만. 원칙은 팀이 점진적으로 정기적으로 저주함에 따라 전체 프로젝트를 개발 전반에 걸쳐 수집 가능한 상태로 유지하는 것입니다. 작은 빌드가 깨지지 않도록 변경됩니다.

  2. 트렁크 나 지점에서 초기 체크인이 발생 해야하는 법률은 없습니다. 빈 프로젝트로 트렁크를 시작하여 처음부터 바로 안정적이어서 개발을 수행하여 트렁크를 완료 한 후 다시 통합 할 수 있습니다. 빈 프로젝트를 지점에 체크인하고 트렁크에 실질적인 것을 병합하기 전에 첫 번째 작업 또는 기본 기능을 개발하도록 선택할 수도 있습니다. 어느 쪽이든, 1 지점 1을 기준으로 트렁크는 안정적이어야하고 고품질. 고품질 컨텐츠를 트렁크에 병합하십시오.

  3. 이 유형의 관행에 대한 엄격한 의무는 없습니다. 일부 팀은 분기됩니다 모든 것, 변수 이름 변경의 간단한 리팩토링조차도 변경됩니다. 일부 팀은 단일 지점 (트렁크)에서 분기/병합을 알지 못하고 모든 것을 개발하지 않습니다. 모든 팀은이 문제에 대해 자체 균형 수준을 가지고 있습니다. 내 개인 가이드 라인은 새로운 기능이나 주요 버그 수정 또는 재 설계가있는 경우 테스트하도록 분기합니다. 문자열 철자 오류와 같은 사소한 수정이거나 웹 페이지에 2 개의 소수점 자리가 표시되는 경우 트렁크 사본을 수정하면 충분합니다. 물론 "주요"대 "미성년자"에 대한 해석이 다르기 때문에 개발/팀 리드가 표준을 설정해야합니다. 어느 쪽이든, 있어야합니다 변경 사항에 동반 된 단위/통합 테스트 분기 또는 트렁크가 가능한 한 결함이없는대로 작동하는지 확인합니다. 기억해야 할 키워드는 항상 "고품질 테스트 코드"입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top