diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index d5345b6..d95acaa 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -132,7 +132,7 @@
 	else
 		putchar('\n');
 
-	if (revs->verbose_header && get_cached_commit_buffer(commit, NULL)) {
+	if (revs->verbose_header) {
 		struct strbuf buf = STRBUF_INIT;
 		struct pretty_print_context ctx = {0};
 		ctx.abbrev = revs->abbrev;
diff --git a/log-tree.c b/log-tree.c
index fca29d4..5c6b090 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -659,9 +659,6 @@
 		show_mergetag(opt, commit);
 	}
 
-	if (!get_cached_commit_buffer(commit, NULL))
-		return;
-
 	if (opt->show_notes) {
 		int raw;
 		struct strbuf notebuf = STRBUF_INIT;
diff --git a/revision.c b/revision.c
index a2ba544..e5e527b 100644
--- a/revision.c
+++ b/revision.c
@@ -1055,14 +1055,9 @@
 			return -1;
 		if (obj->flags & UNINTERESTING) {
 			mark_parents_uninteresting(commit);
-			if (revs->show_all)
-				p = &commit_list_insert(commit, p)->next;
 			slop = still_interesting(list, date, slop, &interesting_cache);
 			if (slop)
 				continue;
-			/* If showing all, add the whole pending list to the end */
-			if (revs->show_all)
-				*p = list;
 			break;
 		}
 		if (revs->min_age != -1 && (commit->date > revs->min_age))
@@ -1854,8 +1849,6 @@
 		revs->dense = 1;
 	} else if (!strcmp(arg, "--sparse")) {
 		revs->dense = 0;
-	} else if (!strcmp(arg, "--show-all")) {
-		revs->show_all = 1;
 	} else if (!strcmp(arg, "--in-commit-order")) {
 		revs->tree_blobs_in_commit_order = 1;
 	} else if (!strcmp(arg, "--remove-empty")) {
@@ -3062,8 +3055,6 @@
 		return commit_ignore;
 	if (revs->unpacked && has_sha1_pack(commit->object.oid.hash))
 		return commit_ignore;
-	if (revs->show_all)
-		return commit_show;
 	if (commit->object.flags & UNINTERESTING)
 		return commit_ignore;
 	if (revs->min_age != -1 &&
@@ -3162,7 +3153,6 @@
 	enum commit_action action = get_commit_action(revs, commit);
 
 	if (action == commit_show &&
-	    !revs->show_all &&
 	    revs->prune && revs->dense && want_ancestry(revs)) {
 		/*
 		 * --full-diff on simplified parents is no good: it
diff --git a/revision.h b/revision.h
index d7a35c8..187406b 100644
--- a/revision.h
+++ b/revision.h
@@ -90,7 +90,6 @@
 	unsigned int	dense:1,
 			prune:1,
 			no_walk:2,
-			show_all:1,
 			remove_empty_trees:1,
 			simplify_history:1,
 			topo_order:1,
diff --git a/t/t6015-rev-list-show-all-parents.sh b/t/t6015-rev-list-show-all-parents.sh
deleted file mode 100755
index 3c73c93..0000000
--- a/t/t6015-rev-list-show-all-parents.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-test_description='--show-all --parents does not rewrite TREESAME commits'
-
-. ./test-lib.sh
-
-test_expect_success 'set up --show-all --parents test' '
-	test_commit one foo.txt &&
-	commit1=$(git rev-list -1 HEAD) &&
-	test_commit two bar.txt &&
-	commit2=$(git rev-list -1 HEAD) &&
-	test_commit three foo.txt &&
-	commit3=$(git rev-list -1 HEAD)
-	'
-
-test_expect_success '--parents rewrites TREESAME parents correctly' '
-	echo $commit3 $commit1 > expected &&
-	echo $commit1 >> expected &&
-	git rev-list --parents HEAD -- foo.txt > actual &&
-	test_cmp expected actual
-	'
-
-test_expect_success '--parents --show-all does not rewrites TREESAME parents' '
-	echo $commit3 $commit2 > expected &&
-	echo $commit2 $commit1 >> expected &&
-	echo $commit1 >> expected &&
-	git rev-list --parents --show-all HEAD -- foo.txt > actual &&
-	test_cmp expected actual
-	'
-
-test_done
