summaryrefslogtreecommitdiff
path: root/builtin/describe.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-11-06 04:11:21 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-11-06 04:11:21 (GMT)
commit22ddc4bf29160d04eaff78d1acb04ca153ec5dde (patch)
treedf2853c7a517ec21a30d46b43460264eb5a265a4 /builtin/describe.c
parent0b646bcac96a57e345887e607e0b8c9a64ff262a (diff)
parenta92b1095d190ea348d365baeb9ff5c5023d0efd2 (diff)
downloadgit-22ddc4bf29160d04eaff78d1acb04ca153ec5dde.zip
git-22ddc4bf29160d04eaff78d1acb04ca153ec5dde.tar.gz
git-22ddc4bf29160d04eaff78d1acb04ca153ec5dde.tar.bz2
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
Diffstat (limited to 'builtin/describe.c')
-rw-r--r--builtin/describe.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin/describe.c b/builtin/describe.c
index 29075db..979556d 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -7,12 +7,12 @@
#include "builtin.h"
#include "exec_cmd.h"
#include "parse-options.h"
+#include "revision.h"
#include "diff.h"
#include "hashmap.h"
#include "argv-array.h"
#include "run-command.h"
-#define SEEN (1u << 0)
#define MAX_TAGS (FLAG_BITS - 1)
static const char * const describe_usage[] = {
@@ -543,7 +543,9 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
}
} else if (dirty) {
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);
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)
update_index_if_able(&the_index, &index_lock);
- if (!cmd_diff_index(ARRAY_SIZE(diff_index_args) - 1,
- diff_index_args, prefix))
+ init_revisions(&revs, 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;
else
suffix = dirty;