Since we have a few newbies on the list with the start of OPW and I've seen a few other cases recently, I thought this would be a good time to remind people of the feature of Git called Hooks.
Simply put: a git hook is an appropriately named executable file in the .git/hook directory in your source tree. There are several different ones, each of which gets run at a particular stage when running git commands. You can find lots of information in git's own help (git help hooks), on the git website (below), and elsewhere on the Internet. > http://www.git-scm.com/book/en/Customizing-Git-Git-Hooks My particular reason for mentioning it now is for spell checking commit messages and possibly running patcheck. I don't run patcheck in a hook but I am considering starting to now. If someone else has perhaps they can comment on how useful they found it. Did it print too many false positives? Was it too noisy? Was it too noisy if you commit often? I strongly suggest that everyone uses a spell-checker on their commit messages. Everyone makes mistakes and since we have many English-as-a-second-language contributors it can help to pick up on some common errors. A while back there was a spree of commits fixing the word "queue" in the code. This was easy enough as most the changes were internal. What it couldn't do is go back and correct any typos in commit messages. I use the following stub in my .git/hooks/post-commit file to check my commit messages. > SPELLING=$(git log -n1 --pretty=format:%B | aspell --lang=en-GB list | tr > '\n' ' ') > > if [ "${SPELLING}" != "" ]; then > echo -e "\x1b[33mYou might want to check the spelling of: > ${SPELLING}\x1b[0m" > fi A little explanation. > git log -n1 --pretty=format:%B Prints the raw, unwrapped subject and body of the commit message for the last commit. > aspell --lang=en-GB list Prints a list of misspelled words. I use en-GB but if you don't know the difference, use en-US as I think that is the standard FFmpeg aims for. > tr '\n' ' ' Translates newlines into spaces. Mostly for cosmetic and space reasons because aspell prints one word per line. > if [ "${SPELLING}" != "" ] If SPELLING is not empty... Why print anything if nothing is misspelled? > echo -e "\x1b[33mYou might want to check the spelling of: ${SPELLING}\x1b[0m" Print a message for me to see, including the misspelled words, and highlight it in yellow. I highlight it because git commit can print a few other things. Finally, I will add that I use post-commit because I don't want the spellcheck to block commits just because I use the word "ffmpeg", "libavcodec", or some common tech-related abbreviation.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel