10.1.1 Getting a Value from Git
These functions run Git in order to get a value, an exit status, or output. Of course you could also use them to run Git commands that have side-effects, but that should be avoided.
function
magit-git-exit-code \&rest args​
Executes git with ARGS and returns its exit code.
function
magit-git-success \&rest args​
Executes git with ARGS and returns t
if the exit code is 0
, nil
otherwise.
function
magit-git-failure \&rest args​
Executes git with ARGS and returns t
if the exit code is 1
, nil
otherwise.
function
magit-git-true \&rest args​
Executes git with ARGS and returns t
if the first line printed by git is the string "true", nil
otherwise.
function
magit-git-false \&rest args​
Executes git with ARGS and returns t
if the first line printed by git is the string "false", nil
otherwise.
function
magit-git-insert \&rest args​
Executes git with ARGS and inserts its output at point.
function
magit-git-string \&rest args​
Executes git with ARGS and returns the first line of its output. If there is no output or if it begins with a newline character, then this returns nil
.
function
magit-git-lines \&rest args​
Executes git with ARGS and returns its output as a list of lines. Empty lines anywhere in the output are omitted.
function
magit-git-items \&rest args​
Executes git with ARGS and returns its null-separated output as a list. Empty items anywhere in the output are omitted.
If the value of option magit-git-debug
is non-nil and git exits with a non-zero exit status, then warn about that in the echo area and add a section containing git’s standard error in the current repository’s process buffer.
function
magit-process-git destination \&rest args​
Calls Git synchronously in a separate process, returning its exit code. DESTINATION specifies how to handle the output, like for call-process
, except that file handlers are supported. Enables Cygwin’s "noglob" option during the call and ensures unix eol conversion.
function
magit-process-file process \&optional infile buffer display \&rest args​
Processes files synchronously in a separate process. Identical to process-file
but temporarily enables Cygwin’s "noglob" option during the call and ensures unix eol conversion.
If an error occurs when using one of the above functions, then that is usually due to a bug, i.e. using an argument which is not actually supported. Such errors are usually not reported, but when they occur we need to be able to debug them.
user option
magit-git-debug​
Whether to report errors that occur when using magit-git-insert
, magit-git-string
, magit-git-lines
, or magit-git-items
. This does not actually raise an error. Instead a message is shown in the echo area, and git’s standard error is insert into a new section in the current repository’s process buffer.
function
magit-git-str \&rest args​
This is a variant of magit-git-string
that ignores the option magit-git-debug
. It is mainly intended to be used while handling errors in functions that do respect that option. Using such a function while handing an error could cause yet another error and therefore lead to an infinite recursion. You probably won’t ever need to use this function.