aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-12-30 11:58:54 -0800
committerJunio C Hamano <gitster@pobox.com>2013-12-30 11:58:54 -0800
commit8f29299136c2f11730d876cd62637a9e37d4c388 (patch)
treeac280cc71420d0c203aea01600957d7e1b165f64
parentmerge-base: separate "--independent" codepath into its own helper (diff)
downloadgit-8f29299136c2f11730d876cd62637a9e37d4c388.tar.gz
git-8f29299136c2f11730d876cd62637a9e37d4c388.zip
merge-base --octopus: reduce the result from get_octopus_merge_bases()
Scripts that use "merge-base --octopus" could do the reducing themselves, but most of them are expected to want to get the reduced results without having to do any work themselves. Tests are taken from a message by Василий Макаров <einmalfel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> --- We might want to vet the existing callers of the underlying get_octopus_merge_bases() and find out if _all_ of them are doing anything extra (like deduping) because the machinery can return duplicate results. And if that is the case, then we may want to move the dedupling down the callchain instead of having it here.
-rw-r--r--builtin/merge-base.c2
-rwxr-xr-xt/t6010-merge-base.sh39
2 files changed, 40 insertions, 1 deletions
diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index daa96c7909..87f4dbccae 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -73,7 +73,7 @@ static int handle_octopus(int count, const char **args, int show_all)
for (i = count - 1; i >= 0; i--)
commit_list_insert(get_commit_reference(args[i]), &revs);
- result = get_octopus_merge_bases(revs);
+ result = reduce_heads(get_octopus_merge_bases(revs));
if (!result)
return 1;
diff --git a/t/t6010-merge-base.sh b/t/t6010-merge-base.sh
index f80bba871c..abb5728b34 100755
--- a/t/t6010-merge-base.sh
+++ b/t/t6010-merge-base.sh
@@ -230,4 +230,43 @@ test_expect_success 'criss-cross merge-base for octopus-step' '
test_cmp expected.sorted actual.sorted
'
+test_expect_success 'merge-base --octopus --all for complex tree' '
+ # Best common ancestor for JE, JAA and JDD is JC
+ # JE
+ # / |
+ # / |
+ # / |
+ # JAA / |
+ # |\ / |
+ # | \ | JDD |
+ # | \ |/ | |
+ # | JC JD |
+ # | | /| |
+ # | |/ | |
+ # JA | | |
+ # |\ /| | |
+ # X JB | X X
+ # \ \ | / /
+ # \__\|/___/
+ # J
+ test_commit J &&
+ test_commit JB &&
+ git reset --hard J &&
+ test_commit JC &&
+ git reset --hard J &&
+ test_commit JTEMP1 &&
+ test_merge JA JB &&
+ test_merge JAA JC &&
+ git reset --hard J &&
+ test_commit JTEMP2 &&
+ test_merge JD JB &&
+ test_merge JDD JC &&
+ git reset --hard J &&
+ test_commit JTEMP3 &&
+ test_merge JE JC &&
+ git rev-parse JC >expected &&
+ git merge-base --all --octopus JAA JDD JE >actual &&
+ test_cmp expected actual
+'
+
test_done
d-dev.c: Set 'dev->irq_source_id' to '-1' after free itChen Gang1-1/+3 2014-08-19Revert "KVM: x86: Increase the number of fixed MTRR regs to 10"Paolo Bonzini1-1/+1 2014-08-19KVM: x86: do not check CS.DPL against RPL during task switchPaolo Bonzini1-3/+0 2014-08-19KVM: x86: Avoid emulating instructions on #UD mistakenlyNadav Amit1-4/+4 2014-08-19PC, KVM, CMA: Fix regression caused by wrong get_order() useAlexey Kardashevskiy1-3/+3 2014-08-19kvm: iommu: fix the third parameter of kvm_iommu_put_pages (CVE-2014-3601)Michael S. Tsirkin1-9/+10 2014-08-19ALSA: hda/hdmi - apply Valleyview fix-ups to Cherryview display codecLibin Yang1-4/+7 2014-08-19ALSA: hda/hdmi - set depop_delay for haswell plusLibin Yang1-2/+1 2014-08-19md/raid10: always initialise ->state on newly allocated r10_bioNeilBrown1-0/+3 2014-08-19md/raid10: avoid memory leak on error path during reshape.NeilBrown1-0/+1 2014-08-19md/raid10: Fix memory leak when raid10 reshape completes.NeilBrown1-0/+1 2014-08-19md/raid10: fix memory leak when reshaping a RAID10.NeilBrown1-1/+1 2014-08-19ALSA: hda - restore the gpio led after resumeHui Wang1-0/+9 2014-08-18[IA64] Wire up memfd_create() system callTony Luck3-1/+3 2014-08-18md/raid6: avoid data corruption during recovery of double-degraded RAID6NeilBrown1-0/+2 2014-08-18md/raid5: avoid livelock caused by non-aligned writes.NeilBrown1-1/+1 2014-08-17[SMB3] Enable fallocate -z support for SMB3 mountsSteve French1-0/+55 2014-08-17enable fallocate punch hole ("fallocate -p") for SMB3Steve French5-1/+73 2014-08-17Incorrect error returned on setting file compressed on SMB2Steve French1-1/+1 2014-08-17CIFS: Fix wrong directory attributes after renamePavel Shilovsky1-0/+6 2014-08-17CIFS: Fix SMB2 readdir error handlingPavel Shilovsky7-8/+25 2014-08-17[CIFS] Possible null ptr deref in SMB2_tconSteve French1-1/+2 2014-08-16Linux 3.17-rc1v3.17-rc1Linus Torvalds1-2/+2 2014-08-16platform/x86: Enable build support for toshiba_hapsAzael Avalos2-0/+20 2014-08-16Documentation: Add file about toshiba_haps moduleAzael Avalos2-0/+78