2010-11-01 3 views
1

Мы объединили Git с объединением Perforce. Мы вызывали p4merge и показывали 5 конфликтов. Я разрешил только один конфликт и сохранил слияние. Когда я пытаюсь повторно вызвать p4merge с помощью инструмента gitmerge, он говорит: «Никакого слияния не требуется». Мы не можем повторно запустить mergetool, хотя слияние не завершено.Git с слиянием P4 имеет проблемы

Просьба сообщить.

+0

ли вам, возможно, преждевременно сказать мерзавцу другие конфликты были решены, запустив 'git add '? Я мог видеть, что это действительно легко сделать случайно, если в одном файле было несколько конфликтов, и вы только разрешили один ... – Cascabel

+0

Возможно, у этого вопроса есть ваш ответ? [git: два или более конфликта слияния в одном файле с p4merge] (http://stackoverflow.com/questions/4067202/git-2-or-more-merge-conflicts-in-a-single-file-how- p4merge-ручка) – Cascabel

ответ

0

Как Jefromicomments, вопрос «GIT 2 or more merge conflicts in a single file - how p4merge handles?» указывает на возможную причину (состояния 0, даже если существуют конфликты)

Упаковщики может помочь отладить ситуацию (see some in this gist).
Проверка мейкера конфликта может помочь вам вернуть не-0 статус like in this script (для Emacs, но вы можете адаптировать его для другого инструмента)

# check modified file 
if [ ! $(egrep -c '^(<<<<<<<|=======|>>>>>>>|####### Ancestor)' ${_MERGED}) = 0 ]; then 
    _MERGEDSAVE=$(${_MKTEMP} --tmpdir `${_BASENAME} ${_MERGED}`.XXXXXXXXXX) 
    ${_CP} ${_MERGED} ${_MERGEDSAVE} 
    echo 1>&2 "Oops! Conflict markers detected in $_MERGED." 
    echo 1>&2 "Saved your changes to ${_MERGEDSAVE}" 
    echo 1>&2 "Exiting with code 1." 
    exit 1 
fi 
Смежные вопросы