3#include "filtering-source-accessor.hh"
27 static ref<GitRepo> openRepo(
const std::filesystem::path & path,
bool create =
false,
bool bare =
false);
29 virtual uint64_t getRevCount(
const Hash & rev) = 0;
33 virtual bool isShallow() = 0;
36 virtual Hash resolveRef(std::string
ref) = 0;
38 virtual void setRemote(
const std::string &
name,
const std::string & url) = 0;
56 std::optional<Hash> headRev;
60 std::set<CanonPath> files;
63 std::set<CanonPath> dirtyFiles;
66 std::set<CanonPath> deletedFiles;
69 std::vector<Submodule> submodules;
74 static WorkdirInfo getCachedWorkdirInfo(
const std::filesystem::path & path);
77 virtual std::optional<std::string> getWorkdirRef() = 0;
83 virtual std::vector<std::tuple<Submodule, Hash>>
getSubmodules(
const Hash & rev,
bool exportIgnore) = 0;
85 virtual std::string resolveSubmoduleUrl(
const std::string & url) = 0;
87 virtual bool hasObject(
const Hash & oid) = 0;
92 std::string displayPrefix) = 0;
98 virtual void flush() = 0;
101 const std::string & url,
102 const std::string & refspec,
111 const std::vector<fetchers::PublicKey> & publicKeys) = 0;
Definition canon-path.hh:41
Symbol create(std::string_view s)
Definition lexer.l:1018
const std::string_view & name
Definition lexer.l:1709
virtual std::optional< time_t > getLastModified()
Definition lexer.l:4585
Definition git-utils.hh:15
Definition git-utils.hh:44
Definition git-utils.hh:51
Definition git-utils.hh:23
virtual std::vector< std::tuple< Submodule, Hash > > getSubmodules(const Hash &rev, bool exportIgnore)=0
virtual Hash dereferenceSingletonDirectory(const Hash &oid)=0
virtual void verifyCommit(const Hash &rev, const std::vector< fetchers::PublicKey > &publicKeys)=0
virtual Hash treeHashToNarHash(const Hash &treeHash)=0
Definition fetchers.hh:283