Config
Wrgl configuration is written in YAML format and stored in the following locations:
- Repository folder
.wrgl/config.yaml
: By default, all write commands alter this file. For read commands, the default behavior is to aggregate all files. If flag--local
is set then this file is read exclusively. - Global folder
$XDG_CONFIG_HOME/wrgl/config.yaml
: This file is read/write to if flag--global
is set. IfXDG_CONFIG_HOME
isn't defined then the location$HOME/.config/wrgl/config.yaml
is used instead. - System folder
/usr/local/etc/wrgl/config.yaml
: This file is read/write to if flag--system
is set.
Configuration options
- user.email: current user's email. Just like with Git, most operations that alter data record the user's email. Unlike Git however, email is always required.
- user.name: current user's name.
- remote.<remote>.url: the URL of a remote.
- remote.<remote>.fetch: list of refspecs to fetch from this remote when user run
wrgl fetch <remote>
without specifying refspecs. - remote.<remote>.push: list of refspecs to push to this remote when user run
wrgl push <remote>
without specifying refspecs. - remote.<remote>.mirror: when set to
true
,wrgl push <remote>
behaves as if flag--mirror
is set. This remote will then act as a mirror of the local repository. - receive.denyNonFastForwards: when set to
true
, during push, Wrgld denies all updates that are not fast-forwards. - receive.denyDeletes: when set to
true
, during push, Wrgld denies all reference deletes. - branch.<branch>.remote: upstream remote of this branch. When both this setting and
branch.<branch>merge
is set, user can runwrgl pull <branch>
without specifying remote and refspec. - branch.<branch>.merge: upstream destination of this branch. When both this setting and
branch.<branch>remote
is set, user can runwrgl pull <branch>
without specifying remote and refspec. - auth.tokenDuration: how long before a JWT token given by the `/authenticate/` endpoint of Wrgld expire. This is a string in the format "72h3m0.5s". Tokens last for 90 days by default.
- pack.maxFileSize: the maximum packfile size in bytes. Note that unlike in Git, pack format is only used as a transport format during fetch and push. This size is pre-compression.
wrgl config add
Add to a multi-valued field without altering any existing values.
wrgl config add NAME VALUE [flags]
Flags
-h, --help
help for add
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global $XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global $XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# add new value to remote.origin.push
wrgl config add remote.origin.push refs/heads/main
# add whole object with JSON string
wrgl config add auth.clients '{"id": "123", "redirectURIs": ["http://my-client.com"]}'
wrgl config set
Set value for a field.
wrgl config set NAME VALUE [flags]
This command only work with single-valued fields. For multi-valued fields, use wrgl config add or wrgl config replace-all instead. For boolean fields, only "true" or "false" value can be set.
Flags
-h, --help
help for set
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# alter setting in the local config
wrgl config set receive.denyNonFastForwards true
# alter system-wide config
wrgl config set pack.maxFileSize 1048576 --system
# alter global config
wrgl config set user.name "Jane Lane" --global
wrgl config get
Get value of a field.
wrgl config get NAME [VALUE_PATTERN] [flags]
This command returns the last value if there are multiple values in this field. If VALUE_PATTERN is given, only returns the value if it matches pattern (a regular expression if --fixed-value is not set). Returns error code 1 if the key was not found.
Flags
-h, --help
help for get
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global $XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global $XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# get current user email
wrgl config get user.email
# get the last branch reference in field remote.origin.push
wrgl config get remote.origin.push ^refs/heads/
# print an object as JSON string
wrgl config get remote.origin
# get all the push refspec
wrgl config get remote.origin.push
# get the second push refspec
wrgl config get remote.origin.push.1
wrgl config rename-section
Rename a config section.
wrgl config rename-section OLD_NAME NEW_NAME [flags]
This is equivalent to moving a config section to a different location. Note that the new destination's type must match that of the old location.
Flags
-h, --help
help for rename-section
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global $XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# rename a remote
wrgl config rename-section remote.origin remote.old_origin
wrgl config replace-all
Replace all values with a single value.
wrgl config replace-all NAME VALUE [VALUE_PATTERN] [flags]
If VALUE_PATTERN is given, only replace the values matching it.
Flags
-h, --help
help for replace-all
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# replace all values under remote.origin.push with refs/heads/main
wrgl config replace-all remote.origin.push refs/heads/main
# replace all branches under remote.origin.push with refs/heads/main
wrgl config replace-all remote.origin.push refs/heads/main ^refs/heads/
wrgl config unset
Remove one or more values.
wrgl config unset NAME [VALUE_PATTERN] [--all] [flags]
If VALUE_PATTERN is not given, the matching field must be single-valued. If VALUE_PATTERN is given and the field is multi-valued, there must be only one matching value.
Flags
--all
remove all values. If VALUE_PATTERN is defined, remove all values that match VALUE_PATTERN.
-h, --help
help for unset
Inherited flags
--badger-log
set Badger log level, valid options are "error", "warning", "debug", and "info" (defaults to "error")
--cpuprofile
write cpu profile to file
-f, --file
use the given config file instead of .wrgl/config.yaml
--fixed-value
when used with the VALUE_PATTERN argument, treat VALUE_PATTERN as an exact string instead of a regular expression.
--global
for writing commands: write to global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global \$XDG_CONFIG_HOME/wrgl/config.yaml rather than from all available files.
--heapprofile
write heap profile to file
--local
for writing commands: write to file .wrgl/config.yaml. This is the default behavior. For reading commands: read only from the repository .wrgl/config.yaml rather than from all available files.
--log-file
output logs to specified file
--log-verbosity
log verbosity. Higher value means more log
--no-progress
don't display progress bar
-z, --null
for all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks.
--system
for writing commands: write to system-wide /usr/local/etc/wrgl/config.yaml rather than the repository .wrgl/config.yaml. For reading commands: read only from global file /usr/local/etc/wrgl/config.yaml rather than from all available files.
--wrgl-dir
parent directory of repo, default to current working directory.
Examples
# remove an option
wrgl config unset receive.denyNonFastForwards
# remove the main branch from remote.origin.push
wrgl config unset remote.origin.push refs/heads/main --fixed-value