У меня есть ловушка предварительной фиксации, которая запускает некоторые линтинги так:
./gradlew app:ktlint --daemon
status=$?
if [ "$status" = 0 ]
then
echo "${green}Linting found no problems.${reset}"
exit 0
else
echo 1>&2 "${red}Linting found issues.${reset}"
echo "${yellow}Attempting to fix automatically...${reset}"
./gradlew app:ktlintFormat --daemon
if [ $? = 0 ]
then
echo "${green}Fixed all issues automatically. Committing automagically...! :)${reset}"
git add .
git commit -m "Automatic commit of linted files" --no-verify
exit 0
else
echo "${red}Could not fix all issues automatically, please review. :( ${reset}"
exit 1
fi
fi
Проблема здесь в том, что если задача ktlint завершается неудачно, но автоматический формат решает все проблемы, я не могу повторно добавить только те файлы, которые были включены в первоначальный коммит.
Возможно, это лучше всего объяснить на примере:
- У меня есть 3 файла, A, B, C
- Я совершаю A & B, , но не C
- ktlint сбой фиксации из-за форматирования
- ktlintFormat удается решить проблемы
- Текущее поведение: отформатированные файлы A & B, а также C добавляются и фиксируются автоматически
- Требуемое поведение: Только Отформатированные файлы A & B добавляются и фиксируются автоматически
Заранее спасибо!