Tree


.gitignorecommits | blame
LICENCEcommits | blame
Makefilecommits | blame
README.mdcommits | blame
images/
vc-got-stage.elcommits | blame
vc-got.el*commits | blame

README.md

# vc-got

This is an **experimental** Emacs VC back-end for the [Game of
Tree](http://gameoftrees.org/) version control system.

------

To start using it, you need to add `Got` to `vc-handled-backends` and
make sure that `vc-got` is within your `load-path`.  You shouldn't
require the library.

```emacs-lisp
(add-to-list 'vc-handled-backends 'Got)
```

It's highly recommended to add `".got"` to the list of
`vc-directory-exclusion-list`.

```emacs-lisp
(add-to-list 'vc-directory-exclusion-list ".got")
```

With `use-package` something like this should be enough:

```emacs-lisp
(use-package vc-got
  :load-path "/path/to/vc-got/"
  :defer t
  :init
  (add-to-list 'vc-handled-backends 'Got)
  (add-to-list 'vc-directory-exclusion-list ".got"))
```


## Stage hunks

Unlike other VC backends, `vc-got` is able to stage and commit
individual changes.  It's still WIP, but usable.

 - `vc-got-stage-files` guides the user through the stage process,
   like `got stage -p` (or `git add -p`).  It operates on the current
   file or on the marked ones in `*vc-dir*`
 - `vc-got-stage-unstage` is similar, except that it un-stages the
   changes.
 - `vc-got-stage-diff` show the staged diff
 - `vc-got-stage-commit` commits the staged changes

Here's an example of the `*vc-dir*` buffer when some edits were staged
on a file

![vc-dir buffer with a staged file](images/vc-dir.png "vc-dir buffer with a staged file")

and an example of the interactive stage operation with
`vc-got-stage-files`

![interactive stage operation](images/vc-got-stage-files.png
"interactive stage operation")