Centralized Version Control for Multi-Structured Files
The Reference Sheet is used to anchor the authoritative naming of files.
### 2. Serialized Editing `JustEnoughVCS` adopts a **serialized editing model**, eliminating merge conflicts at their root. Our permission principle is: **Visible means readable, held means writable**. When you hold a file, you have exclusive editing rights. Other members can see the current version but cannot edit simultaneously. Once you finish editing, the new version you submit is immediately available for everyone to fetch. Serialized editing ensures there is only one "source of truth." If a member edits without holding the permission or based on an outdated version, the system will clearly mark these modifications as **invalid edits**, meaning they will not be accidentally committed or overwrite the valid version. Don't worry, the frontends of `JustEnoughVCS` ([Command Line, Desktop](#Installation)) provide clear and visible views to confirm file status. ### 3. Architecture `JustEnoughVCS` is a centralized version control system, divided into a **server** and **clients**. The local workspace is merely a file copy used for recording modifications and updates. **Upstream Vault** The Upstream Vault records the following information: 1. Upstream Vault configuration information. 2. Member registration information and public keys. 3. Struct Sheets 1. Current holder. 2. Mapping relationships. 4. File metadata 1. Current holder. 2. Version sequence. 5. File historical version storage **(full, uncompressed)**. **Local Workspace** The Local Workspace records the following information: 1. Workspace configuration information. 2. Local cache of upstream vault metadata. 3. Local cache of struct sheets: used to compare local and upstream differences. 4. Local struct sheet: used to analyze workspace changes. 5. Physical files.Relationship between Vault and Workspace.
## Installation This repository is the core library of `JustEnoughVCS` and does not provide any interactive functionality. Please go to the corresponding repositories to download or build the `JustEnoughVCS` frontends: - [Command Line Frontend](https://github.com/JustEnoughVCS/CommandLine) - [Desktop Frontend](https://github.com/JustEnoughVCS/Desktop) **In Development** ## Roadmap - [ ] Core Features - [x] Sheet Management - [x] Tracking - [x] Alignment - [x] Sharing - [x] Referencing - [x] Administrator Tools - [ ] Version Jumping - [ ] Version Freezing - [ ] Borrowing Tool - [ ] Command Line - [ ] Full Core Feature Wrapping - [x] Help - [x] Completion - [ ] Embedded Documentation - [ ] JSON Output - [ ] Desktop - [ ] Full Core Feature Wrapping - [x] Command Line Wrapper - [ ] Themes - [ ] 2026 Plan - [ ] Desktop Support **Current Phase** - [ ] Standardize Core & CLI Code - [ ] Improve Async & Concurrency Support - [ ] Storage Optimization - [ ] Distributed Content Storage, Centralized Permission Management ## Support Encountered any issues or have suggestions while using JustEnoughVCS? - Please submit them to the https://github.com/JustEnoughVCS/VersionControl/issues page. We will address your feedback promptly. ## License This project is licensed under the **MIT** or **Apache 2.0** License. For the full license terms, please see the *./LICENSE-MIT* and *./LICENSE-APACHE-2.0* files in the project root directory. --- Finally, thank you for your interest in `JustEnoughVCS`! ## A Few Words > Why name it `JustEnoughVCS`? > > If you think it sounds like a name a Minecraft Mod would have, you guessed right! > > The inspiration actually came from `JustEnoughItems` 😄