2011-10-04 5 views
7

Mercurial에 브랜치를 작성 했으므로 병합 된 브랜치 결과에 대한 기록이없는 원격 브랜치에 해당 브랜치의 결과 병합을 어떻게 밀어 넣을 수 있습니까? 예를 들어. 히스토리가없는 mercurial 병합 된 브랜치를 밀어 넣으십시오.

[a] - [b] -----------------[k] 
    \     /
     [g] - [h] - [i] - [j] 

[A], [B] 및 [j]가 특징 인 지점을 통해 '디폴트'분기되는 [K], [g]. 기본 브랜치에 기능 브랜치를 병합 한 후 푸시하면 원격 저장소의 [a] - [b] - [k] 변경 세트 만 있으면됩니까? 단순히 브랜치를 보지 않으려는 경우, 원격 저장소에 푸시 된 변경 세트를 원하지 않습니다. 나는 어떻게 [k]에 도착했는지 상관하지 않으며, [k] 최종 결과가 무엇인지 신경 쓰지.

저는 현재 브랜딩 방법으로 브랜치쪽으로 기대고 있습니다. 그러나 이것을 복제로 어떻게 수행 할 수 있습니까? 명명 된 가지로이 작업을 수행 할 수있는 방법이 있습니까?

나는 이것에 대한 해답을 찾고 있었지만 너무 많은 문서가있어 건초 더미에서이 바늘을 찾기가 어렵습니다.

답변

7

병합하는 대신 hg rebase--collapse 옵션을 사용하려고합니다. REBASE 확장 의욕와 함께 제공되는

hg rebase --collapse --source [g] --dest [b] 

, 당신은 단지 그것을 설정 파일에 enable해야합니다.

p.s. 병합 [k]을 이미 커밋 한 경우 리베이스하기 전에 rollback (또는 strip) 먼저 처리해야합니다.

+0

그랬습니다! 모든 링크에 감사드립니다. 이제는 TortiseHg가 제대로 할 수있는 방법을 알아 내고 싶습니다. – David

0

어떻게 내가 에 대한 역사를 제거하려면

어떤 방법이 병합 된 지점의 결과를 얻지 방법의 역사없이 원격 저장소에 해당 분기의 결과 병합을 밀어 수 있습니다 병합 가지

+2

그대로 [축소 확장] (http://mercurial.selenic.com/wiki/CollapseExtension)도 도움이 될 수 있습니다. –

관련 문제