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

Re: [PATCH 2/3] test-lib-functions.sh: teach test_commit -C <dir>

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 21, 2016, 21:04 UTC
Message-ID
<xmqq37ikilxk.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20161121204146.13665-3-sbeller@google.com>
Stefan Beller <sbeller@google.com> writes:
Show 7 quoted lines
> Specifically when setting up submodule tests, it comes in handy if
> we can create commits in repositories that are not at the root of
> the tested trash dir. Add "-C <dir>" similar to gits -C parameter
> that will perform the operation in the given directory.
>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
Looks useful.
Show 61 quoted lines
>  t/test-lib-functions.sh | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
> index fdaeb3a96b..579e812506 100644
> --- a/t/test-lib-functions.sh
> +++ b/t/test-lib-functions.sh
> @@ -157,16 +157,21 @@ debug () {
>  	 GIT_TEST_GDB=1 "$@"
>  }
>  
> -# Call test_commit with the arguments "<message> [<file> [<contents> [<tag>]]]"
> +# Call test_commit with the arguments
> +# [-C <directory>] <message> [<file> [<contents> [<tag>]]]"
>  #
>  # This will commit a file with the given contents and the given commit
>  # message, and tag the resulting commit with the given tag name.
>  #
>  # <file>, <contents>, and <tag> all default to <message>.
> +#
> +# If the first argument is "-C", the second argument is used as a path for
> +# the git invocations.
>  
>  test_commit () {
>  	notick= &&
>  	signoff= &&
> +	indir= &&
>  	while test $# != 0
>  	do
>  		case "$1" in
> @@ -176,21 +181,26 @@ test_commit () {
>  		--signoff)
>  			signoff="$1"
>  			;;
> +		-C)
> +			indir="$2"
> +			shift
> +			;;
>  		*)
>  			break
>  			;;
>  		esac
>  		shift
>  	done &&
> +	indir=${indir:+"$indir"/} &&
>  	file=${2:-"$1.t"} &&
> -	echo "${3-$1}" > "$file" &&
> -	git add "$file" &&
> +	echo "${3-$1}" > "$indir$file" &&
> +	git ${indir:+ -C "$indir"} add "$file" &&
>  	if test -z "$notick"
>  	then
>  		test_tick
>  	fi &&
> -	git commit $signoff -m "$1" &&
> -	git tag "${4:-$1}"
> +	git ${indir:+ -C "$indir"} commit $signoff -m "$1" &&
> +	git ${indir:+ -C "$indir"} tag "${4:-$1}"
>  }
>  
>  # Call test_merge with the arguments "<message> <commit>", where <commit>
Previous: Stefan BellerNext: Stefan Beller
Message 8 of 17 in “Introduce `submodule interngitdirs`”
  1. 0/3 Introduce `submodule interngitdirs`Stefan Beller, Nov 21, 2016
  2. 1/3 submodule: use absolute path for computing relative path connectingStefan Beller, Nov 21, 2016
  3. Junio C HamanoNov 21, 2016
  4. Stefan BellerNov 21, 2016
  5. Stefan BellerNov 22, 2016
  6. Junio C HamanoNov 22, 2016
  7. 2/3 test-lib-functions.sh: teach test_commit -C <dir>Stefan Beller, Nov 21, 2016
  8. Junio C HamanoNov 21, 2016
  9. 3/3 submodule--helper: add intern-git-dir functionStefan Beller, Nov 21, 2016
  10. Junio C HamanoNov 21, 2016
  11. Stefan BellerNov 22, 2016
  12. Junio C HamanoNov 22, 2016
  13. Stefan BellerNov 22, 2016
  14. Junio C HamanoNov 22, 2016
  15. Brandon WilliamsNov 21, 2016
  16. Junio C HamanoNov 21, 2016
  17. Stefan BellerNov 21, 2016

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.