private static void Merge(Options.MergeOptions options) { RobustIO.DeleteDirectoryAndContents(options.WorkDir); Settings.TempDir = options.WorkDir; // restore previous data var restoreOptions = new Options.RestoreOptions(options); RestoreLanguageDepot(restoreOptions); RestoreMongoDb(restoreOptions); // run merge LfMergeHelper.Run($"--project {options.Project} --clone --action=Synchronize"); Console.WriteLine("Successfully merged test data"); // save merged data var saveOptions = new Options.SaveOptions(options) { WorkDir = Path.Combine(options.WorkDir, "LanguageDepot"), CommitMsg = options.CommitMsg ?? "Merged test data" }; SaveLanguageDepot(saveOptions); SaveLanguageDepotNoOpPatchIfNecessary(options.ModelVersion, options.LanguageDepotVersion + 1); SaveMongoDb(saveOptions); }
private static void Restore(Options.RestoreOptions options) { Settings.TempDir = options.WorkDir; if (options.LanguageDepotVersion.HasValue) { RestoreLanguageDepot(options); } if (options.MongoVersion.HasValue) { RestoreMongoDb(options); } }
private static void RestoreMongoDb(Options.RestoreOptions options) { if (!options.Project.StartsWith("sf_")) { options.Project = "sf_" + options.Project; } MongoHelper.Initialize(options.ModelVersion.ToString(), options.MongoVersion); if (_mongoHelper == null) { _mongoHelper = new MongoHelper(options.Project, true); } _mongoHelper.RestoreDatabase(options.ModelVersion.ToString(), "master"); Console.WriteLine($"Successfully restored mongo database at version {options.MongoVersion}"); }
private static void RestoreLanguageDepot(Options.RestoreOptions options) { var dir = Path.Combine(Settings.TempDir, "LanguageDepot"); RobustIO.DeleteDirectoryAndContents(dir); using (var ld = new LanguageDepotHelper(true)) { for (var i = 0; i <= options.LanguageDepotVersion.Value; i++) { ld.ApplySinglePatch(options.ModelVersion, i); } } // Now in FLEx get project from colleague from USB Console.WriteLine("Successfully restored languagedepot test data for model " + $"{options.ModelVersion}"); }