当前位置:   article > 正文

使用git获取patch_怎么拉当前的patch

怎么拉当前的patch

       因为经常进行代码移植,当移植在同一套代码上面进行移植,使用git自带的命令生成patch,再合入是最好不过的!但是如果你以前做的新功能,想从一个平台移植到另一个平台,这个时候使用git自带生成patch和合入patch就不方便了,例如从android4.4 移植到android L上面!那这个时候我们最想要的是类似:


            

类似这样的一个目录,一个是修改前的,一个是修改后,然后再根据对比修改的进行移植,是不是很方便!

废话少说,直接上代码:

#!/bin/bash
echo ./getpatch newshaid oldshaid
from_id=$1
to_id=$2
#echo $from_id
#echo $to_id
diffpath='patch/diff.log'
newpath='patch/new/'
oldpath='patch/old/'
rm -rf patch
mkdir -p $newpath
mkdir -p $oldpath
git diff $from_id $to_id --raw > $diffpath
 #遍历修改的文件
  cat $diffpath | while  read line
  do 
   #echo =====================================
   #echo $line
   OLD_IFS="$IFS"
   IFS=" "
   arr=($line)
   IFS="$OLD_IFS"   
   #echo ${arr[4]}
   filepath=${arr[4]##* }
   #echo $filepath
   newid=${arr[2]%%...}
   #echo $newid
   oldid=${arr[3]%%...}
   #echo $oldid  


   
   
if [ "$newid"x != "0000000"x  ]; then   
   newfilepath=${newpath}${filepath}
   echo $newfilepath
   dirpath=${newfilepath%/*}
   echo $dirpath
   mkdir -p ${dirpath}
   git cat-file -p $newid >  ${newfilepath}
fi


if [ "$oldid"x != "0000000"x  ]; then 
   oldfilepath=${oldpath}${filepath} 
   echo $oldfilepath
   dirpath=${oldfilepath%/*}
   echo $dirpath   
   mkdir -p ${dirpath}
   git cat-file -p $oldid >  ${oldfilepath}
fi   
done   

最后执行:

    ./getpatch newshaid oldshaid

newshaid和oldshaid什么意思就不多说了!


          

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/652615
推荐阅读
相关标签
  

闽ICP备14008679号