Version control, written in Haskell with all that monadic goodness! (Currently totally in progress and not finished in the least)
- does not distinguish between tracked and untracked files
horse stage
replacesgit add
andgit rm
- the staging area does not store changes; rather, it merely tracks filenames to commit
horse squash
replacesgit rebase -i
- addition of
horse unstage
horse init
doesn't overwrite existing repositories likegit init
does- can't initialize a repo in a subdirectory of another repo
checkout
completely overwrites working directory (product of not distinguishing between tracked and untracked files)untrack
andretrack
replace.gitignore
. Their behavior is also slightly different w.r.t. previously tracked files in Git, since horse-control doesn't distinguish between untracked and unstaged files.
- init
- config
- status
- stage
- unstage
- commit
- commit --amend
- checkout
- show
- log
- squash
- untrack
- untrack --list
- retrack
- diff
- branch create
- branch delete
- branch list
- cherry-pick
- Git-like parent/ancestor syntax (
^
,~
)
> cabal install horse-control
> sudo apt-get update -qq
> sudo apt-get install libsnappy-dev
> wget https://leveldb.googlecode.com/files/leveldb-1.9.0.tar.gz
> tar -xzf leveldb-1.9.0.tar.gz
> cd leveldb-1.9.0
> make
> sudo mv libleveldb.* /usr/local/lib
> cd include
> sudo cp -R leveldb /usr/local/include
> sudo ldconfig
> cd ../..
> brew install leveldb