Git Не удалось выполнить задание PullRequest. Не удалось найти какую-либо ревизию для сборки. Проверьте конфигурацию репозитория и ветки для этого задания
Вчера мои попытки pullrequest завершились неудачно со следующим выходом:
11:07:41 > git rev-parse origin/${sha1}^{commit}
11:07:41 > git rev-parse ${sha1}^{commit}
11:07:41 ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Я провел расследование и увидел, что в собственности ${sha1} ничего не было. Когда я вставляю абсолютный путь, чтобы вытащить построитель запросов, например, pr/341/merge вместо ${sha1}, работает сборка. Что это может быть?
Git Клиентский плагин
1.9.0
Плагин API GitHub
1,44
Ответы
Ответ 1
Я потратил на это много времени. Вышеупомянутый комментарий "если я покину это поле пустым" работал как шарм. В SCM:
1) выберите Git
2) Имя: origin
3) Refspec: +refs/pull/*:refs/remotes/origin/pr/*
4) Филиалы для сборки: оставьте пустым
Это решило указанную выше ошибку.
Ответ 2
Как указано здесь, Если вы хотите вручную создать задание, в настройке задания задайте эту сборку параметризированную и добавьте параметр string с именем sha1
со значением по умолчанию master
. При запуске build дайте идентификатор фиксации параметра sha1, который вы хотите построить, или refname (например: origin/pr/9/head).
Ответ 3
иногда это происходит, если "Спецификатор ветки" не установлен должным образом.
Я исправил спецификатор, и он работал для меня.
*/release/release4.5.0
или
*/feature/myfeature
Ответ 4
После многих исследований и головокружения. Я получал ту же ошибку, и я узнал, что эта ошибка также возникает, если вы используете другой путь git. Убедитесь, что у вас правильный путь. Например:
Я заменил C:\Program Files\Git\git- bash.exe на C:\Program Files\Git\bin\git.exe и это решило проблему.
Ответ 5
Я исправил то же сообщение об ошибке, используя синтаксис refs/heads/<branchName>
в разделе "Ответвления для построения - указатель ветки".
Например, вместо origin/master
я указал refs/remotes/origin/master
в качестве спецификатора ветки, чтобы исправить задание.
(В моем случае я не уверен, что послужило причиной появления этого сообщения об ошибке, так как ранее задание работало нормально только с origin/master
в качестве спецификатора ветки. Возможно, это было связанное обновление или изменение конфигурации...)
Обратите внимание, что вы можете использовать команду git show-ref
для вывода списка ссылок в локальном репозитории, например
git show-ref master
28f1f186807d1316bf1c59631d6d8825a5087e27 refs/heads/master
28f1f186807d1316bf1c59631d6d8825a5087e27 refs/remotes/origin/master
Кроме того, "?" Справочная документация рядом с полем "Спецификатор ветвления" также поддерживает этот ответ как самый безопасный вариант для указания спецификатора ветвления, чтобы убедиться, что ожидаемая ветвь однозначна:
Specify the branches if you'd like to track a specific branch in a repository. If left blank, all branches will be examined for changes and built.
The safest way is to use the refs/heads/<branchName> syntax. This way the expected branch is unambiguous.
Possible options:
<branchName>
Tracks/checks out the specified branch. If ambiguous the first result is taken, which is not necessarily the expected one. Better use refs/heads/<branchName>.
E.g. master, feature1,...
refs/heads/<branchName>
Tracks/checks out the specified branch.
E.g. refs/heads/master, refs/heads/feature1/master,...
<remoteRepoName>/<branchName>
Tracks/checks out the specified branch. If ambiguous the first result is taken, which is not necessarily the expected one.
Better use refs/heads/<branchName>.
E.g. origin/master
remotes/<remoteRepoName>/<branchName>
Tracks/checks out the specified branch.
E.g. remotes/origin/master
refs/remotes/<remoteRepoName>/<branchName>
Tracks/checks out the specified branch.
E.g. refs/remotes/origin/master
<tagName>
This does not work since the tag will not be recognized as tag.
Use refs/tags/<tagName> instead.
E.g. git-2.3.0
refs/tags/<tagName>
Tracks/checks out the specified tag.
E.g. refs/tags/git-2.3.0
<commitId>
Checks out the specified commit.
E.g. 5062ac843f2b947733e6a3b105977056821bd352, 5062ac84, ...
${ENV_VARIABLE}
It is also possible to use environment variables. In this case the variables are evaluated and the result is used as described above.
E.g. ${TREEISH}, refs/tags/${TAGNAME},...
<Wildcards>
The syntax is of the form: REPOSITORYNAME/BRANCH. In addition, BRANCH is recognized as a shorthand of */BRANCH, '*' is recognized as a wildcard, and '**' is recognized as wildcard that includes the separator '/'. Therefore, origin/branches* would match origin/branches-foo but not origin/branches/foo, while origin/branches** would match both origin/branches-foo and origin/branches/foo.
:<regular expression>
The syntax is of the form: :regexp. Regular expression syntax in branches to build will only build those branches whose names match the regular expression.
Ответ 6
Я столкнулся с той же проблемой и провел в ней 4 часа, но, наконец, решил ее.
В моем случае ошибка была из-за неправильного Git exe. Внутри Jenkins при настройке Git exe path для windows установите путь в папке cmd
В моем случае это был C:\Program Files\Git\cmd\git.exe
Это решило мою проблему.