Merge branch 'jc/rev-list' into next
* jc/rev-list: rev-list --objects-edge Merge branch 'jc/merge-msg' Merge branch 'jc/mv' Documentation: fix typo in rev-parse --short option description.maint
commit
8c0db2f519
|
@ -80,7 +80,7 @@ OPTIONS
|
||||||
--git-dir::
|
--git-dir::
|
||||||
Show `$GIT_DIR` if defined else show the path to the .git directory.
|
Show `$GIT_DIR` if defined else show the path to the .git directory.
|
||||||
|
|
||||||
--short, short=number::
|
--short, --short=number::
|
||||||
Instead of outputting the full SHA1 values of object names try to
|
Instead of outputting the full SHA1 values of object names try to
|
||||||
abbriviate them to a shorter unique name. When no length is specified
|
abbriviate them to a shorter unique name. When no length is specified
|
||||||
7 is used. The minimum length is 4.
|
7 is used. The minimum length is 4.
|
||||||
|
|
34
rev-list.c
34
rev-list.c
|
@ -30,7 +30,7 @@ static const char rev_list_usage[] =
|
||||||
" --date-order\n"
|
" --date-order\n"
|
||||||
" formatting output:\n"
|
" formatting output:\n"
|
||||||
" --parents\n"
|
" --parents\n"
|
||||||
" --objects\n"
|
" --objects | --objects-edge\n"
|
||||||
" --unpacked\n"
|
" --unpacked\n"
|
||||||
" --header | --pretty\n"
|
" --header | --pretty\n"
|
||||||
" --abbrev=nr | --no-abbrev\n"
|
" --abbrev=nr | --no-abbrev\n"
|
||||||
|
@ -44,6 +44,7 @@ static int bisect_list = 0;
|
||||||
static int tag_objects = 0;
|
static int tag_objects = 0;
|
||||||
static int tree_objects = 0;
|
static int tree_objects = 0;
|
||||||
static int blob_objects = 0;
|
static int blob_objects = 0;
|
||||||
|
static int edge_hint = 0;
|
||||||
static int verbose_header = 0;
|
static int verbose_header = 0;
|
||||||
static int abbrev = DEFAULT_ABBREV;
|
static int abbrev = DEFAULT_ABBREV;
|
||||||
static int show_parents = 0;
|
static int show_parents = 0;
|
||||||
|
@ -430,16 +431,30 @@ static struct commit_list *find_bisection(struct commit_list *list)
|
||||||
return best;
|
return best;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mark_edge_parents_uninteresting(struct commit *commit)
|
||||||
|
{
|
||||||
|
struct commit_list *parents;
|
||||||
|
|
||||||
|
for (parents = commit->parents; parents; parents = parents->next) {
|
||||||
|
struct commit *parent = parents->item;
|
||||||
|
if (!(parent->object.flags & UNINTERESTING))
|
||||||
|
continue;
|
||||||
|
mark_tree_uninteresting(parent->tree);
|
||||||
|
if (edge_hint)
|
||||||
|
printf("-%s\n", sha1_to_hex(parent->object.sha1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void mark_edges_uninteresting(struct commit_list *list)
|
static void mark_edges_uninteresting(struct commit_list *list)
|
||||||
{
|
{
|
||||||
for ( ; list; list = list->next) {
|
for ( ; list; list = list->next) {
|
||||||
struct commit_list *parents = list->item->parents;
|
struct commit *commit = list->item;
|
||||||
|
|
||||||
for ( ; parents; parents = parents->next) {
|
if (commit->object.flags & UNINTERESTING) {
|
||||||
struct commit *commit = parents->item;
|
mark_tree_uninteresting(commit->tree);
|
||||||
if (commit->object.flags & UNINTERESTING)
|
continue;
|
||||||
mark_tree_uninteresting(commit->tree);
|
|
||||||
}
|
}
|
||||||
|
mark_edge_parents_uninteresting(commit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -843,6 +858,13 @@ int main(int argc, const char **argv)
|
||||||
blob_objects = 1;
|
blob_objects = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(arg, "--objects-edge")) {
|
||||||
|
tag_objects = 1;
|
||||||
|
tree_objects = 1;
|
||||||
|
blob_objects = 1;
|
||||||
|
edge_hint = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!strcmp(arg, "--unpacked")) {
|
if (!strcmp(arg, "--unpacked")) {
|
||||||
unpacked = 1;
|
unpacked = 1;
|
||||||
limited = 1;
|
limited = 1;
|
||||||
|
|
|
@ -43,6 +43,7 @@ static int is_rev_argument(const char *arg)
|
||||||
"--min-age=",
|
"--min-age=",
|
||||||
"--no-merges",
|
"--no-merges",
|
||||||
"--objects",
|
"--objects",
|
||||||
|
"--objects-edge",
|
||||||
"--parents",
|
"--parents",
|
||||||
"--pretty",
|
"--pretty",
|
||||||
"--show-breaks",
|
"--show-breaks",
|
||||||
|
|
Loading…
Reference in New Issue