On Sun, Nov 17, 2019 at 11:31:06AM +0100, Michael Olbrich wrote: > On Mon, Nov 11, 2019 at 12:31:29PM +0100, Roland Hieber wrote: > > The brhaviour of git-format-patch can be customized through user-defined
s/brhaviour/behaviour ... > > variables from the environment or from the user's .gitconfig, like > > custom regexes for function context in diff hunk headers, or different > > cleanup options. These things can lead to fuzz in generated patches > > which cannot easily be reproduced by different users when re-exporting > > existing patch stacks. > > > > Create a wrapper to call git in a pristine environment in order to > > minimize any differences between user environments, and use it to format > > the patch stack. > > > > Signed-off-by: Roland Hieber <[email protected]> > > --- > > scripts/git-ptx-patches | 31 +++++++++++++++++++++++++++++-- > > 1 file changed, 29 insertions(+), 2 deletions(-) > > > > diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches > > index 721aa78ba31c..63a1b3921646 100755 > > --- a/scripts/git-ptx-patches > > +++ b/scripts/git-ptx-patches > > @@ -1,5 +1,32 @@ > > #!/bin/bash > > > > +# Create a pristine environment to minimize unnecessary fuzz when different > > +# users use git-ptx-patches on the same patch stack. That is, don't load > > any > > +# config files, and pin down environment variables which could influence > > git's > > +# behaviour or patch output. > > +# Maybe we need to save name and e-mail from the user config… > > +# Note from git-commit-tree(1): if set in the user's environment, > > GIT_AUTHOR_* > > +# and GIT_COMMITTER_* still take precedence over the user.* config > > variables. > > +PRISTINE_GIT_AUTHOR=$(git config --get user.name) > > +PRISTINE_GIT_EMAIL=$(git config --get user.email) > > +PRISTINE_GIT_PARAMS=() > > +if [ -n "${PRISTINE_GIT_AUTHOR}" ]; then > > + PRISTINE_GIT_PARAMS+=( -c user.name="${PRISTINE_GIT_AUTHOR}" ) > > +fi > > +if [ -n "${PRISTINE_GIT_EMAIL}" ]; then > > + PRISTINE_GIT_PARAMS+=( -c user.email="${PRISTINE_GIT_EMAIL}" ) > > +fi > > I don't think we need to save user / email here. > git is only used for create patches, not create new commits. The author name and email go into the patch as well, and those settings also influence the Signed-off-by tags, if used. I bet there is at least one user that have configured a different user name or email in their ~/.gitconfig. We should follow the principle of least surprise here and do the same as git does. - Roland > > Michael > > > +pristine_git() { > > + # Notes from the git(1) manpage: > > + # - GIT_DIFF_OPTS takes takes precedence over -U command line parameter > > + HOME=/nonexistent \ > > + XDG_CONFIG_HOME=/nonexistent \ > > + GIT_CONFIG_NOSYSTEM=true \ > > + GIT_DIFF_OPTS="-u3" \ > > + git "${PRISTINE_GIT_PARAMS[@]}" "$@" > > +} > > +GIT="pristine_git" > > + > > PTX_PATCHES_HEADER="# generated by git-ptx-patches" > > > > function _md5sum() { > > @@ -116,7 +143,7 @@ case "$remove_old" in > > esac > > > > # git-format-patch --no-signature is supported since git 1.7.2 > > -if git format-patch -h 2>&1 | grep -q signature; then > > +if ${GIT} format-patch -h 2>&1 | grep -q signature; then > > GIT_EXTRA_ARGS="--no-signature" > > fi > > > > @@ -129,7 +156,7 @@ fi > > GIT_EXTRA_ARGS="$GIT_EXTRA_ARGS --summary --stat=80" > > > > cat .ptxdist/series.0 > .ptxdist/series > > -git format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ > > ${range} | sed -e 's,^.ptxdist/patches/,,' > .ptxdist/series.auto > > +${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ > > ${range} | sed -e 's,^.ptxdist/patches/,,' > .ptxdist/series.auto > > cat .ptxdist/series.auto >> .ptxdist/series > > cat .ptxdist/series.1 >> .ptxdist/series > > cat .ptxdist/series | _md5sum >> .ptxdist/series > > -- > > 2.24.0.rc1 > > > > > > _______________________________________________ > > ptxdist mailing list > > [email protected] > > -- > Pengutronix e.K. | | > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > -- Roland Hieber, Pengutronix e.K. | [email protected] | Steuerwalder Str. 21 | https://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list [email protected]
