Commit Diff


commit - ba123905bee33e736ce9f4e97bf5f3e714a7d39f
commit + f2e1ddb3b2513bc1f99687079cb609a133feac00
blob - d872ab2cc1eb30f16053257239bb042dee72517a
blob + 0afc79dd95658576d76ef4b05add6aa1eb3d2c9f
--- README.md
+++ README.md
@@ -32,3 +32,28 @@ With `use-package` something like this should be enoug
   (add-to-list 'vc-handled-backends 'Got)
   (add-to-list 'vc-directory-exclusion-list ".got"))
 ```
+
+### vc-got-stage-mode
+
+`vc-got-stage-mode` is a minor mode to stage individual changes
+(currently you can't commit the staged changes).
+
+The Emacs VC system usually operates at a *fileset* level: i.e. it can
+commit/rollback/etc sets of file.  Yet, sometimes you may want to
+commit only individual changes (eventually from multiple files), and
+VC doesn't support this.  This is the motivation behind
+`vc-got-stage-mode`.
+
+The following keys are enabled by `vc-got-stage-mode`:
+
+| <kbd>C-c g A</kbd> | Applies (i.e. stage in got) the marked changes |
+| <kbd>C-c g b</kbd> | Go to beginning of change |
+| <kbd>C-c g e</kbd> | Go to end of change |
+| <kbd>C-c g n</kbd> | Go to next change |
+| <kbd>C-c g p</kbd> | Go to previous change |
+| <kbd>C-c g t</kbd> | Toggle mark |
+
+A change is a set of sequential line added/removed by the diff, it is
+a smaller unit than a *hunk*.
+
+The staged changes are indicated by an arrow in the left fringe.