add: make pathless 'add [-u|-A]' warning a file-global function
Currently warn_pathless_add() is only called directly by cmd_add(), but that is about to change. Move its definition higher in the file and pass the "--update" or "--all" option name used in its message through globals instead of function arguments to make it easier to call without passing values that will not change through the call chain. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7bf7a92f69
commit
e24afab091
@ -28,6 +28,41 @@ struct update_callback_data {
|
|||||||
int add_errors;
|
int add_errors;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *option_with_implicit_dot;
|
||||||
|
static const char *short_option_with_implicit_dot;
|
||||||
|
|
||||||
|
static void warn_pathless_add(void)
|
||||||
|
{
|
||||||
|
assert(option_with_implicit_dot && short_option_with_implicit_dot);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To be consistent with "git add -p" and most Git
|
||||||
|
* commands, we should default to being tree-wide, but
|
||||||
|
* this is not the original behavior and can't be
|
||||||
|
* changed until users trained themselves not to type
|
||||||
|
* "git add -u" or "git add -A". For now, we warn and
|
||||||
|
* keep the old behavior. Later, the behavior can be changed
|
||||||
|
* to tree-wide, keeping the warning for a while, and
|
||||||
|
* eventually we can drop the warning.
|
||||||
|
*/
|
||||||
|
warning(_("The behavior of 'git add %s (or %s)' with no path argument from a\n"
|
||||||
|
"subdirectory of the tree will change in Git 2.0 and should not be used anymore.\n"
|
||||||
|
"To add content for the whole tree, run:\n"
|
||||||
|
"\n"
|
||||||
|
" git add %s :/\n"
|
||||||
|
" (or git add %s :/)\n"
|
||||||
|
"\n"
|
||||||
|
"To restrict the command to the current directory, run:\n"
|
||||||
|
"\n"
|
||||||
|
" git add %s .\n"
|
||||||
|
" (or git add %s .)\n"
|
||||||
|
"\n"
|
||||||
|
"With the current Git version, the command is restricted to the current directory."),
|
||||||
|
option_with_implicit_dot, short_option_with_implicit_dot,
|
||||||
|
option_with_implicit_dot, short_option_with_implicit_dot,
|
||||||
|
option_with_implicit_dot, short_option_with_implicit_dot);
|
||||||
|
}
|
||||||
|
|
||||||
static int fix_unmerged_status(struct diff_filepair *p,
|
static int fix_unmerged_status(struct diff_filepair *p,
|
||||||
struct update_callback_data *data)
|
struct update_callback_data *data)
|
||||||
{
|
{
|
||||||
@ -321,35 +356,6 @@ static int add_files(struct dir_struct *dir, int flags)
|
|||||||
return exit_status;
|
return exit_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void warn_pathless_add(const char *option_name, const char *short_name) {
|
|
||||||
/*
|
|
||||||
* To be consistent with "git add -p" and most Git
|
|
||||||
* commands, we should default to being tree-wide, but
|
|
||||||
* this is not the original behavior and can't be
|
|
||||||
* changed until users trained themselves not to type
|
|
||||||
* "git add -u" or "git add -A". For now, we warn and
|
|
||||||
* keep the old behavior. Later, the behavior can be changed
|
|
||||||
* to tree-wide, keeping the warning for a while, and
|
|
||||||
* eventually we can drop the warning.
|
|
||||||
*/
|
|
||||||
warning(_("The behavior of 'git add %s (or %s)' with no path argument from a\n"
|
|
||||||
"subdirectory of the tree will change in Git 2.0 and should not be used anymore.\n"
|
|
||||||
"To add content for the whole tree, run:\n"
|
|
||||||
"\n"
|
|
||||||
" git add %s :/\n"
|
|
||||||
" (or git add %s :/)\n"
|
|
||||||
"\n"
|
|
||||||
"To restrict the command to the current directory, run:\n"
|
|
||||||
"\n"
|
|
||||||
" git add %s .\n"
|
|
||||||
" (or git add %s .)\n"
|
|
||||||
"\n"
|
|
||||||
"With the current Git version, the command is restricted to the current directory."),
|
|
||||||
option_name, short_name,
|
|
||||||
option_name, short_name,
|
|
||||||
option_name, short_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
int cmd_add(int argc, const char **argv, const char *prefix)
|
int cmd_add(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
int exit_status = 0;
|
int exit_status = 0;
|
||||||
@ -360,8 +366,6 @@ int cmd_add(int argc, const char **argv, const char *prefix)
|
|||||||
int add_new_files;
|
int add_new_files;
|
||||||
int require_pathspec;
|
int require_pathspec;
|
||||||
char *seen = NULL;
|
char *seen = NULL;
|
||||||
const char *option_with_implicit_dot = NULL;
|
|
||||||
const char *short_option_with_implicit_dot = NULL;
|
|
||||||
|
|
||||||
git_config(add_config, NULL);
|
git_config(add_config, NULL);
|
||||||
|
|
||||||
@ -392,8 +396,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
|
|||||||
if (option_with_implicit_dot && !argc) {
|
if (option_with_implicit_dot && !argc) {
|
||||||
static const char *here[2] = { ".", NULL };
|
static const char *here[2] = { ".", NULL };
|
||||||
if (prefix)
|
if (prefix)
|
||||||
warn_pathless_add(option_with_implicit_dot,
|
warn_pathless_add();
|
||||||
short_option_with_implicit_dot);
|
|
||||||
argc = 1;
|
argc = 1;
|
||||||
argv = here;
|
argv = here;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user