Skip to content

Conversation

@dscho
Copy link
Member

@dscho dscho commented Jan 16, 2026

I leaned heavily on AI to implement this patch, in particular when analyzing the logs. That's why I added that trailer talking about Claude Sonnet. If this is undesirable, please let me know.

I noticed recently that the leak-checking jobs still take a lot of time,
and upon analysis, the git-svn tests contribute significantly to this.

Analyzing a recent CI run, I saw that the Git test suite contains
1,017 tests, running for approximately 5¼ hours total. Of these, 65
git-svn-related tests (~6% of test count) took 42.24 minutes combined,
accounting for ~13.% of the total runtime. This implies that the git-svn
tests are roughly twice as expernsive compared to the other tests.

However, testing git-svn in the leak-checking jobs provides minimal
value: git-svn is implemented as a Perl script, and leak checking only
handles C code. While git-svn does call into Git's built-in commands
that are implemented in C, these are standard Git operations that are
already thoroughly exercised elsewhere in the test suite. Therefore,
running the git-svn tests in the leak-checking jobs only adds to the
overall run time with little value in return.

Given that the leak-checking jobs are particularly time-intensive and
these 42+ minutes of SVN tests per job provide no additional leak
detection value, skip them in the *-leaks jobs to reduce CI runtime.

Assisted-by: Claude Sonnet 4.5
Signed-off-by: Johannes Schindelin <[email protected]>
@dscho dscho self-assigned this Jan 16, 2026
@dscho
Copy link
Member Author

dscho commented Jan 16, 2026

/submit

@gitgitgadget
Copy link

gitgitgadget bot commented Jan 16, 2026

Submitted as [email protected]

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-2031/dscho/skip-svn-and-leak-tests-v1

To fetch this version to local tag pr-2031/dscho/skip-svn-and-leak-tests-v1:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-2031/dscho/skip-svn-and-leak-tests-v1

@gitgitgadget
Copy link

gitgitgadget bot commented Jan 16, 2026

Junio C Hamano wrote on the Git mailing list (how to reply to this email):

"Johannes Schindelin via GitGitGadget" <[email protected]>
writes:

> However, testing git-svn in the leak-checking jobs provides minimal
> value: git-svn is implemented as a Perl script, and leak checking only
> handles C code. While git-svn does call into Git's built-in commands
> that are implemented in C, these are standard Git operations that are
> already thoroughly exercised elsewhere in the test suite. Therefore,
> running the git-svn tests in the leak-checking jobs only adds to the
> overall run time with little value in return.

Very nicely reasoned.  And the implementation of this idea is ...

> diff --git a/ci/lib.sh b/ci/lib.sh
> index f561884d40..a165c7f268 100755
> --- a/ci/lib.sh
> +++ b/ci/lib.sh
> @@ -356,6 +356,7 @@ linux-musl-meson)
>  	;;
>  linux-leaks|linux-reftable-leaks)
>  	export SANITIZE=leak
> +	export NO_SVN_TESTS=LetsSaveSomeTime
>  	;;

... surprisingly simple.  I very much like it.

Thanks.  Will queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant