2017-10-11 2 views
0

default에서 일부 지사 (brnch)를 만들고 거기에 커밋을했습니다. 이제는 핫픽스에서 분기 지점에서 일부 릴리스 지점까지 모든 차이점을 체리 선택해야합니다. 수은으로 가능합니까? 지점의 모든 변경 사항에 대해 차이점 패치를 작성 하시겠습니까?

^^ 
    | |<--- brnch 
    | - commit3 
    | | 
    | - commit2 
    - | 
    | | 
    | - commit1 
    - | 
    | | 
    | | 
    |-- 
    | 
    - 
default 

그것은 분기 brnch (commit1, commit2, commit3)의 모든 commmits에서 패치를 생성하고 (내 경우에는 핫 픽스를 해제) 일부 다른 지점을 적용 할 수 있습니까?

답변

1

hg help exporthg help import을 참조하십시오.

예 :

hg export branch(brnch) -o brnch.patch    # export everything on brnch 
hg export -r commit1 -r commit2 -o cherrypick.patch # cherrypick two changesets 

hg update <somewhere_else> 
hg import brnch.patch # import the revisions in the patch 

hg import --no-commit brnch.patch # import (but don't commit) revisions. 
hg commit -m hotfix    # commit changes as one commit with "hotfix" description. 
1

당신은 단순히 hg rebase에 의해 그것을 달성 할 수있다.

단순화하기 위해 나는 당신이 당신의 릴리스 지점에 투입 참조하여 brnch 년 이후 commit1에서 모든 것을보고 싶어한다고 가정합니다. 따라서 릴리스 분기를 체크 아웃 한 다음 brnch 커밋을 리베이스 :

hg update release 
hg rebase --source commit1 --collapse --keep --dest . --message "bla bla something fixed" 

은 또한 당신은 개정 범위를 제공 할 수 있습니다. 접히고 싶은 커밋이 브랜치 브랜치에서 비선형 인 경우 접목 (개별 커밋을 체리 따기)에 의지해야합니다. 그 다음에 접목 된 모든 변경 집합을 이후에 접을 수 있습니다 (hg fold). 첫 번째 단계의 초안을 보관할 경우 릴리스 지점으로 이동합니다.

관련 문제