2015-08-21 2 views
1

Я запускаю maven-сборку проекта java, который хранится в git-репо. Когда план релиз работает на сервере сборки (с использованием бамбука) он выдает следующую команду GIT:Ошибка git-log: неопределенный аргумент 'master'

git log -n1 --date-order master 

но recieves следующее сообщение об ошибке:

fatal: ambiguous argument 'master': unknown revision or path not in the working tree. 

Я, конечно, есть мастер-ветвь и когда я вытаскиваю репо и запускаю команду локально, он отлично работает. Я предполагаю, что на сервере сборки есть другая конфигурация, но я не понимаю, что искать. Я надеюсь, что у одного из вас эксперты git получат некоторое представление.

Для справки, вот фактический журнал ошибок, который я получаю от сборки maven. Это происходит во время выполнения BuildNumber-Maven-плагин:

build 19-Aug-2015 15:10:28 [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (default) @ my-rest-project --- 
build 19-Aug-2015 15:10:28 [INFO] [INFO] Verifying there are no local modifications ... 
build 19-Aug-2015 15:10:28 [INFO] [INFO] Executing: /bin/sh -c cd /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout && git status --porcelain 
build 19-Aug-2015 15:10:28 [INFO] [INFO] Working directory: /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout 
build 19-Aug-2015 15:10:28 [INFO] [INFO] Executing: /bin/sh -c cd /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout && git log -n1 --date-order master 
build 19-Aug-2015 15:10:28 [INFO] [INFO] Working directory: /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout 
build 19-Aug-2015 15:10:28 [INFO] [ERROR] Provider message: 
build 19-Aug-2015 15:10:28 [INFO] [ERROR] The git-log command failed. 
build 19-Aug-2015 15:10:28 [INFO] [ERROR] Command output: 
build 19-Aug-2015 15:10:28 [INFO] [ERROR] fatal: ambiguous argument 'master': unknown revision or path not in the working tree. 
build 19-Aug-2015 15:10:28 [INFO] Use '--' to separate paths from revisions, like this: 
build 19-Aug-2015 15:10:28 [INFO] 'git <command> [<revision>...] -- [<file>...]' 

ответ

1

Он работает при запуске maven-release-плагина 2.2 и ниже.

Оказалось, что существует некоторый конфликт между плагином maven-release и плагином maven-buildnumber, когда плагин выпуска находится между версиями 2.3-2.5 (2.5 является последним на момент написания этой статьи).

Я не уверен, в чем причина ошибки в точности, но журналы показывают, что плагин release делает дополнительную команду git в этих версиях, и она каким-то образом вызывает плагин buildnumber, который запускается сразу после него, чтобы выйти из строя.

В частности, он запускает git ls-remote ssh://[email protected] и запускает его в каталоге temp, а не в каталоге, в котором работают все остальные git-команды. Я не уверен, что это сбой Maven или Bamboo. В любом случае, я знаю, как обойти это сейчас.

UPDATE: После запуска в другой бамбуковой/Maven-релиз/выпуска мерзавца, который заставил меня обновить Maven-релиз-плагин 2.5, я решил, что единственный способ обойти все это было уронить BuildNumber плагин. В конечном итоге это был плагин buildnumber, который вызывал проблему, и это не важно для моего рабочего процесса.

0

Сервера сборки может просто поданный от вашего, а не репозитория. Это очень распространенная настройка на многих серверах сборки, и вы можете проверить, действительно ли это так.

Многие серверы сборки также предоставляют возможность также проверить репо.

+0

Возможно, я должен был уточнить, что это происходит в сборке после того, как репозиторий git сбрасывается и проект успешно строится. На этом этапе сборка подтверждает, что то, что она вытащила и построила, является последней фиксацией, чтобы справиться, чтобы она могла подтвердить, что релиз, который он собирается создать, соответствует базе кода в этой точке. Это просто способ гарантировать, что он не выпустит локальные изменения, которые не были заданы для освоения. – Planky

1

fatal: ambiguous argument 'master': unknown revision or path not in the working tree.

У меня была та же проблема. Кажется, это проблема с выпуском git, когда команда git (или пакет), запущенная в нашем ящике CI, несовместима с командой, сгенерированной модулем buildnumer-maven. Он работал для меня локально на моем Mac.

Что закрепив его на нашем CI поле, чтобы изменить doUpdate быть false. We already had the doCheck setting as false` так что теперь наша конфигурация выглядит следующим образом:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>buildnumber-maven-plugin</artifactId> 
    ... 
    <configuration> 
     <doCheck>false</doCheck> 
     <doUpdate>false</doUpdate> <!-- changed this from true --> 
    </configuration> 
</plugin> 

Это приводит к тому, BuildNumber-Maven-плагин выдавать следующую мерзавца команда, которая, кажется, хорошо работает везде:

[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ parent --- 
[INFO] Executing: /bin/sh -c cd '/build/parent' && 'git' 'rev-parse' '--verify' 'HEAD' 
Смежные вопросы