2016-12-14 5 views
2

travis에서 pull 요청으로 수정 된 모든 파일을 나열하고 싶습니다.Travis 내에서 pull 요청으로 수정 된 목록 파일

나는 $(git diff --name-only $TRAVIS_PULL_REQUEST_BRANCH $(git merge-base $TRAVIS_PULL_REQUEST_BRANCH master))을 시도했지만 git는 TRAVIS_PULL_REQUEST_BRANCH에 대해 알지 못합니다. 분기 된 Repo에 있기 때문입니다.

나는 또한 git rev-list과 $ TRAVIS_COMMIT_RANGE를 시도했지만 master 브랜치에 대한 새로운 커밋을 포함하고있다.

PR에 의해 독점적으로 수정되는 파일을 가져 오는 방법을 알려주세요.

답변

3

거의 다 왔어.

이 시나리오에서는 환경 변수 $TRAVIS_PULL_REQUEST_BRANCH을 사용할 이유가 없습니다.

travis 내의 소스 트리는 가장 최근의 대상 분기 (, 가능성 있음 master)로 병합 된 끌어 오기 요청입니다. 즉, HEAD이 $ TRAVIS_BRANCH에 병합 요청을 가져옵니다. 당신이 원하는 무엇

$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH)) 

또는 점 점 점 표기법과 짧은

git diff --name-only HEAD...$TRAVIS_BRANCH 

감사로 검색 할 수있는 풀 요청 master 사이의 변경 사항 만 있습니다 @ostrokach

콘텐츠를 확인하려는 경우 수정되고 추가 된 파일 만 고려하면 재미 있습니다.

git diff --name-only --diff-filter=AM HEAD...$TRAVIS_BRANCH 
+0

완벽한 덕분에! –

+2

'git diff --name-only HEAD ... master' (점 3 개 포함)의 축약어가 있습니다. 자세한 내용은 [여기] (http://stackoverflow.com/a/7256391/2063031)를 참조하십시오. – ostrokach

+0

'fatal : 모호한 인수 'HEAD ... master': 작업 트리에없는 리비전 또는 경로. ' –