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:
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user