列出在 Travis 中的拉取请求中修改的文件
List files modified in a pull request within Travis
我想在 travis 上列出拉取请求中修改的所有文件。
我试过 $(git diff --name-only $TRAVIS_PULL_REQUEST_BRANCH $(git merge-base $TRAVIS_PULL_REQUEST_BRANCH master))
但 git 不知道 TRAVIS_PULL_REQUEST_BRANCH 因为它在分叉的回购上。
我也尝试了 git rev-list
和 $TRAVIS_COMMIT_RANGE 但它还包括主分支上的新提交。
知道如何获取 PR 专门修改的文件吗?
你快到了。
在这种情况下没有理由使用环境变量 $TRAVIS_PULL_REQUEST_BRANCH
。
travis 中的源代码树将把您的拉取请求合并回最近的目标分支($TRAVIS_BRANCH
,可能 master
)。也就是说,HEAD
是您合并到 $TRAVIS_BRANCH
.
中的拉取请求
你想要的只是你的 pull request 和 master
之间的变化,可以用
检索
$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH))
或更短的点点符号
git diff --name-only HEAD...$TRAVIS_BRANCH
感谢@ostrokach
如果要检查内容,只考虑修改和添加的文件(而忽略删除的文件)也很有趣
git diff --name-only --diff-filter=AM HEAD...$TRAVIS_BRANCH
您应该在以下命令中使用 $TRAVIS_BRANCH
:
git diff --name-only HEAD...$TRAVIS_BRANCH
(如@Matthias Kuhn 所建议)。但首先,执行以下
$ git remote set-branches --add origin $TRAVIS_BRNACH
$ git fetch
$ git diff origin/$TRAVIS_BRANCH # now works as normal
这是修复以下错误所必需的:
fatal: ambiguous argument 'HEAD...master': unknown revision or path not in the working tree.
(如 https://github.com/travis-ci/travis-ci/issues/6069 中所述)。
也可以使用 $TRAVIS_COMMIT_RANGE
,但如果
拉取请求的目标分支有变化,它们也将被包括在内。如果您的情况不太可能出现这种情况(例如,一次只能创建一个到该分支的拉取请求),那么此解决方案更简单。
命令是:
git diff --name-only $TRAVIS_COMMIT_RANGE
我想在 travis 上列出拉取请求中修改的所有文件。
我试过 $(git diff --name-only $TRAVIS_PULL_REQUEST_BRANCH $(git merge-base $TRAVIS_PULL_REQUEST_BRANCH master))
但 git 不知道 TRAVIS_PULL_REQUEST_BRANCH 因为它在分叉的回购上。
我也尝试了 git rev-list
和 $TRAVIS_COMMIT_RANGE 但它还包括主分支上的新提交。
知道如何获取 PR 专门修改的文件吗?
你快到了。
在这种情况下没有理由使用环境变量 $TRAVIS_PULL_REQUEST_BRANCH
。
travis 中的源代码树将把您的拉取请求合并回最近的目标分支($TRAVIS_BRANCH
,可能 master
)。也就是说,HEAD
是您合并到 $TRAVIS_BRANCH
.
你想要的只是你的 pull request 和 master
之间的变化,可以用
$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH))
或更短的点点符号
git diff --name-only HEAD...$TRAVIS_BRANCH
感谢@ostrokach
如果要检查内容,只考虑修改和添加的文件(而忽略删除的文件)也很有趣
git diff --name-only --diff-filter=AM HEAD...$TRAVIS_BRANCH
您应该在以下命令中使用 $TRAVIS_BRANCH
:
git diff --name-only HEAD...$TRAVIS_BRANCH
(如@Matthias Kuhn 所建议)。但首先,执行以下
$ git remote set-branches --add origin $TRAVIS_BRNACH
$ git fetch
$ git diff origin/$TRAVIS_BRANCH # now works as normal
这是修复以下错误所必需的:
fatal: ambiguous argument 'HEAD...master': unknown revision or path not in the working tree.
(如 https://github.com/travis-ci/travis-ci/issues/6069 中所述)。
也可以使用 $TRAVIS_COMMIT_RANGE
,但如果
拉取请求的目标分支有变化,它们也将被包括在内。如果您的情况不太可能出现这种情况(例如,一次只能创建一个到该分支的拉取请求),那么此解决方案更简单。
命令是:
git diff --name-only $TRAVIS_COMMIT_RANGE