mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: Alexander Dahl <ada@thorsis.com>
Cc: ptxdist@pengutronix.de, Roland Hieber <rhi@pengutronix.de>
Subject: Re: [ptxdist] [PATCH] git-ptx-patches: call git in a pristine environment
Date: Mon, 18 Nov 2019 10:13:11 +0100	[thread overview]
Message-ID: <20191118091311.mvg7y3o3llzxtlad@pengutronix.de> (raw)
In-Reply-To: <1848202.COEMd5Yy5M@ada>

On Mon, Nov 18, 2019 at 08:18:33AM +0100, Alexander Dahl wrote:
> Moin,
> 
> Am Sonntag, 17. November 2019, 11:31:06 CET schrieb Michael Olbrich:
> > 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
> > > 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 <rhi@pengutronix.de>
> > > ---
> > > 
> > >  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.
> 
> I already did this, and not only once:
> 
> p --git extract foo
> cd platform-bar/build-target/foo-1.2.3
> [hack, hack, hack]
> git commit -a -m 'baz'
> git ptx-patches
> …

I do the same. But the patch only changes how git is called inside 'git
ptx-patches' and there only format-patch is used.

Michael

> > 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
> 
> 
> 

-- 
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 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2019-11-18  9:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-11 11:31 Roland Hieber
2019-11-17 10:31 ` Michael Olbrich
2019-11-17 21:57   ` Roland Hieber
2019-11-18  7:18   ` Alexander Dahl
2019-11-18  9:13     ` Michael Olbrich [this message]
2019-11-18  9:21 ` [ptxdist] [PATCH v2] " Roland Hieber
2019-11-18  9:32 ` [ptxdist] [PATCH v3] " Roland Hieber
2019-11-18 13:39   ` Jon Ringle
2019-11-27  9:41     ` Roland Hieber
2019-12-05 10:15       ` Roland Hieber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191118091311.mvg7y3o3llzxtlad@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ada@thorsis.com \
    --cc=ptxdist@pengutronix.de \
    --cc=rhi@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox