git-gud
git-gud copied to clipboard
Add Working Directory and Staging Area support to YAML files
Currently, YAML files can change the contents of commits, but we don't use them to change the contents of the WD or SA. We need a syntax for this and an implementation of this.
One implementation:
'Working Directory':
base: 'HEAD'
'Staging Area':
base: 'Working Directory'
This one would set the contents of the working directory to be the same as commit 1
'Working Directory':
base: '1'
add-files:
# same as other directives
'Staging Area':
files:
Base can be HEAD
or any of the top level commit-ishs in the YAML
Staging Area defaults to Working Directory and Working Directory defaults to HEAD.
If base
is specified, then we can use add-files
and remove-files
just like we can in commits, otherwise files
should be specified.
With this, it might follow that merges and other commits can havie this same framework applied. For merges, you could base the commit off of either parent, and add-files
/remove-files
would could be used to set the files for the commit
To start, implementing files
for Working Directory
and Staging Area
would be the easiest.