2011-09-22 5 views
3

저는 Mercurial을 수년간 사용해 왔지만 이제는 회사에서 Subversion으로 전환하는 파일럿을하고 있습니다.중앙/공유 저장소에서 세분화 된 변경 집합을 어떻게 관리합니까?

우리는 개발자가 더 세분화 된 변경 집합을 작성한다는 사실을 받아들입니다. 그 중 일부는 빌드조차되지 않을 수도 있습니다. 개발자가 중앙 저장소에 변경 사항을 적용하면 이러한 변경 집합이 모두 기록에 남게됩니다. 이는 자연스럽고 예상되는 내용입니다.

내 질문은 : 변경 집합이보다 세분화되어 있기 때문에 개발자가 빌드하지 않은 개정판으로 업데이트 할 수 있다는 사실을 어떻게 처리할까요? 우리는 저장소의 어느 곳에서나 체크 아웃 할 수 있고 그 시점부터 릴리스를 합리적으로 기대할 수있는 세계에서 왔습니다. DVCS에서는 "안전한"개정판이 어디에 있는지 어떻게 알 수 있습니까?

이 문제는 다소 this question으로 해결되었지만이 문제를 처리하는 방법을 찾는 데는 분기 저장소와 명명 된 분기를 사용하는 방법을 찾는 데 더 많은 관심이 있습니다.

기록을 수정하여 저장소의 기록에서 변경 사항이 무너 지도록 기록 (예 : collapse extension)을 수정하는 방법이 있지만 Google은 기록을 보존하고자합니다.

mercurialmozilla 나무를 보면 안전한 수정 버전을 동기화 할 명확한 방법이 없습니다. 이것이 우리가 생각하는 것만 큼 중요하지 않습니까?

+0

Mercurial 프로젝트 자체에서 "모든 커밋은 테스트를 통과해야합니다"라는 가이드 라인이 있습니다. 우리는 이것을 완벽하게 지키지 않지만 우리는 꽤 잘합니다. – mpm

답변

1

ANY 이전 버전을 실제로 확인하고 빌드 할 필요가 있습니까?

팁이 항상 생성 될 것으로 기대할 수 있다는 점에 동의합니다.
이것은 "일종의"미완성 작업을 주된 레포 정책/상호 합의에 밀어 넣지 않음으로써 쉽게 실현할 수 있습니다. like Lazy Badger already said.

에 관한 과거 버전 :

  • 당신이 (같은, 당신은 지금 버전 1.6에있어 및 1.2 버전 실행 파일을 만들고 싶어) 다시 소프트웨어의 이전 공식 릴리스를 구축하려는 경우, 당신은 기대할 수 있습니다 모두 1.2 태그는 항상 "미완성 저작물을 푸시하지 마세요"정책을 준수해야합니다.
  • ANY 개정판을 작성하고 빌드하려는 경우 ... 음, 정말로 필요합니까? 이전 버전의 모든 버그는 공식 릴리스 (위의 "1.270 태그"항목 참조)를 언급 할 것이고 그 중간에있는 버그는 아닙니다.
  • 당신은 정말은 (어떤 이유), 당신은 커밋 메시지를보고해야하고,이 feature 'foo' finished (started implementation of feature 'foo'을 말한다 아닌 하나)를 말한다 커밋 찾을에서의 공식 릴리스 간 빌드 가능한 버전을 필요로하는 경우 .
    예, 약간의 사고/상식이 필요하지만, 저는 이것이 정말로 필요할 것이라고 상상할 수 없습니다.
0

언제든지 tag 커밋 할 수 있습니다. 이것들은 메이저/마이너 릴리스, 성공적인 빌드 또는 당신이 좋아할 수 있습니다. 리포지토리에 mercurialmozilla 태그가 표시됩니다.

+0

그리고 모든 태그가 리비전을 저장소에 추가합니까? – bialix

+0

나는 그 질문을 이해하고 있는지 확신 할 수 없다. 태그를 사용하여 마일스톤과 같은 특정 방식으로 기존 커밋을 특별하게 표시 할 수 있습니다. 중앙 저장소를 사용하는 경우 태그는 나머지 커밋과 함께 푸시됩니다. –

+0

@bialix - 예, 변경 집합을 추가하십시오. 각 태그가 * 버전있는 파일을 변경하기 때문입니다 .hgtags * –

1

정치적인 해결책은 "메인 레포로 쓰레기를 밀어 넣지 마라", 그렇지 않습니까?

기술 솔루션은 태그를하지 수 있지만 한 북마크 기본 분기와 DEVS 사이의 계약의 마지막 작업 HEAD에 적용 ("KnownAsGood")는, "팁을하지하지만, 북마크, 업데이트"

커밋을 테스트하고 북마크를 이동하는 사람은 "프로젝트 관리"태그의 또 다른 질문입니다.

1

기능 분기를 사용하고 빨리 감기 병합없이 병합하는 경우 기본 줄에만 안정적인 빌드가 있지만 원하는 경우 기능 분기에서 불안정한 부분을 볼 수 있습니다.

관련 문제