# [PATCH] transport: remove unused "push" in vtable

2 messages from 2017-12-12 to 2017-12-13. Participants: Jonathan Tan, Jeff King.
Thread: https://gitlist.dev/t/47435

## Jonathan Tan, 2017-12-12 23:10

Subject: [PATCH] transport: remove unused "push" in vtable
Message-ID: <20171212231056.256585-1-jonathantanmy@google.com>
URL: https://gitlist.dev/e/20171212231056.256585-1-jonathantanmy%40google.com

```
After commit 0d0bac67ce3b ("transport: drop support for git-over-rsync",
2016-02-01), no transport in Git populates the "push" entry in the
transport vtable. Remove this entry.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
---
I was taking a look at the transport code and noticed that push is
unused (and push_refs is used instead). Here is a code cleanup.
---
 transport.c | 9 +--------
 transport.h | 1 -
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/transport.c b/transport.c
index 7231d1b1b..7cc39b7c0 100644
--- a/transport.c
+++ b/transport.c
@@ -627,7 +627,6 @@ void transport_take_over(struct transport *transport,
 	transport->set_option = NULL;
 	transport->get_refs_list = get_refs_via_connect;
 	transport->fetch = fetch_refs_via_pack;
-	transport->push = NULL;
 	transport->push_refs = git_transport_push;
 	transport->disconnect = disconnect_git;
 	transport->smart_options = &(data->options);
@@ -969,13 +968,7 @@ int transport_push(struct transport *transport,
 	*reject_reasons = 0;
 	transport_verify_remote_names(refspec_nr, refspec);
 
-	if (transport->push) {
-		/* Maybe FIXME. But no important transport uses this case. */
-		if (flags & TRANSPORT_PUSH_SET_UPSTREAM)
-			die("This transport does not support using --set-upstream");
-
-		return transport->push(transport, refspec_nr, refspec, flags);
-	} else if (transport->push_refs) {
+	if (transport->push_refs) {
 		struct ref *remote_refs;
 		struct ref *local_refs = get_local_heads();
 		int match_flags = MATCH_REFS_NONE;
diff --git a/transport.h b/transport.h
index bc5571574..ab4fe7f27 100644
--- a/transport.h
+++ b/transport.h
@@ -103,7 +103,6 @@ struct transport {
 	 * process involved generating new commits.
 	 **/
 	int (*push_refs)(struct transport *transport, struct ref *refs, int flags);
-	int (*push)(struct transport *connection, int refspec_nr, const char **refspec, int flags);
 	int (*connect)(struct transport *connection, const char *name,
 		       const char *executable, int fd[2]);
 
-- 
2.15.1.424.g9478a66081-goog


```

## Jeff King, 2017-12-13 00:49

Subject: Re: [PATCH] transport: remove unused "push" in vtable
Message-ID: <20171213004907.GA10984@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20171213004907.GA10984%40sigill.intra.peff.net
In-Reply-To: <20171212231056.256585-1-jonathantanmy@google.com>

```
On Tue, Dec 12, 2017 at 03:10:56PM -0800, Jonathan Tan wrote:

> After commit 0d0bac67ce3b ("transport: drop support for git-over-rsync",
> 2016-02-01), no transport in Git populates the "push" entry in the
> transport vtable. Remove this entry.

Yay. Thanks for cleaning this up.

-Peff

```
