You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +02:00
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#If a version is set then we only try merging a source plugin with matching version as a generic one could change the ABI to master HEAD
|
|
merge_internal(){ # $1=repository, $2=refspec
|
|
branch="sourceplugin-$2"
|
|
if [ -n "$version" ] ; then
|
|
branch="$branch-$version"
|
|
fi
|
|
git pull --no-rebase --log --stat --commit --no-edit "$1" "$branch"
|
|
}
|
|
|
|
unset succeeded failed version
|
|
|
|
merge(){ # $1=repository, $2=refspec
|
|
merge_internal "$1" "$2" || {
|
|
git reset --hard
|
|
echo merge of $1 $2 failed, continuing with other plugins
|
|
failed="$failed $2"
|
|
return 0
|
|
}
|
|
succeeded="$succeeded $2"
|
|
}
|
|
|
|
error(){
|
|
echo $1
|
|
exit 1
|
|
}
|
|
|
|
git diff --exit-code >/dev/null ||\
|
|
error "Please commit local changes first"
|
|
|
|
git diff --cached --exit-code >/dev/null ||\
|
|
error "Please commit local changes first"
|
|
|
|
#version="12.34"
|
|
|
|
[ $# -ne 1 ] &&\
|
|
error "Usage: $0 source-plugins.txt"
|
|
|
|
while IFS=' ' read -r a b; do
|
|
case "$a" in
|
|
''|'#'*) continue ;;
|
|
esac
|
|
|
|
merge "$a" "$b"
|
|
done < "$1"
|
|
|
|
[ -n "$version" ] && echo version: $version
|
|
[ -n "$succeeded" ] && echo Succeeded merging: $succeeded
|
|
[ -n "$failed" ] && echo Failed merging: $failed
|