2.5 KiB
Venus
Venus is a work-in-progress VCS built to be fast and efficient. Tired of waiting ages for Git to "resolve deltas"(a process vital to the way git works)? Use Venus(when it's functional, of course)!
Glossary
mod: Equivalent to commits in other VCS'. object: A file storing differences from the previous mod.
.venus structure
.venus/objects: Object files(specified in OBJECTS.md) with the extension of .venus-object
. They are named after the SHA512 hash stored in the object truncated to 16 characters and then the hexadecimal unix timestamp in nanoseconds of the object's creation. For example, cf83e1357eefb8bd182e06194db125d7.venus-object
would be an object file with completely empty content created on Tuesday, March 18, 2025 at 10:26:52 PM GMT. This string of hexadecimal characters is also used to identify the mod.
.venus/branches: Branch files(specified in BRANCHES.md) with the extension of .venus-branch
. They are named after the branch name(i.e. main.venus-branch
), meaning that branch names have to be unique.
.venus/branches/LIST: A file listing all branches, each on it's own line
.venus/mods: Mods files(specified in MODS.md) with the extension of .venus-mod
. They are named with the SHA512 hash of them truncated to 16 characters and concatenated to the unix timestamp in hex of their creation date.
.venus/mods/NEW_MOD.venus-mod: A file similar to git's COMMIT_MSG
file. Staging file while the user is creating a new mod.
.venus/active/BRANCH: A file containing only the active branch name.
.venus/active/MOD: A file containing only the active mod file name without the extension.
.venus/MOD_ORDER: A file containing a list of all mods with their respective branches in chronological order with oldest first(in the format (branch name): (mod name)
). This excludes the file extension.
Files accessed by clients attempting to access remote HTTPS Venus repositories:
.venus/mods
.venus/objects
.venus/branches
.venus/default/BRANCH: A file containing only the default branch name.
.venus/default/MOD: A file containing only the default mod file name without the extension.
.venus/VERSION: A file containing the version of the files. This should be in the format (name and version of protocol used)_(name and version of program that created the files)
, i.e. venus-0.1_venus-0.1.0
.
Files stored by clients locally to store remote info:
.venus/mods/remote: A folder containing modules that don't have their corrosponding objects locally
.venus/REMOTES: A file containing a list of remotes in (name): (url)
pairs.