Снова создавать файлы во время перехвата перед фиксацией?

Я установил задачу mvn java-formatter:format в хук перед фиксацией. Эта задача отформатирует исходные коды Java.

pushd src/ > /dev/null

mvn java-formatter:format
RETVAL=$?
if (($RETVAL == 1)); then
        exit 1
fi

popd > /dev/null

Мне нужно добавить недавно отформатированные исходные файлы для фиксации. Как я могу это сделать?


person Milad Khajavi    schedule 21.07.2015    source источник


Ответы (2)


перехватчик предварительной фиксации должен иметь возможность включать git add для изменения индекса, который должен быть зафиксирован.

См., например, "git pre-commit hook, добавить файл в индекс".

Попробуйте git add -A :/. (см. "Добавить как из корневой папки репозитория")

Если вам нужно добавить только те файлы, которые уже были проиндексированы, то вам нужно:

person VonC    schedule 21.07.2015
comment
Разве при этом не добавляются файлы с изменениями, которые не были проиндексированы ранее? - person Melebius; 21.07.2015
comment
@Мелебиус Правда. Я изменил свой ответ, чтобы добавить только (уже) подготовленные файлы. - person VonC; 21.07.2015

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

Здесь вы можете найти решение той же проблемы. Там он обновляет версию файла при каждом коммите, а не форматирует код. Он полностью рабочий: https://github.com/addonszz/Galileo/tree/master/gitooks

Затем вы просто заменяете алгоритм «Замена файла версии» в файле «updateVersion.sh» вашим алгоритмом «Код форматирования». Возможно, вам нужно изменить несколько вещей, например, удалить ограничение ветки, потому что там скрипт запускается только в том случае, если вы находитесь в ветке «разработка».

Кроме того, он изменит файл только в том случае, если он поставлен. Если файл не проиндексирован, то он ничего не сделает. Точнее, он распечатывает, что он делает на каждом шагу.

person user    schedule 21.07.2016