JellyFish provides an easy to use version control system, similar to git.
JellyFish uses Bun as its runtime. Install bun from bun.sh.
After installing Bun, you can easily install JellyFish.
bun i -g jellyfish-scm
jelly init
/jelly i
)jelly edit --checkout
/jelly e --checkout
)jelly stage
/jelly s
)jelly commit -m <message>
/jelly cm -m <message>
)jelly clone <source> [destination>
/jelly cl <source> [destination>
)jelly upsteam
/jelly pull
/jelly up
/jelly pl
)jelly push
/jelly ps
)jelly web
) (Default port: 3675)...see more commands and options with jelly -h
jelly init # Create repository
touch README.md # Create README.md file
jelly edit --origin "https://example-remote-origin.com/example/example" # Set repo origin
jelly stage # Stage changes
jelly commit -m "Initial" # Create commit
jelly push # Push commit
All actions done through the JellyFish CLI can be done through shorter interfaces.
jelly i # Create repository
touch README.md # Create README.md file
jelly e -o "https://example-remote-origin.com/example/example" # Set repo origin
jelly s # Stage changes
jelly cm -m "Initial" # Create commit
jelly ps # Push commit
jellyignore.toml
ExampleThe jellyignore.toml
file is very similar to the .gitignore
file, but it matches files by regular expressions instead.
# This file ignores everything with the name "node_modules" (case sensitive)
[regex]
ignorelist = [
"(node_modules)"
]
This file will be created when you run jelly init
, some special files and folders will be automatically added to the file on creation.
This example covers pushing commits to a local web server run from jelly web
.
# start the web server
jelly web
After starting the server, you must open it in the browser (localhost:3675
) and get your access token. Add this token to your localdev.toml
file with jelly edit --token <token>
jelly edit --token <token>
You can then push your changes to the server!
jelly push
.jelly/map.toml
objects
: Files (and their hashes) that exist in the current stagename
: File name {string}name_hash
: Hash of file name {string}parent
: Parent directory name hash {string}branch
: Name of branch this exists in {string}path
: Relative path to file from repository root {string}branches
: All branches in the repository[name]
: Hash of branch name {string}.jelly/jellyrepo.toml
repo
:name
: Repository name {string}mapBind
: Location of map file relative to jellyrepo.toml {string}masterBranch
:name
: Master branch name {string}hash
: Master branch name hash {string}.jelly/localdev.toml
branch
: Name of the current editing branch {string}remotes
:origin
: URL of origin remote {string}staged_changes
: List of changes {Array<[string, OBJECT_CHANGE]>}export enum OBJECT_CHANGE {
CONTENT = "0", // content changes
CREATED = "1", // created file
DELETED = "-1", // deleted file
}
branches/[branch_name]/commits.toml
branch
: Hash of branch these commits belong to {string}commits
:hash
: Commit hash {string}changes
: List of changes, same as localdev.staged_changes {Array<[string, OBJECT_CHANGE]>}message
: Commit message {string}Generated using TypeDoc