From: Junio C Hamano Date: Mon, 03 Feb 2014 20:31:47 GMT Subject: Re: [PATCH v3 9/9] pull: add the --gpg-sign option. Message-ID: In-Reply-To: <1391221086-1044384-10-git-send-email-sandals@crustytoothpaste.net> "brian m. carlson" writes: > git merge already allows us to sign commits, and git rebase has recently > learned how to do so as well. Teach git pull to parse the -S/--gpg-sign > option and pass this along to merge or rebase, as appropriate. > > Signed-off-by: brian m. carlson > --- > git-pull.sh | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/git-pull.sh b/git-pull.sh > index 0a5aa2c..3b2ea9e 100755 > --- a/git-pull.sh > +++ b/git-pull.sh > @@ -138,6 +138,15 @@ do > --no-verify-signatures) > verify_signatures=--no-verify-signatures > ;; > + --gpg-sign|-S) > + gpg_sign_args=-S > + ;; > + --gpg-sign=*) > + gpg_sign_args="$(git rev-parse --sq-quote "-S${1#--gpg-sign=}")" > + ;; > + -S*) > + gpg_sign_args="-S${1#-S}" > + ;; Interesting. Remove -S from the beginning and then prefix that with -S? Also, --gpg-sign='"b m c" ' and -S'"b m c" ' from the command line of this program would result in $gpg_sign_args that are differently quoted. Both of them cannot be correct at the same time. > --d|--dr|--dry|--dry-|--dry-r|--dry-ru|--dry-run) > dry_run=--dry-run > ;; > @@ -305,11 +314,13 @@ merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit > case "$rebase" in > true) > eval="git-rebase $diffstat $strategy_args $merge_args $rebase_args $verbosity" > + eval="$eval $gpg_sign_args" > eval="$eval --onto $merge_head ${oldremoteref:-$merge_head}" > ;; > *) > eval="git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only" > - eval="$eval $log_arg $strategy_args $merge_args $verbosity $progress" > + eval="$eval $log_arg $strategy_args $merge_args $verbosity $progress" > + eval="$eval $gpg_sign_args" > eval="$eval \"\$merge_name\" HEAD $merge_head" > ;; > esac