SVN 生成和应用代码补丁,最省事的方式是用 TortoiseSVN(小乌龟)的图形界面,也可以用命令行灵活控制。核心流程就是:把本地修改打包成.patch 文件,再让对方把这个补丁应用到他的代码里。
🐢 TortoiseSVN 图形界面操作
- 创建补丁:右键点击文件或文件夹 → `TortoiseSVN` → `Create Patch…`,默认对比上一次提交(BASE 版本),也可以手动指定版本号。勾选 `Include unversioned files` 才能把新增但还没 `add` 的文件也打包进去。
- 应用补丁:右键点击目标文件夹(不是补丁文件本身)→ `TortoiseSVN` → `Apply Patch…`,选择补丁文件后确认操作。应用后文件会变成修改状态,需要手动 `SVN Commit` 才算真正提交。
⌨️ 命令行操作
- 生成补丁:
- 整个工作副本的变更:`svn diff > fix.patch`
- 指定文件:`svn diff src/main/java/Service.java > service-fix.patch`
- 指定版本范围:`svn diff -r 100:105 > version-change.patch`
- 包含新增/删除文件(必须加 `-N`):`svn diff -r 100:105 -N > full-change.patch`
- 应用补丁:在项目根目录执行 `patch -p1 < fix.patch`(补丁路径带 `a/` 前缀时),或 `patch -p0 < fix.patch`(不带前缀时)。
⚠️ 关键注意事项
- 基线版本要对齐:补丁本质是差异描述,如果对方代码已经大幅改动,应用很可能失败,失败时会生成 `.rej` 文件,需要人工介入修复。
- 新增/删除文件必须标记:不加 `-N` 参数(或小乌龟不勾选选项),补丁里不会包含新增或删除的文件。
- 应用前保持工作副本干净:最好先执行 `SVN Update` 确保是最新基准,否则容易冲突。
- 补丁不是提交:应用补丁后只是本地修改,必须手动 `SVN Commit` 才能真正入库。

9050

被折叠的 条评论
为什么被折叠?



