Files
qiming/qimingclaw/docs/merge-origin-dev-evaluation.md

41 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 合并前评估:将 origin/dev 合并到当前分支
## 1. 当前状态
| 项目 | 情况 |
|------|------|
| **当前分支** | `fix/file-server-panic`(与 `origin/fix/file-server-panic` 同步) |
| **未提交变更** | 仅 `crates/agent-tauri-client/src-tauri/src/lib.rs`:有暂存变更,且工作区相对暂存区还有修改(约 +96/-77 行) |
| **共同祖先** | `f9ae1f5` |
| **origin/dev 领先** | 相对共同祖先多 **8 个提交** |
| **当前分支领先** | 相对共同祖先多 **2 个提交**(本分支上的 file-server 相关改动) |
## 2. origin/dev 侧相关历史
- `origin/dev` 上已有一次合并:`Merge remote-tracking branch 'refs/remotes/origin/fix/file-server-panic' into dev`,即 dev 曾把当时的 `fix/file-server-panic` 合进去过。
- 之后 dev 上还有rustfmt 配置、应用 setup/命令结构、版本号、通知插件、admin 可观测性等共 8 个提交,其中部分会动到 agent-tauri-client含可能动 `lib.rs`)。
## 3. 合并会怎样
- **直接执行 `git merge origin/dev`**Git 会拒绝,提示本地对 `lib.rs` 的修改会被合并覆盖,因此当前合并被阻止。
- **若先提交或暂存当前修改再合并**
- 若 dev 也改了 `lib.rs`**很可能产生冲突**,需要手动解决。
- 冲突会集中在路径解析、bin_path、file-server/mcp-proxy/lanproxy 等我们改过的区域与 dev 新功能的交叉处。
## 4. 可选方案(建议顺序)
| 方案 | 操作 | 优点 | 注意 |
|------|------|------|------|
| **A. 先提交再合并** | 先 `git add lib.rs``git commit`,再 `git merge origin/dev` | 保留当前所有改动、冲突在合并时一次性解决 | 需解决冲突并跑测试 |
| **B. 暂存后合并** | `git stash push -m "bin_path and path resolution"`,再 `git merge origin/dev`,最后 `git stash pop` | 先干净合并 dev再把本地改动加回去 | pop 后可能与 dev 代码冲突,需手动合 |
| **C. 新分支合并** | 基于当前分支新建分支,在新分支上提交当前修改,再在新分支上合并 `origin/dev` | 不动当前分支,可随时比较/丢弃 | 本质仍是「先提交再合并」,只是换分支操作 |
## 5. 建议
- **若当前对 `lib.rs` 的修改都要保留**:采用 **方案 A**(先提交再合并),合并时在冲突文件里以「保留本分支路径解析/公共方法逻辑 + 接入 dev 新功能」为目标解决冲突。
- **若想先看 dev 完整代码再决定如何合**:可采用 **方案 B**stash → merge → stash pop合并完再决定冲突处是保留 dev、保留本地还是手写合并版本。
---
*文档生成自合并评估,执行前请先 `git fetch origin dev`。*