2013-09-05 5 views
0

이것이 왜 그리 어렵지 않거나 Google인지 모르겠지만 사설 분기를 변경하여 기본 분기로 푸시하려고합니다. 즉Mercurial - 현재 변경 집합을 기본 분기로 푸시하는 방법

:

  1. 나는 몇 주 전에 기본 분기에서 가져온 주요 변경에게 그 이후
  2. 을했다, 나는 다음 원래의 코드를 통합
  3. 내 작업 완료 기본 브랜치 (단지 코드 일뿐 HG는 여전히 "NewBranch"로 설정되어 있습니다.
  4. 코드가 작동 했으므로이 변경 사항을 기본 분기로 다시 적용하고 거기에서 개발을 계속 진행하고 싶습니다.

하지만 그 방법에 대한 정보는 찾을 수 없습니다. 분기를 전환하면 NewBranch에 있기 때문에 모든 체인지 세트를 잃어 버립니다. 나는 rebase 또는 이식이 무엇인지 알아 내지 못합니다. 그들이 사용할 수있는 시나리오를 설명하는 안내서를 찾을 수 없습니다 ... 여기에있는 누군가가 무엇을해야할지 잘 알고 있습니다!

저는 Mercurial을 Eclipse에서 사용하고 있지만 쉽게 사용할 수 있다면 명령 줄에서이 작업을 수행 할 수 있습니다.

답변

2

merge은 한 지점에서 다른 지점으로 변경하는 방법입니다. 나는 당신이 default을 기능으로 합쳤다는 것을 알고 있지만, 이제는 다른 방향으로 간다. 번호 변경 집합이 다른 사람들로부터 와서 변경 집합을 글자 곳 여기에서 예를 들어 온다이다 :

당신은 아무것도하기 전에 당신이 복제이 있습니다

[1]---[2]---[3]---[4] (default branch) 

다음 지사라는 이름 만들기 '기능을'두 개의 작업을 수행

[1]---[2]---[3]---[4]   (default branch) 
        \ 
        [A]---[B] ('feature' branch) 

을 다음 hg pull이 로컬 저장소에 아래로 분기 이후 변화가 기본값으로 얻을 :

0,123,643 산출, 그것을 커밋

hg checkout feature # make sure you're looking at the he head of your branch 
hg merge default  # merge default into your branch 

산출되는 : 내가 제대로 이해 해요 경우

[1]---[2]---[3]---[4]---[5]---[6]  (default branch) 
        \   \ 
        [A]---[B]---[C]  ('feature' branch) 

, 당신은 이미했습니다

지금 당신은 당신이 귀하의 지점에 통합 된 변경 사항 (5와 6) 원하는 이제는 병합을 통해 수행되는 새로운 병합 커밋 인 C를 포함하여 분기를 가져와야합니다.

hg checkout default # hop back to default, files look like [6] and [A] and [B] are missing 
hg merge feature  # merge feature into default brining [A] and [B] in 

그 수율 :

그런 식으로 그려 많은 작업처럼 보이지만 실제로는 그냥 보통의
[1]---[2]---[3]---[4]---[5]---[6]---[7] (default branch) 
        \   \ /
        [A]---[B]---[C]  ('feature' branch) 

:

hg branch feature 
....work.... 
hg commit 
hg pull 
hg merge default 
hg checkout default 
hg merge feature 

pull 경우 새로운 일을 안 가져 왔어요 다른 쪽에서는 기본값으로 병합을 건너 뛸 수 있습니다.

두 개의 새로운 병합 변경 집합을 만듭니다. 그것들은 도움이 안되면 hg log에 쉽게 숨겨집니다. (어떤 사람들은 각 병합 방향에 대한 기록을 갖고 싶어합니다.) 그러나 완전히 피하기를 원하면 bookmarks (git 가지와 매우 유사합니다) 대신 "named 브랜치 (branch) "기능을 제공합니다. 그러면 git이"빨리 감기 (fast forward) "병합 (merge)을 부르는 것과 영적으로 동일 할 것이므로 되돌아 올 때 머지 변경 집합을 피할 수 있습니다.

+1

아 물론! 이제 다른 방향으로 합쳐서 밀어 넣으면됩니다. 바하마! :) –