Stefan Beller <[email protected]> writes:
> 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 <[email protected]>
> ---
Looks useful.
> 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>