git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: [PATCH v4 12/10] git-remote-testgit: support the new 'force' option

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Oct 29, 2013, 08:41 UTC
Message-ID
<526f74cf8307f_37cdfb1e7c31@nysa.notmuch>
In-Reply-To
<1382908589-7000-1-git-send-email-rhansen@bbn.com>
Richard Hansen wrote:
Show 41 quoted lines
> Signed-off-by: Richard Hansen <rhansen@bbn.com>
> ---
>  git-remote-testgit.sh | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/git-remote-testgit.sh b/git-remote-testgit.sh
> index 6d2f282..80546c1 100755
> --- a/git-remote-testgit.sh
> +++ b/git-remote-testgit.sh
> @@ -6,6 +6,7 @@ url=$2
>  
>  dir="$GIT_DIR/testgit/$alias"
>  prefix="refs/testgit/$alias"
> +forcearg=
>  
>  default_refspec="refs/heads/*:${prefix}/heads/*"
>  
> @@ -39,6 +40,7 @@ do
>  		fi
>  		test -n "$GIT_REMOTE_TESTGIT_SIGNED_TAGS" && echo "signed-tags"
>  		test -n "$GIT_REMOTE_TESTGIT_NO_PRIVATE_UPDATE" && echo "no-private-update"
> +		echo 'option'
>  		echo
>  		;;
>  	list)
> @@ -93,6 +95,7 @@ do
>  		before=$(git for-each-ref --format=' %(refname) %(objectname) ')
>  
>  		git fast-import \
> +			${forcearg} \
>  			${testgitmarks:+"--import-marks=$testgitmarks"} \
>  			${testgitmarks:+"--export-marks=$testgitmarks"} \
>  			--quiet
> @@ -115,6 +118,21 @@ do
>  
>  		echo
>  		;;
> +	option\ *)
> +		read cmd opt val <<EOF
> +${line}
> +EOF
We can do <<-EOF to align this properly.
Also, I don't see why all the variables are ${foo} instead of $foo.
> +		case ${opt} in
> +		    force)
I think the convention is to align these:

case $opt in force)

Show 5 quoted lines
> +			case ${val} in
> +			    true) forcearg=--force; echo 'ok';;
> +			    false) forcearg=; echo 'ok';;
> +			    *) printf %s\\n "error '${val}'\
> + is not a valid value for option ${opt}";;
I think this is packing a lot of stuff and it's not that readable.

Moreover, this is not for production purposes, it's for testing purposes and a guideline, I think this suffices.

	option\ *)
		read cmd opt val <<-EOF
		$line
		EOF
		case $opt in
		force)
			test $val = "true" && force="true" || force=
			echo "ok"
			;;
		*)
			echo "unsupported"
			;;
		esac
		;;
But this is definetly good to have, will merge.
-- 
Felipe Contreras
Previous: Richard HansenNext: Richard Hansen
Message 16 of 20 in “transport-helper: updates”
  1. 00/10 transport-helper: updatesFelipe Contreras, Oct 27, 2013
  2. 03/10 transport-helper: check for 'forced update' messageFelipe Contreras, Oct 27, 2013
  3. 05/10 fast-export: add new --refspec optionFelipe Contreras, Oct 27, 2013
  4. 06/10 transport-helper: add support for old:new refspecFelipe Contreras, Oct 27, 2013
  5. 02/10 transport-helper: fix extra linesFelipe Contreras, Oct 27, 2013
  6. 09/10 transport-helper: add support to delete branchesFelipe Contreras, Oct 27, 2013
  7. 01/10 transport-helper: add 'force' to 'export' helpersFelipe Contreras, Oct 27, 2013
  8. 11/10 fixup! transport-helper: add 'force' to 'export' helpersRichard Hansen, Oct 27, 2013
  9. 08/10 fast-export: add support to delete refsFelipe Contreras, Oct 27, 2013
  10. 10/10 transport-helper: don't update refs in dry-runFelipe Contreras, Oct 27, 2013
  11. 07/10 fast-import: add support to delete refsFelipe Contreras, Oct 27, 2013
  12. Eric SunshineOct 27, 2013
  13. 04/10 fast-export: improve argument parsingFelipe Contreras, Oct 27, 2013
  14. 12/10 git-remote-testgit: support the new 'force' optionRichard Hansen, Oct 27, 2013
  15. 13/10 test: remote-helper: add test for force pushesRichard Hansen, Oct 27, 2013
  16. Felipe ContrerasOct 29, 2013
  17. Richard HansenNov 10, 2013
  18. Felipe ContrerasNov 11, 2013
  19. Junio C HamanoNov 11, 2013
  20. Richard HansenNov 12, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.