SSH: Fix upload of symbolic links

This was broken in d7178b88c4.

Fixes: QTCREATORBUG-22307
Change-Id: I75eef7767acd15d0a3cbef50ebe72ebf6987e8bb
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Christian Kandeler
2019-04-17 16:31:53 +02:00
parent 331c3d7782
commit 7f0663dede

View File

@@ -157,6 +157,7 @@ void SftpTransfer::doStart()
}
}
for (const FileToTransfer &f : d->files) {
QString sourceFileOrLinkTarget;
bool link = false;
if (d->transferType == Internal::FileTransferType::Upload) {
QFileInfo fi(f.sourceFile);
@@ -164,10 +165,13 @@ void SftpTransfer::doStart()
link = true;
d->batchFile.write("-rm " + QtcProcess::quoteArgUnix(f.targetFile).toLocal8Bit()
+ '\n');
sourceFileOrLinkTarget = fi.dir().relativeFilePath(fi.symLinkTarget()); // see QTBUG-5817.
} else {
sourceFileOrLinkTarget = f.sourceFile;
}
}
d->batchFile.write(d->transferCommand(link) + ' '
+ QtcProcess::quoteArgUnix(f.sourceFile).toLocal8Bit() + ' '
+ QtcProcess::quoteArgUnix(sourceFileOrLinkTarget).toLocal8Bit() + ' '
+ QtcProcess::quoteArgUnix(f.targetFile).toLocal8Bit() + '\n');
}
d->batchFile.flush();