commit f2e1ddb3b2513bc1f99687079cb609a133feac00 from: Omar Polo date: Tue Dec 08 22:35:49 2020 UTC document vc-got-stage-mode 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`: + +| C-c g A | Applies (i.e. stage in got) the marked changes | +| C-c g b | Go to beginning of change | +| C-c g e | Go to end of change | +| C-c g n | Go to next change | +| C-c g p | Go to previous change | +| C-c g t | 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.