Merge branch 'jc/no-cmd-as-subroutine'

Calling cmd_foo() as if it is a general purpose helper function is
a no-no.  Correct two instances of such to set an example.

* jc/no-cmd-as-subroutine:
  merge-ours: do not use cmd_*() as a subroutine
  describe: do not use cmd_*() as a subroutine
This commit is contained in:
Junio C Hamano
2017-11-06 13:11:21 +09:00
2 changed files with 18 additions and 13 deletions

View File

@ -7,12 +7,12 @@
#include "builtin.h" #include "builtin.h"
#include "exec_cmd.h" #include "exec_cmd.h"
#include "parse-options.h" #include "parse-options.h"
#include "revision.h"
#include "diff.h" #include "diff.h"
#include "hashmap.h" #include "hashmap.h"
#include "argv-array.h" #include "argv-array.h"
#include "run-command.h" #include "run-command.h"
#define SEEN (1u << 0)
#define MAX_TAGS (FLAG_BITS - 1) #define MAX_TAGS (FLAG_BITS - 1)
static const char * const describe_usage[] = { static const char * const describe_usage[] = {
@ -543,7 +543,9 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
} }
} else if (dirty) { } else if (dirty) {
static struct lock_file index_lock; static struct lock_file index_lock;
int fd; struct rev_info revs;
struct argv_array args = ARGV_ARRAY_INIT;
int fd, result;
read_cache_preload(NULL); read_cache_preload(NULL);
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED,
@ -552,8 +554,13 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
if (0 <= fd) if (0 <= fd)
update_index_if_able(&the_index, &index_lock); update_index_if_able(&the_index, &index_lock);
if (!cmd_diff_index(ARRAY_SIZE(diff_index_args) - 1, init_revisions(&revs, prefix);
diff_index_args, prefix)) argv_array_pushv(&args, diff_index_args);
if (setup_revisions(args.argc, args.argv, &revs, NULL) != 1)
BUG("malformed internal diff-index command line");
result = run_diff_index(&revs, 0);
if (!diff_result_code(&revs.diffopt, result))
suffix = NULL; suffix = NULL;
else else
suffix = dirty; suffix = dirty;

View File

@ -9,26 +9,24 @@
*/ */
#include "git-compat-util.h" #include "git-compat-util.h"
#include "builtin.h" #include "builtin.h"
#include "diff.h"
static const char builtin_merge_ours_usage[] = static const char builtin_merge_ours_usage[] =
"git merge-ours <base>... -- HEAD <remote>..."; "git merge-ours <base>... -- HEAD <remote>...";
static const char *diff_index_args[] = {
"diff-index", "--quiet", "--cached", "HEAD", "--", NULL
};
#define NARGS (ARRAY_SIZE(diff_index_args) - 1)
int cmd_merge_ours(int argc, const char **argv, const char *prefix) int cmd_merge_ours(int argc, const char **argv, const char *prefix)
{ {
if (argc == 2 && !strcmp(argv[1], "-h")) if (argc == 2 && !strcmp(argv[1], "-h"))
usage(builtin_merge_ours_usage); usage(builtin_merge_ours_usage);
/* /*
* We need to exit with 2 if the index does not match our HEAD tree, * The contents of the current index becomes the tree we
* because the current index is what we will be committing as the * commit. The index must match HEAD, or this merge cannot go
* merge result. * through.
*/ */
if (cmd_diff_index(NARGS, diff_index_args, prefix)) if (read_cache() < 0)
die_errno("read_cache failed");
if (index_differs_from("HEAD", 0, 0))
exit(2); exit(2);
exit(0); exit(0);
} }