diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp index fb7092c7b861ad6e7b1b1a8799ee26ab9c99f079..cc7c91b1fadd03db3966505045b6017abdf85626 100644 --- a/src/plugins/git/commitdata.cpp +++ b/src/plugins/git/commitdata.cpp @@ -90,7 +90,7 @@ static FileStates stateFor(const QChar &c) { switch (c.unicode()) { case ' ': - return UntrackedFile; + return EmptyFileState; case 'M': return ModifiedFile; case 'A': @@ -103,6 +103,8 @@ static FileStates stateFor(const QChar &c) return CopiedFile; case 'U': return UnmergedFile; + case '?': + return UntrackedFile; default: return UnknownFileState; } @@ -144,11 +146,10 @@ bool CommitData::checkLine(const QString &stateInfo, const QString &file) files.append(qMakePair(xState | UnmergedFile | UnmergedUs, file)); } } else { - xState |= StagedFile; - if (xState != StagedFile) - files.append(qMakePair(xState, file)); + if (xState != EmptyFileState) + files.append(qMakePair(xState | StagedFile, file)); - if (yState != UntrackedFile) { + if (yState != EmptyFileState) { QString newFile = file; if (xState & (RenamedFile | CopiedFile)) newFile = file.mid(file.indexOf(QLatin1String(" -> ")) + 4); diff --git a/src/plugins/git/commitdata.h b/src/plugins/git/commitdata.h index 40faabe4fad159539d01e88d012fe27a027b4c29..746d5d259ad14c5ce843125c85a24cc875b5b75a 100644 --- a/src/plugins/git/commitdata.h +++ b/src/plugins/git/commitdata.h @@ -64,7 +64,7 @@ struct GitSubmitEditorPanelData QDebug operator<<(QDebug d, const GitSubmitEditorPanelData &); enum FileState { - UntrackedFile = 0, + EmptyFileState = 0x00, StagedFile = 0x01, ModifiedFile = 0x02, @@ -77,6 +77,7 @@ enum FileState { UnmergedUs = 0x100, UnmergedThem = 0x200, + UntrackedFile = 0x400, UnknownFileState = 0x800 }; Q_DECLARE_FLAGS(FileStates, FileState) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 730854ab17914974a1b5b7f70a0235fcd09bd945..82637b7b1fa6ff0dcbc97270c6e88ed0db179077 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1804,7 +1804,8 @@ bool GitClient::getCommitData(const QString &workingDirectory, // MM filename // A new_unstaged_file // R old -> new - // ?? missing_file + // D deleted_file + // ?? untracked_file if (status != StatusUnchanged) { if (!commitData->parseFilesFromStatus(output)) { *errorMessage = msgParseFilesFailed();