There are actually two possible global configuration files,
`$HOME/.gitconfig` and `$XDG_CONFIG_HOME/git/config`. However, the
`--global` file by default modifies only the former if it's present.
Add a `--file` option to `git lfs install` and `git lfs uninstall` so
that users can choose which of those files they'd like to use.
Update several tests to deal with our new, simpler error message so we
can avoid having to produce a huge number of different error messages.
We convert a few messages output by the various commands to use
the capitalized "Git" project name instead of the lowercase variant,
which will make them consistent with how the Git project name appears
in other messages elsewhere.
Note that some of these messages are not yet passed as translation
strings, but we will address that issue in a subsequent commit.
As the checks for local and global LFS configurations in our
install and uninstall tests of the --local option vary somewhat
in their breadth and their use of dummy text strings, we attempt
to make them more consistent and complete before adding any tests
for the new --worktree option.
To bring additional consistency we add an uninstall test
which confirms that using --local outside a repository fails,
akin to the existing installation test of that case.
And we also add matching install and uninstall tests to confirm
the expected error message when conflicting --local and --system
scope options are both supplied.
git lfs install has a --skip-repo option, which prevents any attempt to
modify the repo if run from within one. Add such an option for git lfs
uninstall as well. Document it and add tests for its functionality.
The printf(1) command, like it's C cousin, takes a format string as its
first argument. If a shell variable is passed as the first argument, it
will be interpreted as a format string; this can lead to surprising
behavior and can cause the test suite to fail if we accidentally insert
a format string character into the variable.
Modify all the places in the individual tests that we use a plain quoted
variable as the format string by running the following Ruby one-liner:
ruby -i -pe '$_.gsub!(/printf "\$/, %q(printf "%s" "$))' t/t-*.sh
Avoid modifying the test helpers, as there are places (such as calc_oid)
where we want to pass text containing escapes (such as "\n") and have
those be properly interpreted by printf(1).