Use el gancho para forzar el formato específico del mensaje de confirmación de git

StackOverflow https://stackoverflow.com/questions/8305610

  •  25-10-2019
  •  | 
  •  

Pregunta

Quiero usar un git git para forzar los mensajes de compromiso para cumplir con un formato específico (deben terminar con #number). He intentado instalar este gancho, también referenciado aquí, pero sigo recibiendo el mensaje:

$ 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)'

Estoy usando los scripts exactamente como aparecen en los ejemplos, y ambos dan el mismo error. He intentado por ejemplo:

#!/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

¿Qué podría estar mal?

¿Fue útil?

Solución

Es posible que (a) esté haciendo esto en Windows, y (b) ha introducido accidentalmente las terminaciones de la línea de Windows CRLF en su script. A los guiones de shell no les gustan y pueden causar el tipo de problema que observa.

Para configurar VIM para escribir finales de línea LF de estilo UNIX, use

:set ff=unix
:w
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top