2014-11-21 2 views
2

내가하려는 일 : github에서 끌어 오기 요청을 테스트합니다. 로컬로 끌어 오기 요청을 마스터에 병합하고 결과에 대해 몇 가지 테스트를 실행하려고합니다. 저장소가 거대하기 때문에 얕은 복제본을 만듭니다.얕은 복제본에서 병합을 수행하기에 충분한 커밋을 가져 오는 방법

병합을 수행 할 수있게하려면 당겨 받기 요청을 마스터 사이에 merge-commit이 생길 때까지 나는 더 많은 커밋 (이 증가하여 --depth)을 가져옵니다.

그러나 매번 작동하지 않습니다. merge-base뿐만 아니라 master..merge _base 범위의 모든 커밋도 필요합니다. 그러나 나는 그것을 어떻게하는지 잘 모르겠습니다.

그럼, 질문은 : 병합을 수행하기에 충분한 기록을 어떻게 가져 옵니까?

답변

0

catch-22 방식으로, 필요한 것 (필자는 생각합니다)은 'git describe --all - first-parent'를 사용하여 해당 분기에서 주어진 커밋의 깊이를 알려줍니다. 그러나 당신이 얕은 가져 오기 전에 Github에서 어떻게 가져올 지 모르겠다 ;-)

+0

그런 경우에도 커밋 깊이는 마스터에서 커밋까지의 최단 경로를 사용하여 계산되지만 I (merge_base보다 더 깊을 수있는 merge_base와 master 사이의 모든 커밋이 필요합니다. – madjar

+0

아, 네, merge_base (최단 경로가 아닌)에 대한 전체 탐색을 생각하지 않았습니다. 작은 커밋이 많은 병합 루프가있는 경우 깊이가 상당히 커질 수 있습니다. 불행히도 얕은 가져 오기는 다른 스키마가 아닌 계산 된 깊이에 의해서만 제한됩니다. 그리고 어쨌든 깊이를 결정하는 방법을 아직 잘 모릅니다! –

관련 문제