2011-01-11 4 views
4

저장소에 Mercurial 대기열을 사용 중이며 해당 패치를 패치 저장소에 배치했습니다. 다른 공헌자가 내 패치 대기열을 복제하고 자신의 변경 사항을 적용했습니다. 이제 로컬 패치 저장소에서 변경 사항을 병합하고 싶습니다.Mercurial 대기열 : 여러 저장소의 패치 병합

나는이

  • 패치 저장소
  • 의 역사에서 기여자의 변경 집합을 반영 병합 수행하기위한 좋은 흐름을 찾기 위해 노력하고 충돌의 경우에 사용자의 병합 도구를 호출

처음에는 패치를 직접 병합하려했습니다. 이것은 아주 간단한 경우에는 괜찮지 만 많은 것들이 변경되었을 때 패치가 라인 번호 컨텍스트에 의존하기 때문에 제대로 작동하지 않습니다. 이것은 나 자신을 조정하는 것에 대해 걱정해야하는 것처럼 보입니다. 전반적으로, 3 가지 방법으로 패치를 비교하는 것은 너무 복잡합니다.

더 좋은 방법이 있습니까?

답변

1

처리 방법이 없습니다. 아마 내가하는 일은 두 개의 클론을 만들고, 하나는 패치를 qfinish, 다른 하나는 기여자 패치입니다. 각 패치의 그물 효과가 적용될 때마다 리포지토리가 표시됩니다. 그런 다음 hg pull을 다른 복제본에 넣고 hg merge을 사용하면 그래픽 도구를 사용하여 패치 결과를 병합 할 수 있습니다. 유일한 차이점은 패치의 차이입니다. 이 시점에서 이상적으로 병합 변경 집합 인 qimport을 수행 할 수는 있지만 그렇게 할 수 없으므로 차이점 인 새로운 diff를 얻으려면 'diff -r tip-1 -r tip'을 사용해야합니다. 모든 것을 시작하기 전과 후에 병합하는 두 가지 결과가 있습니다. 그런 다음 diff를 'qimport'하고 patch queue repo에 어디에서 왔는지 기록하는 메모를 보냅니다.

결정적으로 차선책이지만, 최선을 다해 생각해 볼 수 있습니다. 나는 더 나은 해결책을 듣고 싶다.

+0

그건 기본적으로 나에게 일어난 유일한 계획이지만 다른 사람들이 더 좋은 아이디어를 얻길 바랬습니다. 이 경험은 MQ 대신 [pbranch] (http://arrenbrecht.ch/mercurial/pbranch/index.htm)를 사용하는 데 관심이있었습니다. 패치가 보통 분기이기 때문에이 흐름을 더 잘 지원하는 것처럼 보입니다. –

+0

변경 사항에 대해 다른 누군가와 함께 일하는 경우 패치가 아닌 실제 커밋을 사용합니다. 그 복제품을 "업스트림"으로 결코 밀어 넣지 않더라도 우리는 작업 할 수있는 좋은 도구와 병합 도구를 제공하며 "업스트림"에서 변경 사항을 가져 오면 나중에 쉽게 업스트림으로 보내도록 'hg diff'를 가져올 수 있습니다. –

0

패치를 병합하는 자동화 된 방법이 없기를 두려워합니다.

그러나 "트릭"중 하나는 수정해야 할 기존 패치를 편집하거나 새로 고치지 않고 새 패치를 만드는 것입니다. 모두 올바른 일을하는 것에 동의하면 hg qfold 패치가 적용됩니다.

그런 식으로 새로운 패치를 만들면 서로 발가락을 밟지 않을 것입니다.

+0

예, 필자는 다른 참여자들만 새로운 패치를 보내도록 확실히 시행 할 것입니다. 팁 고마워! –

관련 문제