2013-05-28 2 views
4

우리는 직장에서 기능 가지 패턴을 사용하기 시작했습니다. 가져 오는 트렁크 사람들이 SVN에서 재 통합 분기를 사용하지 못하게하려면 어떻게해야합니까?

  • 개발자 (들)을 완벽하게 구현 및 테스트
  • 개발자는 지점에 트렁크를 병합 지점을 사용하여

    1. 개발자 지점 :

      모든 것이 잘 작동 것으로 보인다, 여기에 우리가 사용하는 단계입니다 브랜치는 재 통합 준비가되어 있습니다.

    2. 메인테이너가 트렁크로 브랜치를 다시 통합합니다.
    3. 버전, 빌드 및 태그.

    개발자가 가지 폴더에 대한 읽기/쓰기 액세스 한

    는 메인테이너가

    우리는에 의해 제한 1.5.1 (SVN 사용하는 모든 폴더에 대한 읽기/쓰기 액세스 권한이 태그에 대한 액세스 및 트렁크를 읽고 서버를 우분투 서버 8.04로 업데이트), 최신 svn으로 최신 서버 (우분투 서버 12.04)로 전환하고 있습니다.

    클라이언트 저희에게 TortoiseSVN 1.7.6, svn 클라이언트 버전 1.7.4.

    지금까지 모든 것이 잘 작동하고 있으며 여러 개발자가 동시에 모든 기능을 작성하고 있습니다.

    그러나 현재 내가 유일하게 지명 된 관리자 일 뿐이며, 프로세스가 망치고 사람들이 적절한 수준으로 훈련되면 다른 사람이 지명됩니다.

    1. 개발자 분기가 재 통합 된 것을 잊는다 :

      내 문제는 하나 개의 프로세스가 더 자율적되고 내 직접 참여는 다음과 같은 시나리오가 발생할 수 감소되고 내가 그들을 방지하는 방법을 말할 수있다 실수로 작업을 커밋합니다.

    2. 관리자가 분기가 최신 상태이고 재 통합 할 준비가되었는지 제대로 확인하지 않고 다시 통합하고 커밋합니다.

    Tortoise 또는 SVN에서 경고 메시지를 표시하지 못합니다.

    다시 한 번 나는 그것이 무엇을하는지보기 위해 더러운 것을 저지하려고하지 않았습니다.

    사용자가 이러한 잘못된 커밋을 자동으로 방지 할 수 있습니까?

  • +0

    에서 삭제 모두 또는 지점에 대한 RO에 복귀 한 후 제한 할 수 있습니다하지도 않습니다 자동도 주요 질문을 단지 코멘트에 대답하십시오 유지에 장 [이 Reintegrated Branch Alive] (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.reintegratetwice) 이전 1.8 svn. 기본적으로'--record-only'를 사용하여 브랜치를 수정하고 트렁크에 reintegrated 된 브랜치 (가짜 브랜치는 브랜치와 병합되지 않음)를 가짜 병합하여 브랜치를 수정하고 "bad 커밋 "합니다. 그 가짜 병합을 재 통합 프로세스의 일부로 만들 수 있습니다. – valid

    답변

    2

    서브 버전 1.8에서 automatic merges을 좋아할 것 같습니다.

    SVNBook 장 "Reintegrating a Branch"을 확인하십시오. 이 장에서 지정한대로 재 통합 된 분기를 제거한 후에도 제거 할 수 있습니다.그러나

    :

    당신이 동기화가 트렁크에서 병합 계속 수행 할 수 트렁크에 재 통합 후 지점을 삭제하지 선택한 다음 다시 분기를 재 통합합니다. 이렇게하면 첫 번째 재 통합 후 분기에 변경된 만 트렁크로 병합됩니다.

    +0

    1.8의 RC2가 이제는 이것으로 움직이는 것처럼 보입니다. – RoboJ1M

    2

    우리는 어떤 종류의에게 비슷한 문제를 가지고 있었고, 조직 방법에 그것을 해결 : 분기 마지막으로 트렁크에 합병 될 때 모든 기존 이런 식으로 그래서, 팀 회의에 전달되며 다음 분기가 변경됩니다 체크 아웃이 "죽었습니다"- 실수로 체크인 할 수 없습니다. 아주 잘 작동합니다 (우리 팀에서).

    +0

    관리자가 지점에 대한 rw 액세스를 제거 할 수 있다고 가정합니다. – RoboJ1M

    2

    내가 (1.7.x 이상 SVN에 대한) 지점의 개보다 하나의 재 통합에 나쁜 아무것도 볼 수 없습니다 - --reintegate이 비 기능적 하위 트리에 지점을 변환하지 않습니다 다음 단지 지점

    의 변경 사항을 커밋 병합합니다

    트렁크가 분기 범위와 동기화되지 않으면 BTW merge --reintegrate이 실패합니다. 최후의 수단으로

    , ACL은 기능이 지점에 대한 있기 때문에 저장소

    +0

    1.7+ 만 분기를 작동하지 않는 상태로 변환하지 않는다는 것을 확인할 수 있습니까? 1.5에서는 --reintegrate가 병합되는 것처럼 보입니다. 그러나 많은 충돌이 있습니다. 아니요. "오류로 인해 아직 수행 할 수 없습니다. – RoboJ1M

    +0

    필자는 1.5, 7, 8의 관련 장을 다시 읽었으며 우리가 우리에게 줄 수있는 대부분의 문제가 여전히 1.5에있는 것처럼 보입니다. 몇 년 동안 우리를 완벽하게 지원하고 있지만, 우리에게는 아주 작은 보호 장치가 있습니다. 1.7 매뉴얼에서는 분기 재 통합이 분기를 사용할 수없는 상태로 둡니다. 1.8은 이제 동기식 병합 알고리즘을 사용합니다. – RoboJ1M

    +0

    @ RoboJ1M - 1.6 및 1.7 클라이언트를 사용하며 1.7에서 다시 통합 된 분기 만 사용할 수 있습니다. –