mirror of
https://github.com/tbsdtv/media_build.git
synced 2025-07-23 20:30:40 +02:00
122 lines
3.1 KiB
Bash
122 lines
3.1 KiB
Bash
#/bin/bash
|
|
|
|
# Set default tree locations, if you want, at the shell ENV
|
|
#GIT_TREE=$HOME/v4l-dvb
|
|
#HG_TREE=$HOME/v4l-dvb-hg
|
|
|
|
# Should be adjusted to the environment
|
|
TMP_TREE=/tmp/oldtree
|
|
KERNVER_FILE=./v4l/scripts/etc/kern_version
|
|
FIXPATCHES=./v4l/scripts/etc/fixdiffs/*
|
|
BLACKLIST=./v4l/scripts/etc/blacklist.txt
|
|
GENTREE=./v4l/scripts/gentree.pl
|
|
|
|
if [ "$1" == "--strip-dead-code" ]; then
|
|
GENTREE_ARGS="$1"
|
|
shift
|
|
fi
|
|
|
|
if [ "$2" != "" ]; then
|
|
#
|
|
# Two arguments were given. One tree should be hg and the other git
|
|
#
|
|
if [ -e $1/.hg/hgrc ]; then
|
|
HG_TREE=$1
|
|
GIT_TREE=$2
|
|
else
|
|
HG_TREE=$2
|
|
GIT_TREE=$1
|
|
fi
|
|
else
|
|
#
|
|
# If just one argument is selected, and it is called from one tree
|
|
# use the other argument for the other tree type
|
|
# otherwise, use default plus the given tree name
|
|
#
|
|
if [ "$1" != "" ]; then
|
|
if [ -e $1/.hg/hgrc ]; then
|
|
HG_TREE=$1
|
|
if [ -e .git/config ]; then
|
|
GIT_TREE=.
|
|
fi
|
|
elif [ -e $1/.git/config ]; then
|
|
GIT_TREE=$1
|
|
if [ -e .hg/hgrc ]; then
|
|
HG_TREE=.
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$GIT_TREE" == "" ]; then
|
|
echo "No git tree were provided."
|
|
ERROR=1
|
|
fi
|
|
|
|
if [ "$HG_TREE" == "" ]; then
|
|
echo "No mercurial tree were provided."
|
|
ERROR=1
|
|
fi
|
|
|
|
if [ "$ERROR" != "" ]; then
|
|
echo "Usage: $0 [--strip-dead-code] <tree1> [<tree2>]"
|
|
exit -1
|
|
fi
|
|
|
|
if [ ! -e "$GIT_TREE/.git/config" ]; then
|
|
echo "$GIT_TREE is not a git tree. Should specify a git tree to compare with the $HG_TREE mercurial tree"
|
|
exit -1
|
|
fi
|
|
|
|
if [ ! -e "$HG_TREE/.hg/hgrc" ]; then
|
|
echo "$HG_TREE is not a mercurial tree. Should specify -hg tree to compare with the $GIT_TREE git tree"
|
|
exit -1
|
|
fi
|
|
|
|
echo "comparing $HG_TREE -hg tree with $GIT_TREE -git tree."
|
|
|
|
|
|
run() {
|
|
echo $@
|
|
$@
|
|
}
|
|
|
|
echo removing oldtree..
|
|
run rm -rf $TMP_TREE
|
|
echo creating an oldtree..
|
|
run $GENTREE $GENTREE_ARGS `cat $KERNVER_FILE` $HG_TREE/linux $TMP_TREE >/dev/null
|
|
|
|
echo applying the fix patches
|
|
for i in $FIXPATCHES; do
|
|
echo $i
|
|
run patch --no-backup-if-mismatch -R -d $TMP_TREE -p2 -i $i -s
|
|
diffstat -p1 $i
|
|
done
|
|
|
|
echo removing rej/orig from $GIT_TREE
|
|
run find $GIT_TREE -name '*.rej' -exec rm '{}' \;
|
|
run find $GIT_TREE -name '*.orig' -exec rm '{}' \;
|
|
|
|
echo removing rej/orig from oldtree
|
|
run find $TMP_TREE -name '*.rej' -exec rm '{}' \;
|
|
run find $TMP_TREE -name '*.orig' -exec rm '{}' \;
|
|
|
|
echo generating "/tmp/diff"
|
|
diff -upr $TMP_TREE $GIT_TREE|grep -v ^Somente |grep -v ^Only>/tmp/diff
|
|
echo "generating /tmp/diff2 (loose diff0)"
|
|
diff -uprBw $TMP_TREE $GIT_TREE|grep -v Somente |grep -v ^Only>/tmp/diff2
|
|
echo generating /tmp/somente2 for a complete oldtree-only files
|
|
diff -upr $TMP_TREE $GIT_TREE|grep ^Somente|grep "drivers/media" |grep -vr ".o$" |grep -v ".mod.c"|grep -v ".o.cmd" |grep -v modules.order >/tmp/somente2
|
|
diff -upr $TMP_TREE $GIT_TREE|grep ^Only|grep "drivers/media" |grep -vr ".o$" |grep -v ".mod.c"|grep -v ".o.cmd" |grep -v modules.order >>/tmp/somente2
|
|
|
|
echo generating /tmp/somente for oldtree-only files
|
|
cp /tmp/somente2 /tmp/s$$
|
|
for i in `cat $BLACKLIST`; do
|
|
cat /tmp/s$$ | grep -v "Somente.* $i" >/tmp/s2$$
|
|
mv /tmp/s2$$ /tmp/s$$
|
|
done
|
|
mv /tmp/s$$ /tmp/somente
|
|
echo
|
|
echo diffstat -p1 /tmp/diff
|
|
diffstat -p1 /tmp/diff
|