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

原创 2016年08月31日 11:54:55

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





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

repo用法详解

转载地址是:http://blog.csdn.net/changjiang654/article/details/6253769 Android 为企业提供一个新的市场,无论大企业,小企...

repo使用简介

1 repo介绍 Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将百...

获取android源码时repo的错误

今天用repo获取android源码: ../bin/repo init -u git://android.git.kernel.org/platform/manifest.git 出现问题: ...

sql时间处理语句一大堆

--设置 min server memory 配置项 EXEC sp_configure N'min server memory (MB)',0 --设置 max server memory ...

关于电感的一大堆资料

  • 2009-09-10 18:39
  • 6.22MB
  • 下载

关于MVC、MVVM等一大堆思想

MVC MVC(Model-View-Controller)是最老牌的的思想,老牌到4人帮的书里把它归成了一种模式,其中Model就是作为数据管理者,View作为数据展示者,Controller...

一大堆olb、tlb文件

  • 2014-10-08 15:39
  • 208KB
  • 下载

一大堆的福利之【USACO题库】Calf Flac

题目描述 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。 你的工作就是去这些牛制造的奇观(最棒的回文)。 在寻找回文时不用理睬那些...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)