in src/Artifacts/Tasks/Robocopy.cs [50:80]
private void CopyFile(FileInfo sourceFile, FileInfo destFile, bool createDirs, RobocopyMetadata metadata)
{
if (createDirs)
{
CreateDirectoryWithRetries(destFile.DirectoryName);
}
for (int retry = 0; retry <= RetryCount; ++retry)
{
try
{
if (metadata.ShouldCopy(FileSystem, sourceFile, destFile))
{
destFile = FileSystem.CopyFile(sourceFile, destFile.FullName, true);
destFile.Attributes = FileAttributes.Normal;
destFile.LastWriteTime = sourceFile.LastWriteTime;
Log.LogMessage(MessageImportance.Low, "Copied {0} to {1}", sourceFile.FullName, destFile.FullName);
}
else
{
Log.LogMessage(MessageImportance.Low, "Skipped copying {0} to {1}", sourceFile.FullName, destFile.FullName);
}
break;
}
catch (IOException e)
{
LogCopyFailureAndSleep(retry, "Failed to copy {0} to {1}. {2}", sourceFile.FullName, destFile.FullName, e.Message);
}
}
}