1 #ifndef GITOBJECTMANAGER_H
2 #define GITOBJECTMANAGER_H
24 static void applyDelta(QByteArray
const *base, QByteArray
const *delta, QByteArray *out);
38 static QStringList
findObject(
const QString &
id,
const QString &repo_local_dir);
94 case TREE: t =
"TREE";
break;
95 case BLOB: t =
"BLOB";
break;
97 return QString(
"GitTreeItem:{ %1 %2 %3 %4 }").arg(t).arg(
id).arg(
mode).arg(
name);
void parseGitTreeObject(QByteArray const &ba, const QString &path_prefix, GitTreeItemList *out)
Definition: GitObjectManager.cpp:451
QList< GitTreeItem > GitTreeItemList
Definition: GitObjectManager.h:101
std::shared_ptr< GitPackIdxV2 > GitPackIdxPtr
Definition: GitPackIdxV2.h:68
Definition: GitObjectManager.h:103
GitCommitTree(GitObjectCache *objcache)
Definition: GitDiff.cpp:312
GitTreeItemList const * treelist() const
Definition: GitObjectManager.h:121
std::map< QString, GitTreeItem > blob_map
Definition: GitObjectManager.h:108
GitTreeItemList root_item_list
Definition: GitObjectManager.h:106
std::map< QString, QString > tree_id_map
Definition: GitObjectManager.h:109
QString parseCommit(GitRunner g, const Git::Hash &commit_id)
Definition: GitDiff.cpp:396
QString lookup_(GitRunner g, QString const &file, GitTreeItem *out)
Definition: GitDiff.cpp:317
void parseTree(GitRunner g, QString const &tree_id)
Definition: GitDiff.cpp:391
GitObjectCache * objcache
Definition: GitObjectManager.h:105
QString lookup(GitRunner g, QString const &file)
Definition: GitDiff.cpp:371
Definition: GitObjectManager.h:70
static bool parseCommit(GitRunner g, GitObjectCache *objcache, Git::Hash const &id, GitCommit *out)
Definition: GitObjectManager.cpp:421
QString tree_id
Definition: GitObjectManager.h:72
QStringList parents
Definition: GitObjectManager.h:73
Definition: GitObjectManager.h:41
GitObjectManager object_manager_
Definition: GitObjectManager.h:50
Git::Hash const & item_id(int i) const
Definition: GitObjectManager.h:64
size_t size() const
Definition: GitObjectManager.cpp:284
void clear()
Definition: GitObjectManager.cpp:293
std::vector< ItemPtr > items_
Definition: GitObjectManager.h:52
std::mutex * mutex_
Definition: GitObjectManager.h:49
std::map< QString, Git::Hash > rev_parse_map_
Definition: GitObjectManager.h:53
Git::Object catFile(GitRunner g, const Git::Hash &id)
Definition: GitObjectManager.cpp:339
GitObjectCache(std::mutex *mutex=nullptr)
Definition: GitObjectManager.h:56
std::shared_ptr< Item > ItemPtr
Definition: GitObjectManager.h:51
Git::Hash revParse(GitRunner g, QString const &name)
Definition: GitObjectManager.cpp:300
Definition: GitObjectManager.h:16
QString findObjectPath(GitRunner g, const Git::Hash &id)
Definition: GitObjectManager.cpp:197
void loadIndexes(GitRunner g, std::mutex *mutex)
Definition: GitObjectManager.cpp:33
QString subdir_git_objects_pack
Definition: GitObjectManager.h:21
GitObjectManager(std::mutex *mutex)
Definition: GitObjectManager.cpp:15
static void applyDelta(QByteArray const *base, QByteArray const *delta, QByteArray *out)
Definition: GitObjectManager.cpp:62
void clearIndexes()
Definition: GitObjectManager.cpp:57
void init()
Definition: GitObjectManager.cpp:22
std::mutex * mutex_
Definition: GitObjectManager.h:19
std::vector< GitPackIdxPtr > git_idx_list
Definition: GitObjectManager.h:22
QString subdir_git_objects
Definition: GitObjectManager.h:20
static bool loadPackedObject(GitPackIdxPtr const &idx, QIODevice *packfile, GitPackIdxItem const *item, GitPack::Object *out)
Definition: GitObjectManager.cpp:119
void setup()
Definition: GitObjectManager.cpp:28
bool extractObjectFromPackFile(GitPackIdxPtr const &idx, GitPackIdxItem const *item, GitPack::Object *out)
Definition: GitObjectManager.cpp:154
bool loadObject(GitRunner g, const Git::Hash &id, QByteArray *out, Git::Object::Type *type)
Definition: GitObjectManager.cpp:241
static QStringList findObject(const QString &id, const QString &repo_local_dir)
GitObjectManager::findObject.
Definition: GitObjectManager.cpp:502
bool catFile(GitRunner g, const Git::Hash &id, QByteArray *out, Git::Object::Type *type)
Definition: GitObjectManager.cpp:274
Definition: GitPackIdxV2.h:20
Definition: GitObjectManager.h:43
QByteArray ba
Definition: GitObjectManager.h:45
Git::Object::Type type
Definition: GitObjectManager.h:46
Git::Hash id
Definition: GitObjectManager.h:44
Definition: GitPackIdxV2.h:10
Definition: GitObjectManager.h:78
QString mode
Definition: GitObjectManager.h:88
Type
Definition: GitObjectManager.h:79
@ TREE
Definition: GitObjectManager.h:81
@ UNKNOWN
Definition: GitObjectManager.h:80
@ COMMIT
Definition: GitObjectManager.h:83
@ BLOB
Definition: GitObjectManager.h:82
QString name
Definition: GitObjectManager.h:86
QString id
Definition: GitObjectManager.h:87
QString to_string_() const
Definition: GitObjectManager.h:90
Type type
Definition: GitObjectManager.h:85