Merge branch 'ef/cherry-abbrev'
* ef/cherry-abbrev: ls: remove redundant logic cherry: support --abbrev option
This commit is contained in:
@ -1303,8 +1303,11 @@ static int add_pending_commit(const char *arg, struct rev_info *revs, int flags)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char cherry_usage[] =
|
static const char * const cherry_usage[] = {
|
||||||
"git cherry [-v] [<upstream> [<head> [<limit>]]]";
|
"git cherry [-v] [<upstream> [<head> [<limit>]]]",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
int cmd_cherry(int argc, const char **argv, const char *prefix)
|
int cmd_cherry(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
struct rev_info revs;
|
struct rev_info revs;
|
||||||
@ -1315,26 +1318,25 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
|
|||||||
const char *upstream;
|
const char *upstream;
|
||||||
const char *head = "HEAD";
|
const char *head = "HEAD";
|
||||||
const char *limit = NULL;
|
const char *limit = NULL;
|
||||||
int verbose = 0;
|
int verbose = 0, abbrev = 0;
|
||||||
|
|
||||||
if (argc > 1 && !strcmp(argv[1], "-v")) {
|
struct option options[] = {
|
||||||
verbose = 1;
|
OPT__ABBREV(&abbrev),
|
||||||
argc--;
|
OPT__VERBOSE(&verbose),
|
||||||
argv++;
|
OPT_END()
|
||||||
}
|
};
|
||||||
|
|
||||||
if (argc > 1 && !strcmp(argv[1], "-h"))
|
argc = parse_options(argc, argv, prefix, options, cherry_usage, 0);
|
||||||
usage(cherry_usage);
|
|
||||||
|
|
||||||
switch (argc) {
|
switch (argc) {
|
||||||
case 4:
|
|
||||||
limit = argv[3];
|
|
||||||
/* FALLTHROUGH */
|
|
||||||
case 3:
|
case 3:
|
||||||
head = argv[2];
|
limit = argv[2];
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case 2:
|
case 2:
|
||||||
upstream = argv[1];
|
head = argv[1];
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
case 1:
|
||||||
|
upstream = argv[0];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
current_branch = branch_get(NULL);
|
current_branch = branch_get(NULL);
|
||||||
@ -1344,7 +1346,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
|
|||||||
fprintf(stderr, "Could not find a tracked"
|
fprintf(stderr, "Could not find a tracked"
|
||||||
" remote branch, please"
|
" remote branch, please"
|
||||||
" specify <upstream> manually.\n");
|
" specify <upstream> manually.\n");
|
||||||
usage(cherry_usage);
|
usage_with_options(cherry_usage, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
upstream = current_branch->merge[0]->dst;
|
upstream = current_branch->merge[0]->dst;
|
||||||
@ -1397,12 +1399,13 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
|
|||||||
pretty_print_commit(CMIT_FMT_ONELINE, commit,
|
pretty_print_commit(CMIT_FMT_ONELINE, commit,
|
||||||
&buf, &ctx);
|
&buf, &ctx);
|
||||||
printf("%c %s %s\n", sign,
|
printf("%c %s %s\n", sign,
|
||||||
sha1_to_hex(commit->object.sha1), buf.buf);
|
find_unique_abbrev(commit->object.sha1, abbrev),
|
||||||
|
buf.buf);
|
||||||
strbuf_release(&buf);
|
strbuf_release(&buf);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printf("%c %s\n", sign,
|
printf("%c %s\n", sign,
|
||||||
sha1_to_hex(commit->object.sha1));
|
find_unique_abbrev(commit->object.sha1, abbrev));
|
||||||
}
|
}
|
||||||
|
|
||||||
list = list->next;
|
list = list->next;
|
||||||
|
|||||||
@ -153,8 +153,7 @@ static void show_ce_entry(const char *tag, struct cache_entry *ce)
|
|||||||
printf("%s%06o %s %d\t",
|
printf("%s%06o %s %d\t",
|
||||||
tag,
|
tag,
|
||||||
ce->ce_mode,
|
ce->ce_mode,
|
||||||
abbrev ? find_unique_abbrev(ce->sha1,abbrev)
|
find_unique_abbrev(ce->sha1,abbrev),
|
||||||
: sha1_to_hex(ce->sha1),
|
|
||||||
ce_stage(ce));
|
ce_stage(ce));
|
||||||
}
|
}
|
||||||
write_name_quoted(ce->name + offset, stdout, line_terminator);
|
write_name_quoted(ce->name + offset, stdout, line_terminator);
|
||||||
@ -176,9 +175,7 @@ static int show_one_ru(struct string_list_item *item, void *cbdata)
|
|||||||
if (!ui->mode[i])
|
if (!ui->mode[i])
|
||||||
continue;
|
continue;
|
||||||
printf("%s%06o %s %d\t", tag_resolve_undo, ui->mode[i],
|
printf("%s%06o %s %d\t", tag_resolve_undo, ui->mode[i],
|
||||||
abbrev
|
find_unique_abbrev(ui->sha1[i], abbrev),
|
||||||
? find_unique_abbrev(ui->sha1[i], abbrev)
|
|
||||||
: sha1_to_hex(ui->sha1[i]),
|
|
||||||
i + 1);
|
i + 1);
|
||||||
write_name_quoted(path + offset, stdout, line_terminator);
|
write_name_quoted(path + offset, stdout, line_terminator);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,13 +103,11 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen,
|
|||||||
} else
|
} else
|
||||||
strcpy(size_text, "-");
|
strcpy(size_text, "-");
|
||||||
printf("%06o %s %s %7s\t", mode, type,
|
printf("%06o %s %s %7s\t", mode, type,
|
||||||
abbrev ? find_unique_abbrev(sha1, abbrev)
|
find_unique_abbrev(sha1, abbrev),
|
||||||
: sha1_to_hex(sha1),
|
|
||||||
size_text);
|
size_text);
|
||||||
} else
|
} else
|
||||||
printf("%06o %s %s\t", mode, type,
|
printf("%06o %s %s\t", mode, type,
|
||||||
abbrev ? find_unique_abbrev(sha1, abbrev)
|
find_unique_abbrev(sha1, abbrev));
|
||||||
: sha1_to_hex(sha1));
|
|
||||||
}
|
}
|
||||||
write_name_quotedpfx(base + chomp_prefix, baselen - chomp_prefix,
|
write_name_quotedpfx(base + chomp_prefix, baselen - chomp_prefix,
|
||||||
pathname, stdout, line_termination);
|
pathname, stdout, line_termination);
|
||||||
|
|||||||
Reference in New Issue
Block a user