DVC Local Command Specification
一、目標说明
本文件詳細定義 dvc local 命令集合之行為與使用規格,目的是提供一套標準方式讓工程師於 DVC Local 區域進行設計数据的本地版控與管理。此機制主要支援非正式的阶段性儲存,供開發測試、整合等用途,不與 SVN 倉儲衝突,亦非正式簽核版本。
二、適用場景與角色
使用者角色:
- Engineer:設計数据阶段性產出、整理、版本管理。
- CAD/System:流程維護與整合。
- PM:透過 dvc commands(非本規格範疇)負責提交 milestone 版本至 SVN 倉儲。
使用場景:
| 流程區段 | 位置 | 操作者 | 功能 |
|---|
| A段 | /projects/<proj_code>/DVC/ | 工程師 | 使用 dvc local 管理本地数据 |
| B段 | DVC SVN 倉儲 | PM | 使用 dvc 提交正式版本 |
三、命令總覽與規格
3.1 dvc local create
| 項目 | 说明 |
|---|
| 功能 | 建立四層数据目录:<PHASE>/<BLOCK>/<STAGE>/<VERSION> |
| 格式 | dvc local create <phase>/<block>/<stage>/<version> |
| 执行条件 | 須已建立 DVC 基底目录 |
| 示例 | dvc local create relA/designA/000-DATA/20250618_init |
3.2 dvc local put
| 項目 | 说明 |
|---|
| 功能 | 將文件或目录複製、命名、建立符號連結,放置於指定的本地版本数据夾中 |
| 格式 | dvc local put <ver_path> <src[:dst]> [--link] |
| 功能類型 | 簡單複製、重命名、建立連結、存入子目录、多層目录、整個目录 |
| 示例 | dvc local put relA/designA/000-DATA/20250618_init test.txt |
| 示例 | dvc local put relA/designA/000-DATA/20250618_init test.txt:newname.txt |
| 示例 | dvc local put relA/designA/000-DATA/20250618_init test.txt:lnk --link |
3.3 dvc local delete
| 項目 | 说明 |
|---|
| 功能 | 刪除文件、子目录、版本、阶段、區塊、阶段組 |
| 格式 | dvc local delete <target_path> [--force] |
| force说明 | --force 可省略交互式確認,但對以下類型永遠要求確認: |
| 強制確認對象 | – Entire version folders (e.g., …/20250505_init) |
| – Complete stages (e.g., …/000-DATA) |
| – Blocks (e.g., …/test_design) |
| – Phases (e.g., …/test_rel) |
| 示例 | dvc local delete relA/designA/000-DATA/20250618_init/test.v --force |
| 示例 | dvc local delete relA/designA/000-DATA/20250618_init |
四、目录與命名規範
DVC Local 結構遵循四層命名方式,每層定義如下:
Phase (阶段)
- 格式:
P<數字>-<描述>,如:P1-trial、P2-stable
- 由 PM 定義,表示项目流程節點
Block (模块)
- 小寫英文字母,如 top、cpu、ddr
- 對應功能模块
Stage (流程步骤)
- 格式:三位數字-描述,如 000-DATA、200-LOGIC、300-DFT
- 對應流程工具與目的
Version (版本)
- 建议格式:YYYYMMDD_<tag>,如 20240615_init、20240701_final
- 由设计工程师定义
五、異常處理
| 錯誤情境 | 處理方式 |
|---|
| 未建立完整路徑 | 自动创建中間層目录 |
| 無權限刪除 | 顯示错误信息;僅允許創建者或相同项目账号操作 |
使用 --force 無效 | 針對特定高層(版本、阶段、區塊、阶段組)需交互确认 |
六、附錄
- 系统数据根目录為:/projects/<proj_code>/DVC/<phase>/<block>/<stage>/<version>
- 全部命令可納入自动化脚本中(配合 ticket 機制與流程工具)。