public void Publish(string sourceDirectory, string destionationDirectory, string version, int numberOfVersionsAsDelta)
{
sourceDirectory = PathUtils.AddTrailingSlash(sourceDirectory);
destionationDirectory = PathUtils.AddTrailingSlash(destionationDirectory);
string destinationVersionDirectory = PathUtils.AddTrailingSlash(Path.Combine(destionationDirectory, version));
CopyFiles(sourceDirectory, destinationVersionDirectory);
VersionManifest manifest = VersionManifest.GenerateFromDirectory(version, sourceDirectory);
GenerateDeltas(manifest, sourceDirectory, destionationDirectory, version, numberOfVersionsAsDelta);
manifest.SaveToFile(Path.Combine(destinationVersionDirectory, "manifest.xml"));
SaveConfigFile(destionationDirectory, version);
}