Merge branch 'ef/cherry-abbrev'

* ef/cherry-abbrev:
  ls: remove redundant logic
  cherry: support --abbrev option
This commit is contained in:
Junio C Hamano
2010-04-03 12:28:40 -07:00
3 changed files with 25 additions and 27 deletions

View File

@ -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;

View File

@ -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);
} }

View File

@ -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);