Merge branch 'mh/left-right-limited'
"git log --{left,right}-only A...B", when A and B does not share
any common ancestor, now behaves as expected.
* mh/left-right-limited:
revision: fix --left/right-only use with unrelated histories
This commit is contained in:
@@ -2480,10 +2480,12 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
||||
die(_("options '%s' and '%s' cannot be used together"),
|
||||
"--left-only", "--right-only/--cherry");
|
||||
revs->left_only = 1;
|
||||
revs->limited = 1;
|
||||
} else if (!strcmp(arg, "--right-only")) {
|
||||
if (revs->left_only)
|
||||
die(_("options '%s' and '%s' cannot be used together"), "--right-only", "--left-only");
|
||||
revs->right_only = 1;
|
||||
revs->limited = 1;
|
||||
} else if (!strcmp(arg, "--cherry")) {
|
||||
if (revs->left_only)
|
||||
die(_("options '%s' and '%s' cannot be used together"), "--cherry", "--left-only");
|
||||
|
||||
@@ -182,6 +182,21 @@ test_expect_success 'rev-list --unpacked' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'rev-list one-sided unrelated symmetric diff' '
|
||||
test_tick &&
|
||||
git commit --allow-empty -m xyz &&
|
||||
git branch cmp &&
|
||||
git rebase --force-rebase --root &&
|
||||
|
||||
git rev-list --left-only HEAD...cmp >head &&
|
||||
git rev-list --right-only HEAD...cmp >cmp &&
|
||||
|
||||
sort head >head.sorted &&
|
||||
sort cmp >cmp.sorted &&
|
||||
comm -12 head.sorted cmp.sorted >actual &&
|
||||
test_line_count = 0 actual
|
||||
'
|
||||
|
||||
test_expect_success 'rev-list -z' '
|
||||
test_when_finished rm -rf repo &&
|
||||
|
||||
|
||||
Reference in New Issue
Block a user