'Retrieve a pack from a git smart server.
:param path: Remote path to fetch from
:param determine_wants: Function determine what refs
to fetch. Receives dictionary of name->sha, should return
list of shas to fetch.
:param graph_walker: Object with next() and ack().
:param pack_data: Callback called for each bit of data in the pack
:param progress: Callback for progress reports (strings)
:return: FetchPackResult object'

def fetch_pack(self, path, determine_wants, graph_walker, pack_data, progress=None):

    raise NotImplementedError(self.fetch_pack)
