Blob


1 # vc-got
3 This is an Emacs VC back-end for the [Game of
4 Tree](http://gameoftrees.org/) version control system.
6 ------
8 To start using it, you need to add `Got` to `vc-handled-backends` and
9 make sure that `vc-got` is within your `load-path`. You shouldn't
10 require the library.
12 ```emacs-lisp
13 (add-to-list 'vc-handled-backends 'Got)
14 ```
16 It's highly recommended to add `".got"` to the list of
17 `vc-directory-exclusion-list`.
19 ```emacs-lisp
20 (add-to-list 'vc-directory-exclusion-list ".got")
21 ```
23 With `use-package` something like this should be enough:
25 ```emacs-lisp
26 (use-package vc-got
27 :load-path "/path/to/vc-got/"
28 :defer t
29 :init
30 (add-to-list 'vc-handled-backends 'Got)
31 (add-to-list 'vc-directory-exclusion-list ".got"))
32 ```
34 ## Drawbacks
36 While I've been using this backend on a daily basis for the last
37 months, there are some rough edges. Fetching updates in particular is
38 one action that *at the moment* is better to do by hand. Pushing,
39 committing, blaming etc on the other hand are fully functional.
42 ## Stage hunks
44 Unlike other VC backends, `vc-got` is able to stage and commit
45 individual changes. It's still WIP, but usable.
47 - `vc-got-stage-files` guides the user through the stage process,
48 like `got stage -p` (or `git add -p`). It operates on the current
49 file or on the marked ones in `*vc-dir*`
50 - `vc-got-stage-unstage` is similar, except that it un-stages the
51 changes.
52 - `vc-got-stage-diff` show the staged diff
53 - `vc-got-stage-commit` commits the staged changes
55 Here's an example of the `*vc-dir*` buffer when some edits were staged
56 on a file
58 ![vc-dir buffer with a staged file](images/vc-dir.png "vc-dir buffer with a staged file")
60 and an example of the interactive stage operation with
61 `vc-got-stage-files`
63 ![interactive stage operation](images/vc-got-stage-files.png
64 "interactive stage operation")
67 ## Contributing
69 The long-term plan is to get this into Emacs. This means that to
70 avoid possible problem, a GNU copyright assignment is required. It's
71 really easy to get one (just send an email), and having one will allow
72 you to make further contribution to Emacs itself or to various
73 other packages.