Guitar
GitDiff.h
Go to the documentation of this file.
1 #ifndef GITDIFF_H
2 #define GITDIFF_H
3 
4 #include <set>
5 #include "common/misc.h"
6 #include "Git.h"
7 #include "GitObjectManager.h"
8 
9 class GitDiff {
10  friend class CommitListThread;
11 private:
12  class LookupTable;
13 private:
15  // QList<Git::Diff> diffs_;
16 
17  using MapList = std::list<LookupTable>;
18 
19  GitRunner git(const Git::SubmoduleItem &submod);
20 
21  static void AddItem(Git::Diff *item, QList<Git::Diff> *diffs);
22 
23  void retrieveCompleteTree(GitRunner g, QString const &dir, GitTreeItemList const *files, QList<Git::Diff> *diffs);
24 public:
26  {
27  objcache_ = objcache;
28  }
29 
30  QList<Git::Diff> diff(GitRunner g, const Git::Hash &id, const QList<Git::SubmoduleItem> &submodules);
31  QList<Git::Diff> diff_uncommited(GitRunner g, const QList<Git::SubmoduleItem> &submodules);
32 
33 public:
34  static QString diffObjects(GitRunner g, QString const &a_id, QString const &b_id);
35  static QString diffFiles(GitRunner g, QString const &a_path, QString const &b_path);
36  static Git::Diff parseDiff(std::string const &s, const Git::Diff *info);
37  static QString makeKey(const QString &a_id, const QString &b_id);
38  static QString makeKey(const Git::Diff &diff);
39  static QString prependPathPrefix(QString const &path);
40 };
41 
42 QString lookupFileID(GitRunner g, GitObjectCache *objcache, const Git::Hash &commit_id, QString const &file);
43 
44 #endif // GITDIFF_H
QString lookupFileID(GitRunner g, GitObjectCache *objcache, const Git::Hash &commit_id, QString const &file)
指定されたコミットに属するファイルのIDを求める
Definition: GitDiff.cpp:413
QList< GitTreeItem > GitTreeItemList
Definition: GitObjectManager.h:95
Definition: GitDiff.cpp:10
Definition: GitDiff.h:9
QList< Git::Diff > diff(GitRunner g, const Git::Hash &id, const QList< Git::SubmoduleItem > &submodules)
コミットの差分を取得する
Definition: GitDiff.cpp:151
friend class CommitListThread
Definition: GitDiff.h:10
static QString diffObjects(GitRunner g, QString const &a_id, QString const &b_id)
Definition: GitDiff.cpp:65
static QString prependPathPrefix(QString const &path)
Definition: GitDiff.cpp:60
GitRunner git(const Git::SubmoduleItem &submod)
Definition: GitDiff.cpp:45
static Git::Diff parseDiff(std::string const &s, const Git::Diff *info)
Definition: GitDiff.cpp:81
QList< Git::Diff > diff_uncommited(GitRunner g, const QList< Git::SubmoduleItem > &submodules)
Definition: GitDiff.cpp:305
static QString diffFiles(GitRunner g, QString const &a_path, QString const &b_path)
Definition: GitDiff.cpp:76
void retrieveCompleteTree(GitRunner g, QString const &dir, GitTreeItemList const *files, QList< Git::Diff > *diffs)
Definition: GitDiff.cpp:130
GitDiff(GitObjectCache *objcache)
Definition: GitDiff.h:25
static QString makeKey(const QString &a_id, const QString &b_id)
Definition: GitDiff.cpp:50
GitObjectCache * objcache_
Definition: GitDiff.h:14
static void AddItem(Git::Diff *item, QList< Git::Diff > *diffs)
std::list< LookupTable > MapList
Definition: GitDiff.h:17
Definition: GitObjectManager.h:40
Definition: Git.h:739
Definition: Git.h:202
Definition: Git.h:46
Definition: Git.h:95