Class TransportGitAnon

All Implemented Interfaces:
AutoCloseable, PackTransport

class TransportGitAnon extends TcpTransport implements PackTransport
Transport through a git-daemon waiting for anonymous TCP connections.

This transport supports the git:// protocol, usually run on the IANA registered port 9418. It is a popular means for distributing open source projects, as there are no authentication or authorization overheads.

  • Field Details

  • Constructor Details

    • TransportGitAnon

      TransportGitAnon(Repository local, URIish uri)
    • TransportGitAnon

      TransportGitAnon(URIish uri)
  • Method Details

    • openFetch

      public FetchConnection openFetch() throws TransportException
      Begins a new connection for fetching from the remote repository.

      If the transport has no local repository, the fetch connection can only be used for reading remote refs.

      Specified by:
      openFetch in class Transport
      Returns:
      a fresh connection to fetch from the remote repository.
      Throws:
      TransportException - the remote connection could not be established.
    • openFetch

      public FetchConnection openFetch(Collection<RefSpec> refSpecs, String... additionalPatterns) throws NotSupportedException, TransportException
      Description copied from class: Transport
      Begins a new connection for fetching from the remote repository.

      If the transport has no local repository, the fetch connection can only be used for reading remote refs.

      If the server supports git protocol V2, the RefSpecs and the additional patterns, if any, are used to restrict the server's ref advertisement to matching refs only.

      Transports that want to support git protocol V2 must override this; the default implementation ignores its arguments and calls Transport.openFetch().

      Overrides:
      openFetch in class Transport
      Parameters:
      refSpecs - that will be fetched via FetchConnection.fetch(ProgressMonitor, Collection, java.util.Set, OutputStream) later
      additionalPatterns - that will be set as ref prefixes if the server supports git protocol V2; null values are ignored
      Returns:
      a fresh connection to fetch from the remote repository.
      Throws:
      NotSupportedException - the implementation does not support fetching.
      TransportException - the remote connection could not be established.
    • openPush

      public PushConnection openPush() throws TransportException
      Begins a new connection for pushing into the remote repository.
      Specified by:
      openPush in class Transport
      Returns:
      a fresh connection to push into the remote repository.
      Throws:
      TransportException - the remote connection could not be established
    • close

      public void close()

      Close any resources used by this transport.

      If the remote repository is contacted by a network socket this method must close that network socket, disconnecting the two peers. If the remote repository is actually local (same system) this method must close any open file handles used to read the "remote" repository.

      AutoClosable.close() declares that it throws Exception. Implementers shouldn't throw checked exceptions. This override narrows the signature to prevent them from doing so.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in class Transport
    • openConnection

      Socket openConnection() throws TransportException
      Throws:
      TransportException
    • service

      void service(String name, PacketLineOut pckOut, TransferConfig.ProtocolVersion gitProtocol) throws IOException
      Throws:
      IOException