2012-10-21 5 views
1

마지막으로 가져온 이후로 변경된 내용을 git remote에서 확인하는 방법을 찾고 있습니다.수정 날짜/시간 이후 변경 사항을 원격으로 원격으로 확인하십시오.

리모컨을 가져 오는 변경 사항을 보았지만 원격 변경 사항을 "핑 (ping)"할 수있는 "TeamCity"와 같은 많은 지속적인 통합 도구에 대해 알고 있습니다.

대리인 등이이 검사를 수행하는 방법을 알고 싶습니다. 따라서 사람들에게 repo에 대한 변경 사항을 알리는 자체 도구를 작성할 수 있습니다.

에서 변경 사항을 확인하는 데 어떤 git 명령을 사용 하시겠습니까?

git ls-remote .이면 충분합니까?

답변

1

빌드 에이전트는 일반적으로 서버에 변경 사항을 핑하고이를 새 커밋 SHA와 함께 HTTP POST를 전송하는 post-receive 후크로 수행합니다. 나는 페치하지 않고 리모콘을 체크 할 이유가 없다.

git ls-remote 당신은 분명히 로컬 사용자와 비교할 수있는 커밋 SHA를 얻을 수 있지만 커밋 수에 대한 정보는 얻을 수 없습니다.

+0

좋은 정보! 빌드 에이전트 Ping 서비스는 변경 내용이나 세부 정보가 아니라 "변경된 사항"을 알고 있어야한다고 가정합니다. 특히 PING이 단순히 CI를 시작하는 데 사용되거나 커밋을 가져오고 두 번째 프로세스를 시작한 다음 정보가있는 경우 특히 그렇습니다. 생각? – Doug

+0

정말 사실이라면 어쨌든 빌드하기 위해 가져올 것입니다. 하지만 내가 말한 것에서부터 포스트 후크 방식은 길고 청결한 다음 몇 초마다 원격입니다 – Learath2

+0

webhooks의 큰 문제는 원격 저장소에 대한 액세스 권한이 있다고 가정한다는 것입니다. 나는 * 누군가 elses * repo를 확인하는 서비스를 작성 중이며 업데이트 된 경우 얕은 복제본을 작성합니다. – Doug

1

git fetch을 수행하고 변경 사항을 확인함으로써 "핑 (ping)"을한다고 생각합니다. 이를 확인하려면 post-update 후크를 사용할 수 있습니다.

원격 bar에 분기 foo가 변경되었는지 FETCH_HEAD 다른 방법으로 분기를 가져 오는 git fetch bar foo을 수행하는 것, 그리고 예를 들어 실행 git log bar/foo..FETCH_HEAD을 입력하여 foo의 이전 버전과 방금 가져온 버전을 비교하십시오.

하나의 마지막 주석 : git ls-remote을 사용하면 원격 지점이 마지막으로 본 후에 업데이트되었는지 확인할 수 있지만 가져와야하는 커밋 메타 데이터 (날짜)에 액세스 할 수 있습니다.

+0

그래, 가져 오지 않아 - TeamCity와 Bamboo는 90 초마다 확인하고 Repo를 로컬로 유지하지 않습니다. 가져 오기에는 너무 많은 비용이 듭니다. 그들은'git ls-remote'를 수행하고 변경 세트가 그들이 가지고있는 마지막 세트와 다른지 확인해야합니다. – Doug

+1

OTOH [buildbot] (http://buildbot.net/buildbot/docs/current/manual/cfg-changesources.html#chsrc-GitPoller)는 가져 오기를 사용하여 폴링합니다. – opqdonut

관련 문제