Использование хука pre-commit для очистки кода - PullRequest
4 голосов
/ 13 января 2010

Хорошо ли чистить код разработки из моих исходных файлов во время ловушки перед фиксацией?

Например, у меня есть код, который вызывает xdebug_break (), и я хочу удалить вызовы этой функции из любых файлов, в которых она есть, перед передачей моего кода в хранилище. Я бы предпочел не проверять функцию перед ее вызовом, потому что я единственный, кто хочет, чтобы этот вызов функции выполнялся там.

Ответы [ 2 ]

13 голосов
/ 13 января 2010

Предварительная фиксация hook должна использоваться только для проверки фиксации, а не для ее изменения. Таким образом, вы можете использовать его, чтобы проверить, есть ли у вас нежелательный код в вашем коммите, и прервать его, если вы этого не сделаете, но вы не должны использовать его для изменения коммита любым способом.

Можно использовать атрибут фильтра , чтобы запустить программу для "очистки" ваших источников перед их фиксацией; но я бы порекомендовал против этого. Удаление строк исходного кода может изменить поведение вашей программы. Вы не должны совершать какие-либо работы, которые вы не тестировали, в той форме, в которой они выполняются.

0 голосов
/ 13 января 2010

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

Исходя из комментария, я меняю свой ответ - руководство svn специально рекомендует ПРОТИВ изменения содержимого коммита, поскольку оно может испортить кэширование на стороне клиента. Git работает по-другому, поскольку хранилище является локальным, но я думаю, что принцип тот же.

Что касается конкретного случая использования, который вы упомянули; кажется немного необычным использовать для этого хук precommit. Как правило, ловушка precommit используется для более общих целей. Тем не менее, если вы единственный разработчик, вы можете использовать его так, как вам нравится. Только не забывай, что это там.

...