2010-12-09 2 views
6

CVS 배경에서 왔습니다.병합 업데이트는 병합 대신 내 변경 내용을 덮어 씁니다.

현재 2 개의 수은 리포지토리가 병렬로 개발되어 있습니다. hello-world-bugfixhello-world-feature (이 하나 hello-world-bugfix에서 복제되고있다)

지금, 내가, hello-world-featurehello-world-bugfix에서 버그 수정 코드를 병합 할 일의 끝, 그래서 내가 병합 된 파일을 얻을 것이다합니다.

[BUG2 BUG2 BUG2] 

START 
[BUG1 BUG1 BUG1] 

[FEATURE2 FEATURE2 FEATURE2] 

다음은 모든 것들이 어떻게 보이고 당기고 병합되는지입니다. 아래의 두 파일은 이미 커밋되었습니다.


지금, hello-world-feature에서 풀을 수행

alt text


alt text

hello-world-bugfix에서 변화를 당깁니다. alt text

그런 다음 업데이트를 수행하고 always merge 옵션을 켭니다. alt text

여기에 내 병합 된 파일이 있습니까 ???

[BUG2 BUG2 BUG2] 

START 
[BUG1 BUG1 BUG1] 

내 이전 커밋 된 [FEATURE2 FEATURE2 FEATURE2]이 덮어 쓰여진 것으로 보입니다.

내가 bugfeature을 병합,하지만 멀리 bugfeature을 덮어 쓰지 않습니다 업데이트 단계를 수행해서는 안 보인다. 당기고 다음으로해야 할 올바른 단계는 무엇입니까? (TortoiseHg 통해), 그래서 내가 버그 수정 코드를 얻을 수 있고 거기에 기능 코드가 남아 있습니까?

여기에 "항상 병합"옵션은 당신이하지 생각하지 않습니다 hello-world-feature alt text

답변

7

의 최종 저장소이다.

커밋되지 않은 변경 사항 만 병합합니다.

업데이트하면 커밋 된 파일이 새 버전으로 바뀝니다.

커밋 된 변경 내용을 병합하려면. 분기를 병합하려면 명시 적 병합을 수행해야합니다.

따라서 로그에서 BUG2 BUG2 BUG2 변경 집합을 선택한 다음 FEATURE2 FEATURE2 FEATURE2 변경 집합을 마우스 오른쪽 단추로 클릭하고 병합을 클릭하고 지침을 따르십시오.

"항상 병합"확인란의 기능을 확장 해 보겠습니다.

내 리포지토리에 두 개의 변경 집합이 있고, 첫 번째 집합으로 업데이트 한 다음 파일 중 하나를 수정하기 시작합니다.

어느 시점에서 나는 다른 변경 집합에서 시작하는 것이 더 좋을 것이라고 판단하여 수정하기 위해 업데이트하려고합니다. 나는 "항상 병합 (가능하면)"확인란을 선택하면,

Confirm Update

을하지만 : 나는 단순히 않은 변경으로, 나는이 대화 상자를 업데이 트를 얻을 경우

나는 업데이트하려고하면 , 그것은 단순히 대화 상자에서 Merge 버튼을 클릭하고 나에게 프롬프트하지 않는다고 가정합니다.

"항상 병합"은 커밋 된 파일에 어떤 기능도 가지고 있지 않으므로 병합을 도입하지 않으며 로컬 변경 사항을 업데이트와 함께 이동하려고 시도합니다.

관련 문제