77 lines
1.7 KiB
Plaintext
77 lines
1.7 KiB
Plaintext
@startuml git-branch-finish-logic
|
||
!theme plain
|
||
title 程序逻辑流图:aide flow finish 安全合并
|
||
|
||
start
|
||
|
||
:FlowTracker.next_part("finish", summary);
|
||
|
||
partition "分支合并准备" {
|
||
:从 FlowStatus 获取分支信息;
|
||
note right
|
||
- source_branch
|
||
- start_commit
|
||
- task_branch (当前分支)
|
||
end note
|
||
|
||
:记录 end_commit = rev_parse_head();
|
||
}
|
||
|
||
partition "检测源分支变更" {
|
||
:GitIntegration.has_commits_since(start_commit, source_branch);
|
||
|
||
if (源分支有新提交?) then (是)
|
||
partition "创建临时分支处理" {
|
||
:从 start_commit 检出临时分支;
|
||
:temp_branch = task_branch + "-merge";
|
||
:git checkout -b temp_branch start_commit;
|
||
|
||
:在临时分支执行 squash 合并;
|
||
:git merge --squash task_branch;
|
||
:git commit -m "任务压缩提交";
|
||
|
||
:BranchManager.record_branch_finish();
|
||
note right
|
||
status: "merged-to-temp"
|
||
temp_branch: temp_branch
|
||
end note
|
||
|
||
:输出警告;
|
||
note right
|
||
"⚠ 源分支有新提交"
|
||
"已在临时分支完成合并"
|
||
"请手动处理后续操作"
|
||
end note
|
||
}
|
||
else (否)
|
||
partition "正常合并流程" {
|
||
:切回源分支;
|
||
:git checkout source_branch;
|
||
|
||
:软重置到起始提交;
|
||
:git reset --soft start_commit;
|
||
|
||
:创建压缩提交;
|
||
:git add .;
|
||
:git commit -m "[aide] 任务: {summary}";
|
||
|
||
:BranchManager.record_branch_finish();
|
||
note right
|
||
status: "finished"
|
||
end_commit: 新提交哈希
|
||
end note
|
||
}
|
||
endif
|
||
}
|
||
|
||
partition "更新分支概况" {
|
||
:BranchManager.save_branches();
|
||
note right: 同时生成 JSON 和 MD
|
||
}
|
||
|
||
:继续原有 finish 逻辑;
|
||
|
||
stop
|
||
|
||
@enduml
|