Setup Script Should Support Git Worktrees
a day ago
- 一个支持工作树感知的设置脚本(bin/setup)能够诊断缺失的工具,共享一个Docker堆栈,并隔离端口、数据库和状态,以支持安全的并行开发。
- 同一个 bin/setup 命令必须能在每个 Git 工作树中运行,将检出转化为一个就绪的开发环境。
- Git 工作树隔离代码,但不隔离运行时状态;设置脚本必须处理端口、数据库和资源名称的冲突。
- 设置脚本在多个工作树之间共享服务(如数据库服务器),但通过派生标识和加锁的端口分配来隔离每个工作树的资源名称。
- 设置脚本负责引导工具链、运行诊断检查、确保共享服务可用、分配标识和端口、生成配置文件、创建或迁移数据库,并验证依赖项。
- 诊断检查应尽早失败,检查所有需求,并打印所有失败项及修复步骤(例如,缺少Docker,使用mise install)。
- 共享堆栈的限制:重启共享数据库会中断所有工作树;版本不兼容时可能需要专用堆栈。
- 清理脚本(bin/teardown)必须释放端口,仅删除该工作树的数据库,并清除生成的状态——绝不影响共享卷或其他检出。
- 验收测试:创建一个干净的工作树,同时运行两次设置脚本,启动两个开发服务器,运行测试,然后在不影响另一个的情况下清理其中一个。