From 7f0663dede1c811a54a1b28e9abc556c76738928 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 17 Apr 2019 16:31:53 +0200 Subject: SSH: Fix upload of symbolic links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was broken in d7178b88c4. Fixes: QTCREATORBUG-22307 Change-Id: I75eef7767acd15d0a3cbef50ebe72ebf6987e8bb Reviewed-by: André Hartmann Reviewed-by: hjk Reviewed-by: Christian Kandeler --- src/libs/ssh/sftptransfer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libs/ssh/sftptransfer.cpp b/src/libs/ssh/sftptransfer.cpp index 7b65048a32..887d8f36fa 100644 --- a/src/libs/ssh/sftptransfer.cpp +++ b/src/libs/ssh/sftptransfer.cpp @@ -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(); -- cgit v1.2.3