gitcommit.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "gitcommit.h"
  2. #include <gitoid.h>
  3. #include <QDebug>
  4. #include <git2/commit.h>
  5. GitCommit::GitCommit(git_commit* raw, GitRepository* parent) : GitBase(raw, parent)
  6. {
  7. m_oid = GitOid(git_commit_id(m_raw), m_repository);
  8. }
  9. GitCommit::GitCommit() : GitBase(nullptr, nullptr)
  10. {
  11. }
  12. GitCommit* GitCommit::fromOid(const GitOid& oid)
  13. {
  14. if(!oid.isValid()) {
  15. return nullptr;
  16. }
  17. git_commit *commit;
  18. if(git_commit_lookup(&commit, oid.repository()->raw(), oid.raw()) != 0) {
  19. return nullptr;
  20. }
  21. return new GitCommit(commit, oid.repository());
  22. }
  23. GitCommit::~GitCommit()
  24. {
  25. git_commit_free(m_raw);
  26. }
  27. QString GitCommit::author() const
  28. {
  29. return QString(git_commit_author(m_raw)->name);
  30. }
  31. QDateTime GitCommit::time() const
  32. {
  33. return QDateTime::fromMSecsSinceEpoch(git_commit_time(m_raw));
  34. }
  35. QString GitCommit::message() const
  36. {
  37. return QString(git_commit_message(m_raw));
  38. }
  39. QString GitCommit::email() const
  40. {
  41. return QString(git_commit_author(m_raw)->email);
  42. }
  43. QString GitCommit::sha1() const
  44. {
  45. return oid().toString();
  46. }
  47. void GitCommit::setAuthor(QString author)
  48. {
  49. Q_UNUSED(author)
  50. //TODO
  51. }
  52. void GitCommit::setTime(QDateTime time)
  53. {
  54. Q_UNUSED(time)
  55. //TODO
  56. }
  57. void GitCommit::setMessage(QString message)
  58. {
  59. Q_UNUSED(message)
  60. //TODO
  61. }
  62. void GitCommit::setEmail(QString email)
  63. {
  64. Q_UNUSED(email)
  65. //TODO
  66. }