forked from qt-creator/qt-creator
DiffEditor: Support patch with empty new/deleted file
Change-Id: Ic0341239309be3eae1ab2faf296bc6a698acebb0 Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
204de740ec
commit
b8df1a9b55
@@ -468,6 +468,12 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data()
|
|||||||
"+++ /dev/null\n"
|
"+++ /dev/null\n"
|
||||||
"@@ -1 +0,0 @@\n"
|
"@@ -1 +0,0 @@\n"
|
||||||
"-foo\n"
|
"-foo\n"
|
||||||
|
"diff --git a/empty b/empty\n"
|
||||||
|
"new file mode 100644\n"
|
||||||
|
"index 0000000..e69de29\n"
|
||||||
|
"diff --git a/empty b/empty\n"
|
||||||
|
"deleted file mode 100644\n"
|
||||||
|
"index e69de29..0000000\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
FileData fileData1;
|
FileData fileData1;
|
||||||
@@ -551,8 +557,16 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data()
|
|||||||
chunkData4.rows = rows4;
|
chunkData4.rows = rows4;
|
||||||
fileData4.chunks.append(chunkData4);
|
fileData4.chunks.append(chunkData4);
|
||||||
|
|
||||||
|
FileData fileData5;
|
||||||
|
fileData5.leftFileInfo = DiffFileInfo(QLatin1String("empty"), QLatin1String("0000000"));
|
||||||
|
fileData5.rightFileInfo = DiffFileInfo(QLatin1String("empty"), QLatin1String("e69de29"));
|
||||||
|
|
||||||
|
FileData fileData6;
|
||||||
|
fileData6.leftFileInfo = DiffFileInfo(QLatin1String("empty"), QLatin1String("e69de29"));
|
||||||
|
fileData6.rightFileInfo = DiffFileInfo(QLatin1String("empty"), QLatin1String("0000000"));
|
||||||
|
|
||||||
QList<FileData> fileDataList;
|
QList<FileData> fileDataList;
|
||||||
fileDataList << fileData1 << fileData2 << fileData3 << fileData4;
|
fileDataList << fileData1 << fileData2 << fileData3 << fileData4 << fileData5 << fileData6;
|
||||||
|
|
||||||
QTest::newRow("Git patch") << patch
|
QTest::newRow("Git patch") << patch
|
||||||
<< fileDataList;
|
<< fileDataList;
|
||||||
|
@@ -847,8 +847,10 @@ static FileData readGitHeaderAndChunks(const QString &headerAndChunks,
|
|||||||
+ rightFileName
|
+ rightFileName
|
||||||
+ QLatin1String(" differ$)"));
|
+ QLatin1String(" differ$)"));
|
||||||
|
|
||||||
// followed either by leftFileRegExp or by binaryRegExp
|
// empty or followed either by leftFileRegExp or by binaryRegExp
|
||||||
if (leftFileRegExp.indexIn(patch, 0) == 0) {
|
if (patch.isEmpty() && (fileData.leftFileInfo.devNull || fileData.rightFileInfo.devNull)) {
|
||||||
|
readOk = true;
|
||||||
|
} else if (leftFileRegExp.indexIn(patch, 0) == 0) {
|
||||||
patch = patch.mid(leftFileRegExp.capturedTexts().at(1).count());
|
patch = patch.mid(leftFileRegExp.capturedTexts().at(1).count());
|
||||||
|
|
||||||
// followed by rightFileRegExp
|
// followed by rightFileRegExp
|
||||||
|
Reference in New Issue
Block a user