Abstraction for git repositories.
I started this project mainly to keep practicing Go. I was working on a text editor and with go-git on two different projects so I decided to combine the two.
Nova can clone git repositories in-memory and supports a bunch of plumbing and porcelain-ish git commands. I'm planning to slowly bring more and more feature on it.
# Either
$ go run main.go
# or
$ nova
Nova currently supports several commands:
- nova <FILE_NAME> - File I/O
- go to <BRANCH_NAME> - Creates branch and/or Checkout
- screenshot - Add and Commit (equivalent to git commit -am ...)
- ls - Lists all the files (does not expand subdirectories yet)
- read <FILE_NAME> - Displays the content of a file
- status - Displays the status of the worktree (equivalent to git status)
- log - Displays the commits (equivalent to git log)
- branches - Displays the list of branches
- stop - Exits Nova
more will be added.
Nova is able to edit files in memory with its built-in editor and save them on either on its store or on disk. It won't ever do I/O operations on the real directory (unless explicitly told to do so).
Commands:
- CTRL+X - Exit
- CTRL+R - Save on disk
- CTRL+S - Save as memory file