summaryrefslogtreecommitdiff
path: root/README_zh_CN.md
diff options
context:
space:
mode:
Diffstat (limited to 'README_zh_CN.md')
-rw-r--r--README_zh_CN.md82
1 files changed, 53 insertions, 29 deletions
diff --git a/README_zh_CN.md b/README_zh_CN.md
index d391762..9e750e2 100644
--- a/README_zh_CN.md
+++ b/README_zh_CN.md
@@ -7,7 +7,7 @@
<h1 align="center">JustEnoughVCS</h1>
<p align="center">
- 轻量、跨职能、二进制友好的集中式版本控制系统
+ 轻量且二进制友好的集中式版本控制系统
</p>
<p align="center">
@@ -17,52 +17,68 @@
</p>
> [!WARNING]
-> JustEnoughVCS 目前正在积极开发中,功能尚不完整
+> JustEnoughVCS 核心功能仍在开发,还不是可使用的状态
>
-> 若您对我们的项目感兴趣,推荐直接联系我们。
+> 若您对我们的项目感兴趣,推荐直接联系我们。[联系方式和支持](#支持)
-​ `JustEnoughVCS` 是一个为**跨职能团队**设计的轻量级版本控制系统。它允许每个成员以**最适合其职能角色**的文件结构查看和组织文件,使团队能够专注于内容创作本身。它主要服务于大量二进制资产的协作场景,如**游戏开发**和**多媒体设计**。
-- [虚拟文件系统](#虚拟文件系统)
-- [表系统](#表系统)
-## 我的设计哲学 - 也是我的拙见 😃
+## 简介
-​ `JustEnoughVCS` 遵循 "**Just Enough**" 的理念,旨在通过架构设计来实现协作安全。它以**虚拟文件系统**和**表隔离**为核心,为每个创作者提供专注、无干扰的工作空间,让协作变得自然且简单。
+一个文件同时只允许一人修改,这是二进制协作中最不容易出错的范式。JustEnoughVCS 将这种范式通过架构设计简化到极致。你可以随时掌握所关注文件的编辑状态、版本历史等信息。
-## 虚拟文件系统
+### 1. 个人视图
-​ 虚拟文件系统是 `JustEnoughVCS` 的基础。每个文件由一个全局唯一的 `VirtualFileId` 标识,与其物理路径解耦。它全面记录:
+每位成员拥有自己的表[^sheet],通过表来映射资产内容与目录结构。让每位成员看到的文件结构各不相同,成员只需关注自己工作区中的资产位置,无需担心资产被他人移动,也不会因自己的移动操作影响他人。
-- **所有历史版本**
-- **每次修改的描述信息**
-- **版本号序列**
-- **当前最新版本**
-- **当前文件持有者(拥有编辑权限的成员)**
+### 2. 资产的 “读” 和 “写”
-### 特性
+JustEnoughVCS 的权限模型非常直观:如果你看得见该资产,你就可以读取它;如果你持有该资产,则可以修改它。
-- **可追溯的历史**:轻松查看任何版本的历史并支持回滚。
-- **无冲突协作**:严格遵守 **"先获取,后编辑"** 原则。文件对所有人**可见**但仅对持有者**可写**,从而防止冲突。
-- **获取前验证**:在获取文件之前,本地文件的哈希值和版本号会被严格验证,以确保编辑从最新版本开始。
+[^sheet]: 表(Sheet),成员个人的文件结构,一位成员可以持有多个表,但一个本地工作区[^local_workspace]仅允许同时编辑一个。
+[^local_workspace]: 本地工作区(Local Workspace),资产的本地拷贝目录,用以在成员的本地编辑文件。
-## 表系统
+### 3. 可读性传播
-​ 表系统充当连接**虚拟文件**与成员**本地工作区**的桥梁。它建立从 `VirtualFileId` 到本地 `SheetPath` 的映射,为每个职能角色(例如,程序员、艺术家、设计师)或个体成员创建定制化的文件视图。
+JustEnoughVCS 中,若您要将资产 **共享给所有人**,需要将该资产的映射导出[^export] 至参照表[^ref_sheet],由库[^vault]管理员确认后将其公开展示给所有成员。之后所有成员都可以从参照表[^ref_sheet]中导入[^import]该资产的映射,以获取最新的更新。
-表分为两种类型,主要区别在于权限管理:
+若您只是需要共享给 **指定的表**,和上述逻辑一致,将资产可见性导出至该表,由该表的持有者确认后,则可以接收到您的文件更新。
-- **参照表 \(Reference Sheet\)**:存储团队间通用的文件,作为共享资源库。所有成员都可以从中获取文件到自己的表中。成员可以将自己的文件提交到参照表,经管理员审核同意后,即可加入参照表中供其他成员导入到自己的表。
-- **成员表 \(Member Sheet\)**:成员自身的表,用来管理个人的工程、项目和素材。成员拥有对**表结构**的完全管理权(如添加、移动映射关系等),但对文件本身的**编辑权**仍由该文件的持有者独占,遵循"先获取,后编辑"的原则。通常,新追踪的文件会自动将其所有权赋予追踪者。
+[^export]: 导出(Export)是 JVCS 中资产映射的传递方式。
+[^import]: 导入(Import)是 JVCS 中获得资产映射的方式。
+[^ref_sheet]: 参照表(Reference Sheet)是由库[^vault]管理员所整理的表,团队中的 ”资产索引“
+[^vault]: 库(Vault)是 JVCS 中的资产仓库,所有的资产存放于此。
-### 表间传递文件
+### 4. 编辑权转移
-​ 通过表系统提供的 **Import/Export 机制**,成员可以将文件的**映射关系**从一个表传复制到另一个表。此机制传递的是文件的**映射关系**(即 `VirtualFileId` 与路径的绑定),而非文件实体本身。文件实体始终存储在虚拟文件系统中。此机制支持跨表协作,例如将完成的工作成果提交给团队共享,或将文件推荐给特定成员进行后续处理。
+一般来讲,资产的最初持有者是第一个追踪该资产的成员,该成员拥有绝对的资产编辑权。若该成员需要将编辑权转移给其他人,只需 ”放弃“ 编辑权,再由其他成员 ”持有“ ,此过程中会同步资产的最新进度,以确保持有该资产的成员正编辑的资产是最新的。
+
+
+
+> [!NOTE]
+>
+> 该协作范式解决的是二进制资产的结构和版本管理的问题,不适合作为程序开发的版本控制系统。
+>
+> 因为该领域有极为成熟且被认可的 Git。
+
+
+
+## 路线图
+
+### 核心库
+
+- [ ] 增量的文件更新和存储
+- [ ] 多参照表
+
+
+
+### 拓展工具
+
+- [ ] 命令行工具 -> [CommandLine](https://github.com/JustEnoughVCS/CommandLine )(目前 Private)
+- [ ] 声明式资产管理 -> [AssetsConfig](https://github.com/JustEnoughVCS/AssetsConfig) (目前 Private)
+- [ ] 文件合并器 -> [BinMerger](https://github.com/JustEnoughVCS/BinMerger) (目前 Private)
-- **Export(导出)**:成员可以将自己表中的文件直接导出至目标表(如参照表或其他成员的表)的待导入区。
-- **Import(导入)**:目标表的所有者会收到待导入文件的列表。所有者可以查看并选择性地将其导入(即添加映射)到自己的表中。在此过程中,文件的**编辑权保持不变**,仅仅是让文件在接收方的表中"可见"。
-这种机制确保了文件传递的**可控性**,接收方有权决定是否接受导入文件映射,从而维持了各自工作区的整洁与秩序。
## 支持
@@ -70,6 +86,14 @@
- 请将其提交到 https://github.com/JustEnoughVCS/VersionControl/issues 页面,我们将及时处理您的反馈。
+> [!NOTE]
+>
+> 当前项目仍在早期开发阶段,比起发起 Issues,我更建议您直接联系仓库维护者 [@Weicao-CatilGrass](https://github.com/Weicao-CatilGrass)
+>
+> 待基础功能完善后,再发起 Issues 会更加合适
+
+
+
## 许可证
本项目采用 **MIT 许可证**。