Linux 根据提交记录生成补丁及新旧文件对比

#!/bin/bash

#解决/bin/bash^M: bad interpreter: Text file busy
#sed -i 's/\r$//' test1.sh

CMD1=$1
CMD2=$2
CMD3=$3
echo "CMD1 > $CMD1"
echo "CMD2 > $CMD2"
echo "CMD3 > $CMD3"
# 运行时的入参 CMD1提交记录1  CMD2提交记录2 CMD3输出目录 ../diff/$CMD3

if [ "$CMD1" == "" ];then
    echo "<<<<<<<<<<<<<<<<<<<<<< error"
    exit 0
fi

if [ "$CMD2" == "" ];then
    echo "<<<<<<<<<<<<<<<<<<<<<< error"
    exit 0
fi

if [ "$CMD3" == "" ];then
    CMD3="supplier"
fi

mkdir -p ../diff/$CMD3/old
mkdir -p ../diff/$CMD3/new
echo "mkdir"

git log $CMD1 -1 --name-only |grep '/'| awk '{print $1}' > ../diff/list.txt
# 查看$CMD1提交记录的文件列表

xargs -a ../diff/list.txt cp --parents -t ../diff/$CMD3/old
xargs -a ../diff/list.txt cp --parents -t ../diff/$CMD3/new
echo "cp files"

git diff $CMD2 $CMD1 > ../diff/$CMD3/list.diff
echo "new list.diff"
# 根据$CMD1提交记录对比前一条提交记录$CMD2生成差异文件

cd ../diff/$CMD3/old
patch -R -p1 <../list.diff
echo "patch list.diff"
# 打补丁

echo "<<<<<<<<<<<<<<<<<<<<<< finish"
exit 0





根据两个提交记录CMD1和CMD2生成差异文件list.diff,并根据CMD1的修改文件列表复制修改前的文件到old目录,修改后的文件到new目录

参考链接:

git导出差异文件及目录结构 - 我是橘子 - 博客园 (cnblogs.com)

相关推荐

  1. Linux 根据提交记录生成补丁文件

    2024-05-01 10:50:01       31 阅读
  2. git生成应用补丁

    2024-05-01 10:50:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 10:50:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 10:50:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 10:50:01       82 阅读
  4. Python语言-面向对象

    2024-05-01 10:50:01       91 阅读

热门阅读

  1. SGP.31/.32 规范以及它将如何影响物联网

    2024-05-01 10:50:01       31 阅读
  2. Docker基本命令

    2024-05-01 10:50:01       30 阅读
  3. A star前置算法优先队列

    2024-05-01 10:50:01       29 阅读
  4. Ubuntu20.04安装MySQL数据库

    2024-05-01 10:50:01       25 阅读
  5. OLTP和OLAP,StarRocks数据库,TiDB数据库

    2024-05-01 10:50:01       34 阅读
  6. UNIXUNIX

    2024-05-01 10:50:01       35 阅读
  7. K8S学习

    K8S学习

    2024-05-01 10:50:01      32 阅读
  8. MAC M1电脑部署Grafana+Prometheus+Node_exporter

    2024-05-01 10:50:01       25 阅读
  9. Kubernetes(K8S) — 生产环境

    2024-05-01 10:50:01       34 阅读
  10. 三生随记——深夜的殡仪馆

    2024-05-01 10:50:01       31 阅读
  11. 「Nastya Hasn‘t Written a Legend」Solution

    2024-05-01 10:50:01       32 阅读
  12. Ansible playbook之循环

    2024-05-01 10:50:01       29 阅读
  13. 在Django中实现多用户角色和权限管理的方法

    2024-05-01 10:50:01       33 阅读
  14. 深入解密Spring Boot日志:最佳实践与策略解析

    2024-05-01 10:50:01       35 阅读
  15. 【一站式学会Kotlin】第二节 kotlin 的var 和 val变量

    2024-05-01 10:50:01       30 阅读