git hook для легального сообщения о коммите (# 123 хорошее сообщение) - PullRequest
5 голосов
/ 23 августа 2011

Мне нужно убедиться, что сообщения о коммитах - это то, что законно, иначе отвергнуть их. Сообщение коммита должно быть похоже на "# 123 исправление отсутствующей скобки"

Я хочу убедиться, что он начинается с хэша, здесь есть целое число (без 123a) и сообщение содержит не менее 10 слов.

Приятно иметь: сообщение не будет одинаковым в строке

Я использую этот плагин Trac для набора изменений, он описывает формат сообщения коммита более подробно http://trac -hacks.org / wiki / TracTicketChangelogPlugin

Спасибо

Ответы [ 3 ]

5 голосов
/ 23 августа 2011

Вы можете создать хук pre-receive, который отклоняет фиксации на основе любых критериев, которые вам нравятся - вам просто нужно вывести ошибку на стандартный вывод и выйти с ненулевым статусом. Например, что-то вроде:

#!/bin/sh
while read rev_old rev_new ref
do
    MALFORMED="$(git rev-list --oneline $rev_old..$rev_new | egrep -v '^[a-f0-9]+ #[0-9]+ ')"
    if [ x"$MALFORMED" != x ]
    then
        echo Some commits had a malformed subject line
        exit 1
    fi
done

(я этого не проверял, но вы поняли ...)

5 голосов
/ 23 августа 2011

Я создал хук commit-msg:

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

Я позаимствовал из этого сообщения в блоге http://fhopf.blogspot.com/2011/01/git-hook-for-redmine-messages.html

0 голосов
/ 23 августа 2011

Майк,

Наша группа пользователей, Группа пользователей веб-разработчиков из Центральной Флориды, недавно обсудила GitHooks, которые могут быть реализованы для решения поставленной вами проблемы.Обсуждение вел Рик Осборн из Университета Full Sail.Вы можете получить доступ к собранию здесь http://www.meetup.com/florida-web-developers/events/20352661/ и записи здесь http://www.meetup.com/florida-web-developers/messages/boards/thread/12465891/#45223031.

Если вы потратите время на просмотр всей записанной дискуссии, вы увидите, как Рик проведет вас через этот процесс шаг зашаг, включая загружаемые примеры.

Надеюсь, это поможет.

...