Program Listing for File DiffController.hpp

Return to documentation for file (include\editor\featureWrapper\GitWrap\Diff\DiffController.hpp)

#pragma once

#include <optional>
#include <string>
#include <vector>

#include "editorCommit.hpp"
#include "fileNameSanitizer.hpp"
#include <git2.h>
// #include "CommitFinder.hpp"

struct lineLog {
    unsigned int linenumber;
    UNSANITIZED  text;
};

struct DiffResult {
    std::vector<lineLog> NewLines;
    std::vector<lineLog> OldLines;
};

class DiffController {
  private:
    git_diff *Dobj = nullptr;

  public:
    bool
    CommitToCommit(git_repository *repo, git_oid newID, git_oid oldID);
    bool
    CommitToNow(git_repository *repo, git_oid oldID);

    bool
    execute(DiffResult *res);

    DiffController();
    ~DiffController();
};