diff options
| author | Andre Hartmann <aha_1980@gmx.de> | 2025-07-22 11:18:00 +0200 |
|---|---|---|
| committer | André Hartmann <aha_1980@gmx.de> | 2025-08-04 10:07:58 +0000 |
| commit | f8a0faca9220b4527be9cd776dd10b2f0fb6bd9c (patch) | |
| tree | 72e4409492084ed2728b16464549df242ff71d93 /src/plugins/git/gitclient.cpp | |
| parent | 546fb6e7590b7173e071e858bc949114c466c8ce (diff) | |
Git: SubmitEditor: Add actions for conflicted files
Change-Id: I2368eb97faf844cd010b005fc19691fec30242d7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/git/gitclient.cpp')
| -rw-r--r-- | src/plugins/git/gitclient.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index cdab58ba9e6..0cec33116bd 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1032,6 +1032,27 @@ void GitClient::requestReload(const QString &documentId, const FilePath &source, controller->requestReload(); } +/** + * Returns \c true if \a filePath has all merge conflicts resolved. + * + * If the \a filePath still contains conflict markers, \c false is returned. + */ +bool GitClient::isConflictFree(const Utils::FilePath &workingDirectory, + const Utils::FilePath &filePath, + DiffMode diffMode) const +{ + QStringList args = {"-c", "core.whitespace=nowarn", "diff", "--check"}; + if (diffMode == GitClient::Staged) + args.append("--cached"); + args.append(filePath.path()); + + RunFlags flags = RunFlags::ShowStdOut; + + const CommandResult result = vcsSynchronousExec(workingDirectory, args, flags, vcsTimeoutS(), + encoding(EncodingLogOutput, workingDirectory)); + return result.result() == ProcessResult::FinishedWithSuccess; +} + void GitClient::diffFiles(const FilePath &workingDirectory, const QStringList &unstagedFileNames, const QStringList &stagedFileNames) const |
