PatchTool: Enable using git instead of patch.

Git for Windows as of version 2.5 no longer ships patch.exe,
which breaks Qt Creator's patching/reverting features.
Enhance the PatchTool to be able to use git for this by automatically
prepending the 'apply' argument.

Change-Id: I5ce98ebc61e2459b855b93b7b33495575170ae99
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Friedemann Kleint
2015-08-28 08:55:15 +02:00
parent 6f2763144b
commit 59c729f864

View File

@@ -95,6 +95,12 @@ bool PatchTool::runPatch(const QByteArray &input, const QString &workingDirector
if (!workingDirectory.isEmpty()) if (!workingDirectory.isEmpty())
patchProcess.setWorkingDirectory(workingDirectory); patchProcess.setWorkingDirectory(workingDirectory);
QStringList args; QStringList args;
// Add argument 'apply' when git is used as patch command since git 2.5/Windows
// no longer ships patch.exe.
if (patch.endsWith(QLatin1String("git"), Qt::CaseInsensitive)
|| patch.endsWith(QLatin1String("git.exe"), Qt::CaseInsensitive)) {
args << QLatin1String("apply");
}
if (strip >= 0) if (strip >= 0)
args << (QLatin1String("-p") + QString::number(strip)); args << (QLatin1String("-p") + QString::number(strip));
if (reverse) if (reverse)