2012-12-14 11 views

Odpowiedz

9

nie jest możliwe stosowanie wstępnie odbierać haki w github, więc używamy zamiast pre-commit na stronie klienta: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Client-Side-Hooks

Nasz pre-commit skrypt (w oparciu o http://mark-story.com/posts/view/using-git-commit-hooks-to-prevent-stupid-mistakes) wygląda następująco:

#!/bin/sh 

for FILE in `git diff-index -p -M --name-status HEAD -- | cut -c3-` ; do 
    if [ "grep 'TODO' $FILE" ] 
    then 
     echo $FILE ' contains TODO' 
     exit 1 
    fi 
done 
exit 

mamy ten skrypt na podstawie naszego systemu kontroli wersji i stworzyć symboliczny link do niego w .git/haki

dzięki za pomoc :)

EDIT: z powodu zachowania grep w if my potrzebne do edycji naszego skryptu:

#!/bin/sh 

for FILE in `git diff --name-only --cached`; do 
    grep 'TODO' $FILE 2>&1 >/dev/null 
    if [ $? -eq 0 ]; then 
     echo $FILE ' contains TODO' 
     exit 1 
    fi 
done 
exit 
+2

Nie zapomnij o "chmod + x .git/hooks/pre-commit' po utworzeniu pliku – dutzi

4

Wstępnie otrzymać hak na serwerze, grep pliki i przerwać push :)

Więcej informacji na temat wstępnego otrzymać hak można znaleźć tutaj: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Server-Side-Hooks

+0

Jakieś pomysły lub link, gdzie można przeczytać o tym, pracując w github? Nasz projekt jest hostowany na github i widzę tylko hak po otrzymaniu:? Oczywiście możemy używać haków po stronie klienta (takich jak hook przed zatwierdzeniem), ale musimy go utworzyć na wszystkich naszych maszynach. Dzięki za pomoc :) – y2josei