Description

FPackageStoreBulkDataManifest:: Data ** is not sorted. It generates a difference,

Here's a workaround

void FPackageStoreBulkDataManifest::Save()
{
	TUniquePtr<FArchive> BinArchive(IFileManager::Get().CreateFileWriter(*Filename));
	BinArchive->UsingCustomVersion(FBulkDataManifestVersion::GUID);

	// Take the versions from the archive and serialize them out
	// NOTE: Serializing out now means we cannot add additional versions while serializing
	// it is assumed that we are only using FBulkDataManifestVersion::GUID
	FCustomVersionContainer CustomVersions = BinArchive->GetCustomVersions();
	CustomVersions.Serialize(*BinArchive);

	Data.KeyStableSort([](const FString& A, const FString& B){	return A < B;	}); //workaround
	*BinArchive << Data;
}

Steps to Reproduce
  1. Create a project
  2. Package the project
  3. Copy Saved/Cooked/S witch/[ProjectName]/Metadata/BulkDataInfo.ubulkmanifest to a different location
  4. Package the project again
  5. Diff the asset files

Result : 

There is a difference between the two files

 

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-138846 in the post.

0
Login to Vote

Cannot Reproduce
ComponentUE - Foundation - Core - Cooker
Affects Versions4.25plus4.264.27
Target Fix4.27.2
CreatedJan 11, 2022
ResolvedMay 20, 2022
UpdatedJun 8, 2022