处理repo status 出现一大堆不干净的东西

repo 管理了很多git,当需要repo sync的时候,总是要先清理repo status出现的不干净的东西,进到每个目录又很麻烦,有些目录会有编译生成的.o,.cmd等文件,一大堆,都会存在在repo status的打印中,特此 写了个脚本处理该类事件,因为是之前写的,也不想整理了 直接贴出来了,用就行了,看我自己都不想看,tmd 写的时候很烦 看的时候更烦

#! /bin/bash

###############################################
#
#功能:repo status后出现一大堆需要处理的,该脚本 可以全部处理;
# 处理repo status出现的3种情况, -- , -m , -d 
#
#使用方法:拷贝该文件到sdk的根目录,执行就可
#
#author luoyun
##############################################

echo "i will start"
rm repostatus
rm -f f_tmp*
repo status > repostatus

################################################################################################################################
grep -n "\-[md-]" repostatus > f_tmp4
tmp1=`cat f_tmp4`
if [ -n "$tmp1" ]
then
	echo "has -m or -d or --"
	awk -F ':' '{print $1}' f_tmp4 > f_tmp5
	tmp1=`sed -n '1p' f_tmp5`
	if [ -f f_tmp6 ]
	then
		rm f_tmp6
	fi

	for each_l in `cat f_tmp5`
	do
		let "tmp2 = $each_l - 1"

		if [ $tmp1 -eq $tmp2 ]
		then
			tmp1=$each_l
		else
			echo $each_l >> f_tmp6
			tmp1=$each_l
		fi
	done
	echo "#####ly cat f_tmp6 #######"
	cat f_tmp6
	echo "###########"
	if [ -f f_tmp7 ]
	then
		rm f_tmp7
	fi

	for each_l in `cat f_tmp6`
	do
		let "tmp6 = $each_l - 1"
		sed -n "${tmp6}p" repostatus >> f_tmp7
	done
	echo "######ly cat f_tmp7####"
	cat f_tmp7
	#awk -F ' ' '{print $2}' f_tmp7
	awk -F ' ' '{print $2}' f_tmp7 > f_tmp8
	echo "############"
	for each_d in `cat f_tmp8`
	do
		#echo "##"
		echo $each_d
		#############################################################
		cd $each_d
		git checkout .
		cd -
	done
	rm f_tmp*
else
	echo "no -m or no -- or no -d"
fi
if [ -f f_tmp4 ]
then
	rm f_tmp4
fi

#############################################################################
#repo status > repostatus
#grep -n "\-\-" repostatus
grep -n "\-[md-]" repostatus > f_tmp4
tmp1=`cat f_tmp4`
if [ -n "$tmp1" ]
then
	echo "2 has -- or  -d or -m "
	#awk -F ':' '{print $1}' f_tmp4
	awk -F ':' '{print $1}' f_tmp4 > f_tmp5
	#sed -n '1p' f_tmp5
	tmp1=`sed -n '1p' f_tmp5`
	#echo $tmp1 > f_tmp6

	######################
	#tmp3=11
	#tmp4=11
	#tmp5=12
	#if [ $tmp3 -eq $tmp4 ]
	#then
	#echo "tmp3==tmp4"
	#fi
	#if [ $tmp3 -eq $tmp5 ]
	#then
	#echo "tmp3==tmp5"
	#else
	#echo "tmp3!=tmp5"
	#fi
	#######################
	 
	for each_l in `cat f_tmp5`
	do
	#tmp2=(($each_l -1))
	let "tmp2 = $each_l - 1"
	#echo $tmp2
	#echo "# #"
	#if [ $tmp1 -eq (($each_l - 1)) ]
	#then
	#	tmp1=$each_l
	#else
	#	echo $each_l >> f_tmp6
	#	tmp1=$each_l
	#fi
	if [ $tmp1 -eq $tmp2 ]
	then
		tmp1=$each_l
	else
		echo $each_l >> f_tmp6
		tmp1=$each_l
	fi
	done
	echo "#####ly 1 #######"
	#cat f_tmp6
	echo "###########"
	for each_l in `cat f_tmp6`
	do
		let "tmp6 = $each_l - 1"
		sed -n "${tmp6}p" repostatus >> f_tmp7
	done
	echo "##########"
	#cat f_tmp7
	#awk -F ' ' '{print $2}' f_tmp7
	awk -F ' ' '{print $2}' f_tmp7 > f_tmp8
	echo "############"
	for each_d in `cat f_tmp8`
	do
		#echo "# #"
		echo $each_d
		#############################################################
		cd $each_d
		#cd common
		git status > ../f_tmp
		cat ../f_tmp

		grep -n "git add" ../f_tmp > ../f_tmp1
		#cat ../f_tmp1
		tmp=`cat ../f_tmp1`
		if [ -n "$tmp" ]
		then
			echo "ly --- need del"
			startl=`awk -F ':' '{print $1}' ../f_tmp1`
			echo $startl > ../f_tmp2

			a1=`awk -F ' ' '{print $1}' ../f_tmp2`
			a2=`awk -F ' ' '{print $2}' ../f_tmp2`

			echo $a1
			echo $a2
			echo "#####################"
			sed -n "$a1,${a2}p" ../f_tmp
			echo "################"
			sed -n '5,10p' ../f_tmp
			echo "################"
			#sed -n "{${a1}+2},{${a2}-1}p" ../f_tmp > ../f_tmp3
			sed -n "$a1,${a2}p" ../f_tmp > ../f_tmp3
			sed -i '1,2d' ../f_tmp3
			#cat ../f_tmp3
			sed -i '$d' ../f_tmp3
			cat ../f_tmp3
			echo "##########"
			sed -i 's/#/ /g' ../f_tmp3

			cat ../f_tmp3
			echo "###########"

			for each_add in `cat ../f_tmp3`
			do
			#echo $each_add
			#echo "#"
			rm -rf $each_add
			done
			git status
			echo "################"
		else
			echo "ly --- nothing to del"
		fi

		rm ../f_tmp*
		cd -
		#rm f_tmp*
	done
	echo "###########"

else
	echo "2no -- or  -m or -d"
fi

rm -f f_tmp*
################################################################################################################################


#############################################################################

#rm repostatus
echo "########################################"
echo "ly before execute this script  repo status"
cat repostatus
echo "#########################################"
echo "end script"
repo status





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值