mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 07:08:10 +00:00
HackStudio: Add functionality to GitRepo object
Added functionality for: - Original files contents (without the current changes) - Unstaged diffs - Checking whether a file is tracked
This commit is contained in:
parent
8306a84967
commit
ba11082b4b
2 changed files with 22 additions and 0 deletions
|
@ -129,4 +129,23 @@ bool GitRepo::commit(const String& message)
|
||||||
{
|
{
|
||||||
return !command({ "commit", "-m", message }).is_null();
|
return !command({ "commit", "-m", message }).is_null();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<String> GitRepo::original_file_content(const LexicalPath& file) const
|
||||||
|
{
|
||||||
|
return command({ "show", String::format("HEAD:%s", file.string().characters()) });
|
||||||
|
}
|
||||||
|
|
||||||
|
Optional<String> GitRepo::unstaged_diff(const LexicalPath& file) const
|
||||||
|
{
|
||||||
|
return command({ "diff", file.string().characters() });
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GitRepo::is_tracked(const LexicalPath& file) const
|
||||||
|
{
|
||||||
|
auto res = command({ "ls-files", file.string() });
|
||||||
|
if (res.is_null())
|
||||||
|
return false;
|
||||||
|
return !res.is_empty();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,9 @@ public:
|
||||||
bool stage(const LexicalPath& file);
|
bool stage(const LexicalPath& file);
|
||||||
bool unstage(const LexicalPath& file);
|
bool unstage(const LexicalPath& file);
|
||||||
bool commit(const String& message);
|
bool commit(const String& message);
|
||||||
|
Optional<String> original_file_content(const LexicalPath& file) const;
|
||||||
|
Optional<String> unstaged_diff(const LexicalPath& file) const;
|
||||||
|
bool is_tracked(const LexicalPath& file) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static String command_wrapper(const Vector<String>& command_parts, const LexicalPath& chdir);
|
static String command_wrapper(const Vector<String>& command_parts, const LexicalPath& chdir);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue