add status.relativePaths config variable
The output of git-status was recently changed to output relative paths. Setting this variable to false restores the old behavior for any old-timers that prefer it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c3ce326128
commit
46f721c8fe
@ -762,6 +762,12 @@ showbranch.default::
|
|||||||
The default set of branches for gitlink:git-show-branch[1].
|
The default set of branches for gitlink:git-show-branch[1].
|
||||||
See gitlink:git-show-branch[1].
|
See gitlink:git-show-branch[1].
|
||||||
|
|
||||||
|
status.relativePaths::
|
||||||
|
By default, gitlink:git-status[1] shows paths relative to the
|
||||||
|
current directory. Setting this variable to `false` shows paths
|
||||||
|
relative to the repository root (this was the default for git
|
||||||
|
prior to v1.5.4).
|
||||||
|
|
||||||
tar.umask::
|
tar.umask::
|
||||||
This variable can be used to restrict the permission bits of
|
This variable can be used to restrict the permission bits of
|
||||||
tar archive entries. The default is 0002, which turns off the
|
tar archive entries. The default is 0002, which turns off the
|
||||||
|
@ -42,7 +42,8 @@ template comments, and all the output lines are prefixed with '#'.
|
|||||||
|
|
||||||
The paths mentioned in the output, unlike many other git commands, are
|
The paths mentioned in the output, unlike many other git commands, are
|
||||||
made relative to the current directory, if you are working in a
|
made relative to the current directory, if you are working in a
|
||||||
subdirectory (this is on purpose, to help cutting and pasting).
|
subdirectory (this is on purpose, to help cutting and pasting). See
|
||||||
|
the status.relativePaths config option below.
|
||||||
|
|
||||||
|
|
||||||
CONFIGURATION
|
CONFIGURATION
|
||||||
@ -53,6 +54,10 @@ mean the same thing and the latter is kept for backward
|
|||||||
compatibility) and `color.status.<slot>` configuration variables
|
compatibility) and `color.status.<slot>` configuration variables
|
||||||
to colorize its output.
|
to colorize its output.
|
||||||
|
|
||||||
|
If the config variable `status.relativePaths` is set to false, then all
|
||||||
|
paths shown are relative to the repository root, not to the current
|
||||||
|
directory.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
gitlink:gitignore[5]
|
gitlink:gitignore[5]
|
||||||
|
@ -285,6 +285,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix)
|
|||||||
struct wt_status s;
|
struct wt_status s;
|
||||||
|
|
||||||
wt_status_prepare(&s);
|
wt_status_prepare(&s);
|
||||||
|
if (wt_status_relative_paths)
|
||||||
s.prefix = prefix;
|
s.prefix = prefix;
|
||||||
|
|
||||||
if (amend) {
|
if (amend) {
|
||||||
|
@ -88,4 +88,35 @@ test_expect_success 'status with relative paths' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
cat > expect << \EOF
|
||||||
|
# On branch master
|
||||||
|
# Changes to be committed:
|
||||||
|
# (use "git reset HEAD <file>..." to unstage)
|
||||||
|
#
|
||||||
|
# new file: dir2/added
|
||||||
|
#
|
||||||
|
# Changed but not updated:
|
||||||
|
# (use "git add <file>..." to update what will be committed)
|
||||||
|
#
|
||||||
|
# modified: dir1/modified
|
||||||
|
#
|
||||||
|
# Untracked files:
|
||||||
|
# (use "git add <file>..." to include in what will be committed)
|
||||||
|
#
|
||||||
|
# dir1/untracked
|
||||||
|
# dir2/modified
|
||||||
|
# dir2/untracked
|
||||||
|
# expect
|
||||||
|
# output
|
||||||
|
# untracked
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success 'status without relative paths' '
|
||||||
|
|
||||||
|
git config status.relativePaths false
|
||||||
|
(cd dir1 && git status) > output &&
|
||||||
|
git diff expect output
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "revision.h"
|
#include "revision.h"
|
||||||
#include "diffcore.h"
|
#include "diffcore.h"
|
||||||
|
|
||||||
|
int wt_status_relative_paths = 1;
|
||||||
int wt_status_use_color = 0;
|
int wt_status_use_color = 0;
|
||||||
static char wt_status_colors[][COLOR_MAXLEN] = {
|
static char wt_status_colors[][COLOR_MAXLEN] = {
|
||||||
"", /* WT_STATUS_HEADER: normal */
|
"", /* WT_STATUS_HEADER: normal */
|
||||||
@ -400,6 +401,11 @@ int git_status_config(const char *k, const char *v)
|
|||||||
if (!prefixcmp(k, "status.color.") || !prefixcmp(k, "color.status.")) {
|
if (!prefixcmp(k, "status.color.") || !prefixcmp(k, "color.status.")) {
|
||||||
int slot = parse_status_slot(k, 13);
|
int slot = parse_status_slot(k, 13);
|
||||||
color_parse(v, k, wt_status_colors[slot]);
|
color_parse(v, k, wt_status_colors[slot]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!strcmp(k, "status.relativepaths")) {
|
||||||
|
wt_status_relative_paths = git_config_bool(k, v);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
return git_default_config(k, v);
|
return git_default_config(k, v);
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ struct wt_status {
|
|||||||
|
|
||||||
int git_status_config(const char *var, const char *value);
|
int git_status_config(const char *var, const char *value);
|
||||||
int wt_status_use_color;
|
int wt_status_use_color;
|
||||||
|
int wt_status_relative_paths;
|
||||||
void wt_status_prepare(struct wt_status *s);
|
void wt_status_prepare(struct wt_status *s);
|
||||||
void wt_status_print(struct wt_status *s);
|
void wt_status_print(struct wt_status *s);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user