'Create a new GitClient instance.
:param thin_packs: Whether or not thin packs should be retrieved
:param report_activity: Optional callback for reporting transport
activity.'

def __init__(self, thin_packs=True, report_activity=None, quiet=False):

    self._report_activity = report_activity
    self._report_status_parser = None
    self._fetch_capabilities = set(UPLOAD_CAPABILITIES)
    self._fetch_capabilities.add(capability_agent())
    self._send_capabilities = set(RECEIVE_CAPABILITIES)
    self._send_capabilities.add(capability_agent())
    if quiet:
        self._send_capabilities.add(CAPABILITY_QUIET)
    if (not thin_packs):
        self._fetch_capabilities.remove(CAPABILITY_THIN_PACK)
