Files
Auto_Bangumi/docs/ja/dev/plugins/points/conflict-policy.md
Estrella Pan 3258fcca4b docs(4.0-P7): 插件开发文档拆分为总览加每个扩展点一页,补齐中英日三语
- docs/dev/plugins.md 改为总览与导航,旧内容拆入 docs/dev/plugins/
- 新增核心概念、配置表单、事件、前端挂载点、命令行、签名与分发、内置插件、示例页
- 每个扩展点一页,侧边栏由页面表生成
- 改正旧文档中下载器配置、hardlink path_map 与补链按钮的过时描述
2026-10-08 14:51:00 +02:00

19 lines
1.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.
# バージョン競合ポリシー (conflict_policy)
新しいトレントの正規のファイル名を、別のトレントが既に使っている場合に、古いものを残すか置き換えるかを決めます。典型的な場面は、同じ話の v2 リリースです。`@provider(points.CONFLICT_POLICY, id=...)` は `ConflictPolicy` を返します。
```python
from ab_sdk.rename import ConflictDecision, ConflictRequest
class ReplaceUpgradesOnly:
def decide(self, request: ConflictRequest) -> ConflictDecision:
if request.strict_upgrade:
return ConflictDecision("replace")
return ConflictDecision("hold", "同じリリースの上位バージョンではありません")
```
- `ConflictRequest`:`target_path`、`incoming`(新しいトレント)、`owners`(その名前を使っているトレント)、`strict_upgrade`(唯一の使用者が新しいトレントと同じリリースで、新しいトレントのバージョン番号が上位)。
- `hold` は古いファイルを残し、新しいトレントは待機します。`reason` はユーザーに表示されます。`replace` は**古いタスクとそのファイルを削除します**。
- ホストが `replace` を実行するのは、「使用者が 1 つだけ、両方が単一ファイルのトレント、両方の解析結果が完全」の場合だけです。それ以外はすべて `hold` として扱います。
- ホストは `hold` と `replace` を持っています。これが設定「バージョン競合ポリシー」の 2 つの選択肢です。`plugins.slots.conflict_policy` でポリシーを選びます(既定は `hold`)。選ばれた id が登録されていない場合は `hold` に戻ります。