Chcę ograniczyć osoby, które się zaangażuje, aby mieć określony format wiadomości zatwierdzania, jak mam to zrobić?Jak ustawić wzorzec dla wiadomości zatwierdzania git?
Na przykład: Pair_Name|Story_Number|Commit_Message
Chcę ograniczyć osoby, które się zaangażuje, aby mieć określony format wiadomości zatwierdzania, jak mam to zrobić?Jak ustawić wzorzec dla wiadomości zatwierdzania git?
Na przykład: Pair_Name|Story_Number|Commit_Message
Jest haczyk pre-commit-msg
lub commit-msg
, że można użyć:
Git repo pochodzą z hakami próbce, na przykład próbka commit-msg
przechwytuje pod numerem git/hooks/commit-msg.sample
przechwytuje zduplikowane linie Sign-off-by.
# This example catches duplicate Signed-off-by lines.
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}
Aby włączyć hak, nie zapomnij o wykonaniu go.
Oto niektóre fikcyjny przykład, który akceptuje tylko popełnić przesłania london|120|something ...
i podobne:
#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)
# $regex = /\[ref: (\d+)\]/
PAIRS = ["london", "paris", "moscow"] # only these names allowed
STORIES = "\d{2,4}" # story must be a 2, 3 or 4 digit number
MESSAGE = ".{5,}" # message must be at least 5 chars long
$regex = "((#{PAIRS.join('|')})\|#{STORIES}\|#{MESSAGE})"
if !$regex.match(message)
puts "[POLICY] Your message is not formatted correctly"
exit 1
end
W użycia:
$ git ci -m "berlin|120"
[POLICY] Your message is not formatted correctly
$ git ci -m "london|120|XX"
[POLICY] Your message is not formatted correctly
$ git ci -m "london|120|Looks good."
[master 853e622] london|120|Looks good.
1 file changed, 1 insertion(+)
Uwaga: ten rodzaj ograniczenia jest częścią gitolite (), który pozwala na różnego rodzaju kontrole podczas przeprowadzania repozytorium)
Jeden przykład można zobaczyć na "git gitolite (v3) pre-receive
hook for all commit messages".
Pomysł z gitolite polega na tym, że można łatwo wdrożyć ten hak w określonych repozytoriach dla określonych grup użytkowników.