Crochet utilisation pour forcer le format spécifique de git le message de validation

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

  •  25-10-2019
  •  | 
  •  

Question

Je veux utiliser un crochet git pour forcer engager des messages à se conformer à un format spécifique (ils doivent se terminer par #number). Je l'ai essayé d'installer ce crochet , également référencé here , mais je continue à recevoir le message:

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

J'utilise les scripts tels qu'ils apparaissent dans les exemples et les deux donnent la même erreur. Je l'ai essayé, par exemple:

#!/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'est-ce qui pourrait être erroné?

Était-ce utile?

La solution

Il est possible que (a) que vous faites cela sur Windows, et (b) que vous avez introduit accidentellement les fins de ligne de Windows CRLF dans votre script. Les scripts shell ne le font pas comme ceux-ci, et peuvent causer le genre de problème que vous observez.

Pour définir Vim d'écrire de style Unix fins de ligne LF, utilisez

:set ff=unix
:w
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top