NOT IMPLEMENTED YET
git proj config [common-options]
This is a text menu driven tool for checking and "tuning up" your git-proj configurations. There are 4 configuration "levels" to consider: Product, User, Project, and Local. The standard git support configs at the User and Local levels (--global and --local) can be used with "git config" to get and set variables. Or you can edit the files directly. See the FILES section for the files listed by their levels.
The "git proj config" tool has two major sections: "Health Checks" and "Actions".
The "problem" health check will report serious problems that should be fixed. The other health checks are useful for finding areas that you might want to update. For example, your user level configs may have changed and you might notice some project level configs are different. You can then run an "action" to make them consistent.
The "actions" are used to copy config variables and files between the different "levels". Some actions will only copy things that are missing, while other actions can "force" changes.
ProductConfig /usr/share/doc/git-proj/config/gitconfig
UserConfig ~/.gitconfig (--global)
ProjectConfig PROJ/.gitproj
LocalConfig PROJ/.git/config (--local)
ProductIgnore /usr/share/doc/git-proj/config/gitignore
UserIgnore ~/.gitignore
ProjectIgnore PROJ/.gitignore
ProductPreCommit /usr/share/doc/git-proj/hooks/pre-commit
UserPreCommit ~/.pre-commit
ProjectPreCommit PROJ/.pre-commit
LocalPreCommit PROJ/.git/hooks/pre-commit
In the lower level menus, #1 will change to "Back" and "Quit" will move to #3.
This will be available in all menus.
These are done even if not in a git-proj managed workspace.
The Validate Checks, check ProductConfig and --global.
Validate "facility" name [error]
Validate all bool vars are only true/false [error]
Validate all int vars only have numbers [error]
Compare --global with ProductConfig [diff]
Compare UserIgnore with ProductIgnore [diff]
Compare UserPreCommit with ProductPreCommit [diff]
if git-flow=true
is git-flow installed? [warning]
are git-flow section vars defined in --global? [warning]
These are only done if you are in a git-proj managed workspace.
The Validate Checks, check ProjectConfig and --local.
If defined, validate "facility" name [error]
Validate all gitproj bool vars are only true/false [error]
Validate all gitproj int vars only have numbers [error]
Compare ProjectConfig with --global (only list the diffs from all gitproj sections and the diffs that are in .gitproj and also in --global [diff]
Compare ProjectConfig with --local (only list the diffs from all gitproj sections and the diffs that are in ProjectConfig and also in --global [diff]
Compare ProjectIgnore with UserIgnore [diff]
Compare ProjectPreCommit with UserPreCommit [diff]
Compare LocalPreCommit with ProjectPreCommit [diff]
Note the disabled pre-commit checks [info]
gitproj.config.proj-name != the git top dir name [warning]
gitproj.config.local-status - is TBD [error]
remote.origin.url - is not defined [warning]
"git proj init" needs to be run.
gitproj.config.remote-status - is TBD [error]
"git proj remote" needs to be run.
gitproj.config.remote-raw-origin - is TBD [warning]
"git proj remote" needs to be run.
warn if gitproj.config.remote.min-space is < 2x existing space [warning]
if gitproj.config.remote-raw-origin, report if not found. [warning]
Suggest mounting it or running "git proj remote".
List symlinks with problems [error]
Report on all symlinks in PROJ [info]
Check for big binary files, not in raw/ [warning]
This will list all of the current config var settings and what file they are set in. Other statistics about the course will also be listed, for example, the number of files in raw/ and the space they use.
Define the config sections or files that you want to update or copy."
These options are for all of the config files actions.
Define what level to copy from and what level to copy to.
For example, if you select 'Product -> User', then that means sections from /usr/share/doc/git-proj/config/gitconfig will be copied to ~/.gitconfig
The config 'levels' and files are more completely described in the user-doc 'gitproj Configuration Documentation' (config.md
If you select 'Force copy', then the variables in the 'from' file will replace the variables in the 'to' file.
If you select 'Only copy missing', then existing variables, in the 'to' file, will not be replaced with variables in the 'from' file. But missing variables will be copied from the 'from' file.
Define what level to copy from and what level to copy to.
For example, if you select 'Product -> User', then that means /usr/share/doc/git-proj/config/gitignore will be merged to ~/.gitignore
An existing ~/.gitignore will be copied to ~/.gitignore.bak The updated ~/.gitignore will be sorted with duplicates and comments removed.
The config 'levels' and files are more completely described in the user-doc 'gitproj Configuration Documentation' (config.md)
Define what level to copy from and what level to copy to.
For example, if you select 'Product -> User', then that means /usr/share/doc/git-proj/hooks/pre-commit will be copied to ~/.pre-commit
An existing ~/.pre-commit will be copied to ~/.pre-commit.~1~
The config 'levels' and files are more completely described in the user-doc 'gitproj Configuration Documentation' (config.md)
Selecting 'Yes' will make the changes you have selected. If you do not want to continue, then you can Quit, to return to the main menu, or select the Back options to update your selections.
Are the above actions correct?
-h
-H usage|text|html|md|man|int|int-html|int-md
-q, -v, -V N (gpVerbose)
-x, -xx..., -X N (gpDebug)
Run "git proj -h" for details. Or "man git-proj" for help with all the sub-commands.
0 - if OK
!0 - if errors
ProductConfig is short for /usr/share/doc/git-proj/config/gitconfig
ProductIgnore is short for /usr/share/doc/git-proj/config/gitignore
ProductPreCommit is short for /usr/share/doc/git-proj/hooks/pre-commit
--global is short for ~/.gitconfig
UserIgnore is short for ~/.gitignore
UserPreCommit is short for ~/.pre-commit
(Note: this may change to: ~/.git/hooks/pre-commit)
ProjectConfig is short for ProjName/.gitproj
ProjectIgnore is short for ProjName/.gitignore
ProjectPreCommit is short for ProjName/.pre-commit
--local is short for ProjName/.git/config
LocalPreCommit is short for ProjName/.git/hooks/pre-commit
git proj
git proj init
git proj remote
git proj clone
git proj push
git proj pull
git proj status
git proj config
git proj add TBD
git flow
The checks and actions do not cover "all" of the configuration changes that you might like. "git proj config" is just a helper tool to point out problems and differences that might matter.
You are free to edit the files directly. Just make sure the bool and int vars are syntactically OK. Also the Product level configs should probably be left unchanged, so that git-proj updates will not overwrite your changes. Put the changes you want to keep at the --global or Project Levels.
TurtleEngr
GPLv3 Copyright 2021 by TurtleEngr