0.8
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# Code4History v0.7:跨版本迁移工具
|
||||
|
||||
从 v0.1–v0.6 迁移至 v0.7 时,不再需要手工判断哪些文件属于框架、哪些属于研究资料。
|
||||
|
||||
## 一键升级(建议:创建新目录)
|
||||
|
||||
先下载最新的完整模板 ZIP(例如 `code4history-v0.7.zip`),**无需先删除或覆盖旧目录**。
|
||||
|
||||
在 Windows PowerShell 中(Python 3.10+):
|
||||
|
||||
```powershell
|
||||
python .\code4history\tools\migrate.py upgrade --source "D:\History\old-project" --template "D:\Downloads\code4history-v0.7.zip" --target "D:\History\new-project"
|
||||
```
|
||||
|
||||
此处 `migrate.py` 是从新版模板提取的脚本;旧版 v0.1–v0.6 没有这个工具。`--target` 必须是**尚不存在的**新目录,不能与旧目录相同或位于旧目录内。成功后在新项目运行:
|
||||
|
||||
```powershell
|
||||
python tools/doctor.py
|
||||
python tools/validate.py
|
||||
python -m unittest discover -s tests -v
|
||||
```
|
||||
|
||||
原项目、原 PDF、原论文与原 Git 历史均保持原状。迁移并不会自动复制 `.git` 历史;如需延续原仓库 Git 分支与提交,需另行迁移 Git 仓库或选取新目录后重新绑定远端。
|
||||
|
||||
## 分两步导出、恢复(可控制和预览)
|
||||
|
||||
从旧项目导出:
|
||||
|
||||
```bash
|
||||
python /path/to/new/tools/migrate.py export --source /path/to/old-project --out /path/to/private-backup.c4h.zip
|
||||
```
|
||||
|
||||
把新模板 ZIP 解压为一个**独立的新项目目录**,然后预览与恢复:
|
||||
|
||||
```bash
|
||||
python /path/to/new/tools/migrate.py restore --bundle /path/to/private-backup.c4h.zip --target /path/to/new-project --dry-run
|
||||
python /path/to/new/tools/migrate.py restore --bundle /path/to/private-backup.c4h.zip --target /path/to/new-project
|
||||
```
|
||||
|
||||
可以在 `export` 加 `--dry-run` 先查看分类统计。两个命令都有 `--help`。
|
||||
|
||||
## 会保留什么?
|
||||
|
||||
- 已填写的 `topic.md`、`USERINFO.md`、`STATE.md`;研究决策、检查点、日志、参考文献数据库。
|
||||
- 史料原始文件(包括未被 Git 跟踪的 PDF)、转录、史料卡、证据卡、问题卡、假说卡、概念和背景笔记、学术史、综合与论点。
|
||||
- 论文正文、章节排列、大纲、审稿记录和研究产出;框架目录之外的普通自建研究文件。
|
||||
- 已改写的**框架规则文件、Skills、脚本、模板、目录 readme** 会**另外归档**,不会直接覆盖新版本的规则。可在恢复后自行择取需要保留的自定义规则。
|
||||
|
||||
精确匹配 v0.1–v0.7 官方模板内容的空白文件不会重复导出。旧框架源代码、旧 Skill 不会覆盖新版。
|
||||
|
||||
## 冲突处理与安全性
|
||||
|
||||
1. 如果目标位置不存在:恢复至原路径。
|
||||
2. 如果目标位置仍是官方空白研究模板:填入旧研究内容(例如 `topic.md` 和 `STATE.md`)。
|
||||
3. 如果目标位置已有不同的用户内容:**不覆盖**,将迁入内容放在 `.code4history-migration/conflicts/<时间>/incoming/`。
|
||||
4. 如果是修改过的旧框架规则或附加的 Skill/脚本:放在 `.code4history-migration/conflicts/<时间>/framework_customizations/`,需人工审阅后再使用。
|
||||
5. 所有导入文件在写入之前经过 SHA-256 完整性校验;禁止路径穿越和软链接提权;写入用临时文件后原子替换。
|
||||
|
||||
恢复记录保存于 `.code4history-migration/latest-report.json`。如果出现冲突,**应当解决这些冲突之后再进行下次升级**。这不是自动语义合并工具,不会替你合并同一研究卡的两份不同修改。
|
||||
|
||||
## 不自动导出的内容
|
||||
|
||||
- Git 历史 (`.git/`)、Python 虚拟环境、编辑器缓存和临时编译文件。
|
||||
- `.env`、密钥、证书与常见凭证文件,以免误打包机密;如它们确实属于你的研究资料,请另行安全备份。
|
||||
- 软链接(不会追踪链接目标)。
|
||||
|
||||
**迁移包可能包含未公开手稿、版权受限的 PDF 和个人研究笔记。应当在本地保管,不要上传到公开仓库。**
|
||||
Reference in New Issue
Block a user