[dpdk-dev] [PATCH v2] scripts: add git hook scripts for checkpatch and auto doc generation

Thomas Monjalon thomas.monjalon at 6wind.com
Thu Dec 3 20:09:30 CET 2015


Ferruh,
I have a lot of questions :)

2015-11-27 14:34, Ferruh Yigit:
> --- a/scripts/checkpatches.sh
> +++ b/scripts/checkpatches.sh
> @@ -43,6 +43,7 @@ length=${DPDK_CHECKPATCH_LINE_LENGTH:-80}
>  
>  # override default Linux options
>  options="--no-tree"
> +options="$options ${GIT_HOOK_OPTIONS}"

What is the purpose of this variable?
Why adding some options would be specific to git hooks?

> +++ b/scripts/git-hooks/deploy.sh
> @@ -0,0 +1,20 @@
> +
> +SELF=$(basename $0)
> +
> +if [ ! -f ${SELF} ]; then
> +	echo "Please run script from folder where script is"
> +	exit 1
> +fi

You do not need to exit. Just cd $(dirname $0).

> +for f in ${FILES}; do
> +	ln -sf ${SCRIPT_FOLDER}/${f} ${TARGET_FOLDER}/${f}
> +done;

You do not need the ;

> --- /dev/null
> +++ b/scripts/git-hooks/post-commit
> +if [ -n "$RTE_DOC_OUT" ]; then
> +	OUT_CMD="O=${RTE_DOC_OUT}"
> +fi

How to pass RTE_DOC_OUT to the hook?
Why not use load-devel-config.sh?

> +make ${OUT_CMD} doc-guides-html 2>&1 > /dev/null
> +make ${OUT_CMD} doc-api-html 2>&1 > /dev/null

Why hiding the errors?

> --- /dev/null
> +++ b/scripts/git-hooks/post-merge

Does it work for "git pull --rebase"?

> --- /dev/null
> +++ b/scripts/git-hooks/pre-commit
> +# If "git commit" called with "--no-verify" option, pre-commit hooks
> +# bypassed and this script not called, checkpatch bypassed

Possible reword: It is skipped with the option "--no-verify" of "git commit".

> +RTE_CHECKPATCH=$PWD/scripts/checkpatches.sh

What is PWD when calling the hook. May it be a subdir?

> +PATCH=/tmp/dpdk-git-auto-checkpatch-$$.patch

You need to remove this temporary file when exiting.
But it would be better to use stdin.
It may need a patch on checkpatches.sh wrapper.
In chekpatch.pl: "When FILE is - read standard input".

> +export GIT_HOOK_OPTIONS=--no-signoff

This variable is wrongly named.

> +git diff --cached > ${PATCH}
> +exec ${RTE_CHECKPATCH} ${PATCH}

When the new "make install" will be applied, I think we should skip
these files. Please consider patching mk/rte.sdkinstall.mk.
Thanks


More information about the dev mailing list