This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit d5d62e04b9bca278999f43a1cbd9b19f3a8ca29f Author: Martin Storsjö <[email protected]> AuthorDate: Wed Jun 10 00:41:06 2026 +0300 Commit: Martin Storsjö <[email protected]> CommitDate: Thu Jun 25 12:46:50 2026 +0300 tools: Add a script for updating the checkasm subtree Trim out any files we don't need downstream. Automate doing the subtree merges, and automate resolving the conflicts for updates for files that we want to have removed. If updates end up with other conflicts, the script (or in practice, git) exits without creating the intended merge commit - but regular updates should run automatically. --- tools/update-checkasm.sh | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/tools/update-checkasm.sh b/tools/update-checkasm.sh new file mode 100755 index 0000000000..80eda113de --- /dev/null +++ b/tools/update-checkasm.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +set -e + +UPDATE_COMMIT=${1:-master} + +cd $(dirname $0)/.. + +trim() { + cd tests/checkasm/ext + oldifs="$IFS" + # Set IFS to contain only a newline, no regular space, to make the + # for loop below properly handle file names with spaces. + IFS=" +" + for i in $(ls -A); do + case "$i" in + include|src|LICENSE) + # Keep these + ;; + *) + if ! git rm -rf "$i"; then + echo "Unable to trim out $i - untracked file?" + exit 1 + fi + ;; + esac + done + # Remove the meson files from the include/src subdirectories. + for i in $(find . -name meson.build); do + if ! git rm -f "$i"; then + echo "Unable to trim out $i - untracked file?" + exit 1 + fi + done + IFS="$oldifs" +} + +git update-index --refresh +if ! git diff-index --quiet HEAD --; then + echo Working tree has modifications - aborting. + exit 1 +fi + +orig_commit=$(git rev-parse HEAD) +if git subtree pull --squash --prefix=tests/checkasm/ext \ + -m "checkasm: Update from upstream" \ + https://code.ffmpeg.org/FFmpeg/checkasm.git ${UPDATE_COMMIT}; then + # Successfully merged updates (or no updates at all). + new_commit=$(git rev-parse HEAD) + trim + if [ "$orig_commit" = "$new_commit" ]; then + # Nothing merged from upstream + git commit -m "checkasm: Trim out unused upstream files" + else + # Merged new changes; amend the results from trimming the subtree, + # in case upstream added new files we don't need. + git commit --amend --no-edit + fi +else + # Failed merge - possibly due to conflicts, due to updates to files that + # we have trimmed out. Try removing those files again, with "git rm", + # and check if that was enough to resolve the conflicts. + trim + if ! git commit; then + echo "Committing trimmed output failed - are there remaining merge conflicts?" + exit 1 + else + echo "Resolved conflicts by re-trimming out files." + fi +fi _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
