Используйте ловушку для форсирования определенного формата сообщения git commit - PullRequest
3 голосов
/ 29 ноября 2011

Я хочу использовать ловушку git, чтобы заставить сообщения коммита соответствовать определенному формату (они должны заканчиваться #number).Я попытался установить этот хук , на который также ссылаются здесь , но я продолжаю получать сообщение:

$ git commit -am "Test"
.git/hooks/commit-msg: line 1: sage_file: command not found
.git/hooks/commit-msg: line 2: syntax error near unexpected token `('
.git/hooks/commit-msg: line 2: `message = File.read(message_file)'

Я использую сценарии именно так, как они появляютсяв примерах, и оба дают одинаковую ошибку.Например, я пытался:

#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)

#starts with # then number, space, and at least 5 words no more than 200
$regex = /(^#[0-9]+ \W*(\w+(\W+|$)){5,200})/

if !$regex.match(message)
puts "Your message is not formatted correctly (example: #XXX at least 5 words)"
exit 1
end

Что может быть не так?

1 Ответ

4 голосов
/ 29 ноября 2011

Возможно, что (а) вы делаете это в Windows и (б) вы случайно ввели концы строк Windows CRLF в свой скрипт. Скриптам оболочки они не нравятся, и они могут вызвать проблемы, которые вы наблюдаете.

Чтобы настроить Vim для записи концов строк LF в стиле Unix, используйте

:set ff=unix
:w
...