Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evmar/gat
git clone in haskell
https://github.com/evmar/gat
Last synced: 28 days ago
JSON representation
git clone in haskell
- Host: GitHub
- URL: https://github.com/evmar/gat
- Owner: evmar
- License: other
- Created: 2008-10-19T23:58:47.000Z (about 16 years ago)
- Default Branch: master
- Last Pushed: 2008-11-04T00:12:54.000Z (about 16 years ago)
- Last Synced: 2024-04-14T22:17:12.427Z (8 months ago)
- Language: Haskell
- Homepage: http://neugierig.org/software/git/?url=gat/
- Size: 187 KB
- Stars: 9
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: COPYING
Awesome Lists containing this project
README
Why?
- To learn how Git works.
- For fun.Goals/principles:
- a Gat tree should always be usable by Git.
- be comparable, speed-wise, to Git.
- remove, unify, and simplify the UI; it's ok to be less "powerful" than Git.
- more options are not always better.
- it's ok to break backwards UI compatibility for greater consistency. it's ok
to remove features.
- liberally steal from other, better UIs (in particular darcs).Ideas:
- represent the whole index/tree distinction by having a "stage" command,
which stages files for commit. then avoid it as much as possible.
- make "commit" like "commit -a", while "commit --staged" (or in response to a
prompt if "commit" with stated content) like "commit".
- similarly, "diff" is always "diff HEAD", while "diff --staged" like
"diff --cached".
- eliminate the many modes of reset. flushing the index is a stage subcommand;
resetting the tree is "revert", and fiddling with the branch pointers (reset
--soft) is a separate command.
- figure out a better name / mode of operation for "rebase". provide a more
darcs-like interactive ui.
- in general, have the -i flag (for commit, stage, rebase) be interactive like
darcs.