2009-09-20 1 views
5

Mercurial에 익숙하지 않다. 커밋을 자주 수행하고 기능 향상을 위해 기본 워크 플로가 가장 효율적인 작업 방법이 아닐 수도 있습니다. 너무 작아서 이전 단계로 되돌아 가야 할 때 매우 어렵습니다.Mercurial에서 더 나은 워크 플로 제안

프로젝트를 Mercurial에 설치하고 이미 첫 번째 커밋을 완료 한 후에 수행 할 작업입니다.

  1. 는 파일에 일부 변경을 확인하고 상태로 그것을 얻을 작은 개선이
  2. hg commit -m "improvement A works"
  3. 작동되는 경우 같은 파일을 일부 변경하고 다음 작은 개선이 어디 상태로 그것을 얻을 일.
  4. hg commit -m "improvement B works"
  5. 모든 보조 기능 개선 사항이 하나의 보조 기능이 올바르게 작동하는지 확인하십시오.
  6. hg commit -m "feature A works"

난 (넷빈즈 의욕 시각 플러그인) 역사를 열고 다시 내 현재 버전으로 복사하여 코드의 일부를 붙여 넣기 "개선 A"에서 만들어진 실수를 발견하면 거기서 다시 시작하십시오.

이것은 좋은 시스템처럼 보이지 않습니다 - 나는 어떤 제안이라도 고맙게 생각합니다.

답변

10

Jon과 솔루션에 동의하지만 기능을 구성하는 개개의 기능보다는 지점의 기능을 만듭니다. 워크 플로우 패턴은 다음이 될 것입니다 :

  1. 이 기능 A.에 대한 개선 A에 대한
  2. 전체 작업을 분기를 작성하고 커밋합니다.
  3. 개선 작업을 완료하고 커밋하십시오.
  4. 기능이 작동하는 것처럼 보일 때 기능 A 브랜치를 다시 트렁크에 병합하십시오.

이 기능 A의 개선 A의 실수를 발견하면 대신 처음부터 다시, 당신은 기능에 지점을 전환하고 다음을 수행하십시오

  1. 수정 개선 A와 커밋합니다.
  2. 지형지 물 A 지점을 다시 트렁크에 병합합니다.
+0

las3jrock : 감사. 기능 내에서의 개선보다는 기능에 대한 분기를 권장하는 이유는 무엇입니까? – uzo

+0

필자는 각 기능을 구성하는 개개의 기능이 아닌 지형지 물에 대한 지사를 추천합니다. 지사가 저장소 (프로젝트의 전체 개정 내역 포함)와 개별 커밋 개정 내역). 이 워크 플로에서 관련된 커밋은 분기에 함께 그룹화됩니다. Jon이 설명하는 워크 플로우에서 각 분기에는 정확하게 하나의 커밋이 포함되어있는 것으로 보이는데,이 경우 분기와 커밋은 개정 내역의 동일한 단위에 대한 중복 표현입니다. – las3rjock

+0

아니, 아니, 나는 당신이 한 가지 커밋을 위해 지사를 사용한다는 것을 암시하지 않으려 고했다. 그것은 우스꽝 스럽다. 이는 작업 단위를 지정하기위한 것일뿐입니다. 개선 사항은 웹 양식에 새로운 필드를 추가하거나 버그를 수정하거나 자체적으로 주요 프로젝트가 될 수 있습니다. 원하는 세분성을 결정하는 것은 사용자의 몫입니다 ... – Jon

7

안정적인 트렁크를 유지하는 지점으로 개선 된 사항을 격리 할 수 ​​있습니다.
Branch wiki page을보세요.

워크 플로우 패턴은 다음과 같습니다 성공적으로

  • 이 개선 B에 대한 지점을 만드는 경우

    1. 개선을위한
    2. 전체 개선 A의 작업과
    3. 시험 변경 체크인을 분기를 작성하고 트렁크에 다시 병합
    4. 개선 작업 완료 B 및 체크 인
    5. 테스트 변경 및 트렁크로 다시 병합 if 성공

    실수를 발견하면 지점을 포기하거나 (트렁크로 다시 병합하기 전에 지점에서 버그를 수정할 수 있음).

  • 4

    분기 방법에 동의하지 않습니다. 병렬 개발이 필요하지 않은 경우 분기의 ​​복잡성을 추가해야하는 이유는 무엇입니까? 작은 '체크 포인트'커밋에는 아무런 문제가 없습니다. 태그를 사용하여 중요한 커밋을 가리킬 수 있습니다.