Skip to content

Commit

Permalink
builtin/rm.c: consolidate error reporting for removing submodules
Browse files Browse the repository at this point in the history
We have two (not identical) copies of error reporting when
attempting to remove submodules that have their repositories
embedded within them.  Add a helper function so that we do not have
to repeat similar error messages with subtly different wording
without a good reason.

Noticed by Jiang Xin.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jul 26, 2013
1 parent 914dc02 commit 658ff47
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions builtin/rm.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,21 @@ static void print_error_files(struct string_list *files_list,
}
}

static void error_removing_concrete_submodules(struct string_list *files, int *errs)
{
print_error_files(files,
Q_("the following submodule (or one of its nested "
"submodules)\n"
"uses a .git directory:",
"the following submodules (or one of its nested "
"submodules)\n"
"use a .git directory:", files->nr),
_("\n(use 'rm -rf' if you really want to remove "
"it including all of its history)"),
errs);
string_list_clear(files, 0);
}

static int check_submodules_use_gitfiles(void)
{
int i;
Expand Down Expand Up @@ -85,16 +100,8 @@ static int check_submodules_use_gitfiles(void)
if (!submodule_uses_gitfile(name))
string_list_append(&files, name);
}
print_error_files(&files,
Q_("the following submodule (or one of its nested "
"submodules)\n uses a .git directory:",
"the following submodules (or one of its nested "
"submodules)\n use a .git directory:",
files.nr),
_("\n(use 'rm -rf' if you really want to remove "
"it including all of its history)"),
&errs);
string_list_clear(&files, 0);

error_removing_concrete_submodules(&files, &errs);

return errs;
}
Expand Down Expand Up @@ -236,17 +243,9 @@ static int check_local_mod(unsigned char *head, int index_only)
" or -f to force removal)"),
&errs);
string_list_clear(&files_cached, 0);
print_error_files(&files_submodule,
Q_("the following submodule (or one of its nested "
"submodule)\nuses a .git directory:",
"the following submodules (or one of its nested "
"submodule)\nuse a .git directory:",
files_submodule.nr),
_("\n(use 'rm -rf' if you really "
"want to remove it including all "
"of its history)"),
&errs);
string_list_clear(&files_submodule, 0);

error_removing_concrete_submodules(&files_submodule, &errs);

print_error_files(&files_local,
Q_("the following file has local modifications:",
"the following files have local modifications:",
Expand Down

0 comments on commit 658ff47

Please sign in to comment.