# jasper-patch **Repository Path**: coderkemi/jasper-patch ## Basic Information - **Project Name**: jasper-patch - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-15 - **Last Updated**: 2024-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## jasper-1.900.1 ### create patch ```shell diff -Nrua ./jasper-1.900.1 ./new/jasper-1.900.1 > jasper-patch/jasper-1.900.1.patch ``` ### apply patch ```shell patch -d jasper-1.900.1 -p1 < jasper-patch/jasper-1.900.1.patch ``` ## jasper-1.900.2 ### create patch ```shell git diff jasper-1.900.2 new/jasper-1.900.2 > jasper-patch/jasper-1.900.2.patch ``` ### apply patch ```shell git apply < jasper-patch/jasper-1.900.2.patch ``` ## patch 解释 选项 -d <目录>:指定工作目录 选项 -p <层级>:去掉多少级目录 ### 示例一: patch 文件格式: diff -Nrua jasper-1.900.1/jasper.spec new/jasper-1.900.1/jasper.spec patch 命令: patch -d jasper-1.900.1 -p1 < jasper-patch/jasper-1.900.1.patch 解释: -d jasper-1.900.1 :当作工作目录 -p 1 :去掉1层目录,即变成下面样子: diff -Nrua jasper.spec jasper-1.900.1/jasper.spec 在 jasper-1.900.1 目录下,能找到 jasper.spec,所以不会报错 ### 示例二: patch 文件格式: diff -Nrua ./jasper-1.900.1/jasper.spec ./new/jasper-1.900.1/jasper.spec patch 命令: patch -d jasper-1.900.1 -p2 < jasper-patch/jasper-1.900.1.patch 解释: -d jasper-1.900.1 :当作工作目录 -p 2 :去掉2层目录,即变成下面样子: diff -Nrua jasper.spec jasper-1.900.1/jasper.spec 在 jasper-1.900.1 目录下,能找到 jasper.spec,所以不会报错 若 patch 命令改为 patch -d jasper-1.900.1 -p1 < jasper-patch/jasper-1.900.1.patch, 去掉一层目录会变成这样:diff -Nrua jasper-1.900.1/jasper.spec new/jasper-1.900.1/jasper.spec, 所以在 jasper-1.900.1 目录下,不能找到 jasper-1.900.1/jasper.spec,所以报错; 解决办法有2种: 1. 再去掉一层目录, 变成这样:diff -Nrua jasper.spec jasper-1.900.1/jasper.spec, 在 jasper-1.900.1 目录下,能找到 asper.spec,所以不会报错; 2. 工作目录改为上一级目录, 在 jasper-1.900.1/../ 目录下,能找到 jasper-1.900.1/jasper.spec,所以不会报错; ## git patch 解释 patch 文件格式: diff --git a/jasper-1.900.2/jasper.spec b/jasper-1.900.2/jasper.spec 当前在 jasper-1.900.2 所在目录,执行 git apply < jasper-patch/jasper-1.900.2.patch ls jasper-1.900.2 因为 git 会自动去掉 a/ 目录,所以在当前目录下能找到 jasper-1.900.2/jasper.spec,不会报错