|
|
|
@ -1148,6 +1148,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1148,6 +1148,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
int *unkc, const char **unkv) |
|
|
|
|
{ |
|
|
|
|
const char *arg = argv[0]; |
|
|
|
|
const char *optarg; |
|
|
|
|
int argcount; |
|
|
|
|
|
|
|
|
|
/* pseudo revision arguments */ |
|
|
|
|
if (!strcmp(arg, "--all") || !strcmp(arg, "--branches") || |
|
|
|
@ -1160,11 +1162,13 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1160,11 +1162,13 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!prefixcmp(arg, "--max-count=")) { |
|
|
|
|
revs->max_count = atoi(arg + 12); |
|
|
|
|
if ((argcount = parse_long_opt("max-count", argv, &optarg))) { |
|
|
|
|
revs->max_count = atoi(optarg); |
|
|
|
|
revs->no_walk = 0; |
|
|
|
|
} else if (!prefixcmp(arg, "--skip=")) { |
|
|
|
|
revs->skip_count = atoi(arg + 7); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("skip", argv, &optarg))) { |
|
|
|
|
revs->skip_count = atoi(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((*arg == '-') && isdigit(arg[1])) { |
|
|
|
|
/* accept -<digit>, like traditional "head" */ |
|
|
|
|
revs->max_count = atoi(arg + 1); |
|
|
|
@ -1178,18 +1182,24 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1178,18 +1182,24 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
} else if (!prefixcmp(arg, "-n")) { |
|
|
|
|
revs->max_count = atoi(arg + 2); |
|
|
|
|
revs->no_walk = 0; |
|
|
|
|
} else if (!prefixcmp(arg, "--max-age=")) { |
|
|
|
|
revs->max_age = atoi(arg + 10); |
|
|
|
|
} else if (!prefixcmp(arg, "--since=")) { |
|
|
|
|
revs->max_age = approxidate(arg + 8); |
|
|
|
|
} else if (!prefixcmp(arg, "--after=")) { |
|
|
|
|
revs->max_age = approxidate(arg + 8); |
|
|
|
|
} else if (!prefixcmp(arg, "--min-age=")) { |
|
|
|
|
revs->min_age = atoi(arg + 10); |
|
|
|
|
} else if (!prefixcmp(arg, "--before=")) { |
|
|
|
|
revs->min_age = approxidate(arg + 9); |
|
|
|
|
} else if (!prefixcmp(arg, "--until=")) { |
|
|
|
|
revs->min_age = approxidate(arg + 8); |
|
|
|
|
} else if ((argcount = parse_long_opt("max-age", argv, &optarg))) { |
|
|
|
|
revs->max_age = atoi(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("since", argv, &optarg))) { |
|
|
|
|
revs->max_age = approxidate(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("after", argv, &optarg))) { |
|
|
|
|
revs->max_age = approxidate(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("min-age", argv, &optarg))) { |
|
|
|
|
revs->min_age = atoi(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("before", argv, &optarg))) { |
|
|
|
|
revs->min_age = approxidate(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("until", argv, &optarg))) { |
|
|
|
|
revs->min_age = approxidate(optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if (!strcmp(arg, "--first-parent")) { |
|
|
|
|
revs->first_parent_only = 1; |
|
|
|
|
} else if (!strcmp(arg, "--ancestry-path")) { |
|
|
|
@ -1295,6 +1305,10 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1295,6 +1305,10 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
revs->pretty_given = 1; |
|
|
|
|
get_commit_format(arg+8, revs); |
|
|
|
|
} else if (!prefixcmp(arg, "--pretty=") || !prefixcmp(arg, "--format=")) { |
|
|
|
|
/* |
|
|
|
|
* Detached form ("--pretty X" as opposed to "--pretty=X") |
|
|
|
|
* not allowed, since the argument is optional. |
|
|
|
|
*/ |
|
|
|
|
revs->verbose_header = 1; |
|
|
|
|
revs->pretty_given = 1; |
|
|
|
|
get_commit_format(arg+9, revs); |
|
|
|
@ -1359,21 +1373,25 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1359,21 +1373,25 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
} else if (!strcmp(arg, "--relative-date")) { |
|
|
|
|
revs->date_mode = DATE_RELATIVE; |
|
|
|
|
revs->date_mode_explicit = 1; |
|
|
|
|
} else if (!strncmp(arg, "--date=", 7)) { |
|
|
|
|
revs->date_mode = parse_date_format(arg + 7); |
|
|
|
|
} else if ((argcount = parse_long_opt("date", argv, &optarg))) { |
|
|
|
|
revs->date_mode = parse_date_format(optarg); |
|
|
|
|
revs->date_mode_explicit = 1; |
|
|
|
|
return argcount; |
|
|
|
|
} else if (!strcmp(arg, "--log-size")) { |
|
|
|
|
revs->show_log_size = 1; |
|
|
|
|
} |
|
|
|
|
/* |
|
|
|
|
* Grepping the commit log |
|
|
|
|
*/ |
|
|
|
|
else if (!prefixcmp(arg, "--author=")) { |
|
|
|
|
add_header_grep(revs, GREP_HEADER_AUTHOR, arg+9); |
|
|
|
|
} else if (!prefixcmp(arg, "--committer=")) { |
|
|
|
|
add_header_grep(revs, GREP_HEADER_COMMITTER, arg+12); |
|
|
|
|
} else if (!prefixcmp(arg, "--grep=")) { |
|
|
|
|
add_message_grep(revs, arg+7); |
|
|
|
|
else if ((argcount = parse_long_opt("author", argv, &optarg))) { |
|
|
|
|
add_header_grep(revs, GREP_HEADER_AUTHOR, optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("committer", argv, &optarg))) { |
|
|
|
|
add_header_grep(revs, GREP_HEADER_COMMITTER, optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if ((argcount = parse_long_opt("grep", argv, &optarg))) { |
|
|
|
|
add_message_grep(revs, optarg); |
|
|
|
|
return argcount; |
|
|
|
|
} else if (!strcmp(arg, "--extended-regexp") || !strcmp(arg, "-E")) { |
|
|
|
|
revs->grep_filter.regflags |= REG_EXTENDED; |
|
|
|
|
} else if (!strcmp(arg, "--regexp-ignore-case") || !strcmp(arg, "-i")) { |
|
|
|
@ -1382,12 +1400,12 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
@@ -1382,12 +1400,12 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|
|
|
|
revs->grep_filter.fixed = 1; |
|
|
|
|
} else if (!strcmp(arg, "--all-match")) { |
|
|
|
|
revs->grep_filter.all_match = 1; |
|
|
|
|
} else if (!prefixcmp(arg, "--encoding=")) { |
|
|
|
|
arg += 11; |
|
|
|
|
if (strcmp(arg, "none")) |
|
|
|
|
git_log_output_encoding = xstrdup(arg); |
|
|
|
|
} else if ((argcount = parse_long_opt("encoding", argv, &optarg))) { |
|
|
|
|
if (strcmp(optarg, "none")) |
|
|
|
|
git_log_output_encoding = xstrdup(optarg); |
|
|
|
|
else |
|
|
|
|
git_log_output_encoding = ""; |
|
|
|
|
return argcount; |
|
|
|
|
} else if (!strcmp(arg, "--reverse")) { |
|
|
|
|
revs->reverse ^= 1; |
|
|
|
|
} else if (!strcmp(arg, "--children")) { |
|
|
|
|