2016-11-02 6 views
4

Если из-за конфликта слияния не получается вишня, он возвращает статус выхода 0.Как я могу сказать, из сценария, если «git cherry-pick» терпит неудачу?

Пожалуйста, не говорите мне о --abort. Мне нужно обнаружить в сценарии, если исходная команда вишневого захвата завершилась неудачей.

Использование git версии 1.8.3.1 на CentOS 7.2.

EDIT: мой сценарий делал вишневый подборщик в if !, и я не выходил должным образом в предложении then с ненулевым выходом. Извините за шум.

+0

Это скрипт bash или пакет? – sashoalm

+0

Я не знаю, на какой ОС вы находитесь, но на linux с git> = 2.0 я нахожу, что 'cherry-pick' действительно возвращает полноценный код возврата. У меня есть критически важный код, который зависит от этого факта, и он работает безупречно. – Mort

+0

Использование git 1.8. Наверное, мне придется изучить модернизацию. Какую точную версию git вы используете? – e40

ответ

4

$? содержит код возврата последнего процесса в bash.

$ ls /dev/null/foo 
ls: /dev/null/foo: Not a directory 
$ echo $? 
1 
+0

Возвращаемое значение равно 0, если существует конфликт слиянием. – e40

+0

Если вы отредактируете свой ответ, я подниму его. Мой ответ заблокирован, пока вы этого не сделаете. Сожалею. – e40

+0

@ e40 сделано. , , , – djechlin

0

Вы можете вызвать git status или эквивалент и проверить его выход для нормального «1 вперед отслеживания» статуса или статуса «сливаться».

+0

Это довольно ужасно, особенно если делается серия черешни. Однако, если никакое другое решение не появится, я думаю, что это он. – e40

+0

Ну, вы используете клиент командной строки, чтобы делать автоматические вещи. Подумайте об использовании libgit2 вместо этого, я уверен, у него есть лучший способ сделать то, что вы хотите. Вы можете использовать его практически на любом языке. – rubenvb

 Смежные вопросы

  • Нет связанных вопросов^_^