diff --git a/defines.hpp b/defines.hpp index fcaa00f1d4..60bcb091b5 100644 --- a/defines.hpp +++ b/defines.hpp @@ -3,6 +3,7 @@ #define DATA_FILE_EXTENSION ".mwm" #define DATA_FILE_EXTENSION_TMP ".mwm.tmp" #define DIFF_FILE_EXTENSION ".mwmdiff" +#define DIFF_APPLYING_FILE_EXTENSION ".diff.applying" #define FONT_FILE_EXTENSION ".ttf" #define OSM2FEATURE_FILE_EXTENSION ".osm2ft" #define EXTENSION_TMP ".tmp" diff --git a/storage/diff_scheme/diff_manager.cpp b/storage/diff_scheme/diff_manager.cpp index 4358cda4f9..d6dfcb63df 100644 --- a/storage/diff_scheme/diff_manager.cpp +++ b/storage/diff_scheme/diff_manager.cpp @@ -72,7 +72,9 @@ void Manager::ApplyDiff(ApplyDiffParams && p, std::functionGetPath(MapOptions::Map); string const newMwmPath = diffFile->GetPath(MapOptions::Map); - result = generator::mwm_diff::ApplyDiff(oldMwmPath, newMwmPath, diffPath); + string const diffApplyingInProgressPath = newMwmPath + DIFF_APPLYING_FILE_EXTENSION; + result = generator::mwm_diff::ApplyDiff(oldMwmPath, diffApplyingInProgressPath, diffPath) && + my::RenameFileX(diffApplyingInProgressPath, newMwmPath); } diffFile->DeleteFromDisk(MapOptions::Diff);