Make left-right automatic.
When using symmetric differences, I think the user almost always would want to know which side of the symmetry each commit came from. So this removes --left-right option from the command line, and turns it on automatically when a symmetric difference is used ("git log --merge" counts as a symmetric difference between HEAD and MERGE_HEAD). Just in case, a new option --no-left-right is provided to defeat this, but I do not know if it would be useful. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
74bd902973
commit
5761231975
13
revision.c
13
revision.c
@ -853,8 +853,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
|
|||||||
revs->boundary = 1;
|
revs->boundary = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strcmp(arg, "--left-right")) {
|
if (!strcmp(arg, "--no-left-right")) {
|
||||||
revs->left_right = 1;
|
revs->no_left_right = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strcmp(arg, "--objects")) {
|
if (!strcmp(arg, "--objects")) {
|
||||||
@ -1055,13 +1055,18 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
|
|||||||
void prepare_revision_walk(struct rev_info *revs)
|
void prepare_revision_walk(struct rev_info *revs)
|
||||||
{
|
{
|
||||||
int nr = revs->pending.nr;
|
int nr = revs->pending.nr;
|
||||||
|
int has_symmetric = 0;
|
||||||
struct object_array_entry *list = revs->pending.objects;
|
struct object_array_entry *list = revs->pending.objects;
|
||||||
|
|
||||||
revs->pending.nr = 0;
|
revs->pending.nr = 0;
|
||||||
revs->pending.alloc = 0;
|
revs->pending.alloc = 0;
|
||||||
revs->pending.objects = NULL;
|
revs->pending.objects = NULL;
|
||||||
while (--nr >= 0) {
|
while (--nr >= 0) {
|
||||||
struct commit *commit = handle_commit(revs, list->item, list->name);
|
struct commit *commit;
|
||||||
|
|
||||||
|
if (list->item->flags & SYMMETRIC_LEFT)
|
||||||
|
has_symmetric = 1;
|
||||||
|
commit = handle_commit(revs, list->item, list->name);
|
||||||
if (commit) {
|
if (commit) {
|
||||||
if (!(commit->object.flags & SEEN)) {
|
if (!(commit->object.flags & SEEN)) {
|
||||||
commit->object.flags |= SEEN;
|
commit->object.flags |= SEEN;
|
||||||
@ -1073,6 +1078,8 @@ void prepare_revision_walk(struct rev_info *revs)
|
|||||||
|
|
||||||
if (revs->no_walk)
|
if (revs->no_walk)
|
||||||
return;
|
return;
|
||||||
|
if (!revs->no_left_right && has_symmetric)
|
||||||
|
revs->left_right = 1;
|
||||||
if (revs->limited)
|
if (revs->limited)
|
||||||
limit_list(revs);
|
limit_list(revs);
|
||||||
if (revs->topo_order)
|
if (revs->topo_order)
|
||||||
|
@ -41,6 +41,7 @@ struct rev_info {
|
|||||||
limited:1,
|
limited:1,
|
||||||
unpacked:1, /* see also ignore_packed below */
|
unpacked:1, /* see also ignore_packed below */
|
||||||
boundary:1,
|
boundary:1,
|
||||||
|
no_left_right:1,
|
||||||
left_right:1,
|
left_right:1,
|
||||||
parents:1;
|
parents:1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user