private static void ReMoveAssetOnVC(string from, string to) { VersionControlStatus status = VCCommands.Instance.GetAssetStatus(from); string topUnversionedFolder; if (VCUtility.ManagedByRepository(status) && !InUnversionedParentFolder(from, out topUnversionedFolder)) { if (DisplayConfirmationDialog("Move", from, status)) { if (InUnversionedParentFolder(to, out topUnversionedFolder)) { string msg = "Versioned files are moved into an unversioned folder. Add following unversioned folder first?\n\n" + topUnversionedFolder; int result = EditorUtility.DisplayDialogComplex("Add Folder?", msg, "Yes", "No", "Cancel"); if (result == 0) { //MoveAssetBack(from, to); VCCommands.Instance.Add(new[] { topUnversionedFolder }); VCCommands.Instance.Status(new[] { topUnversionedFolder }, StatusLevel.Local); } if (result == 1) { //VCCommands.Instance.Delete(new[] { from }, OperationMode.Force); return; } if (result == 2) { MoveAssetBack(from, to); return; } } //else //{ // MoveAssetBack(from, to); //} //VCCommands.Instance.Move(from, to); AssetDatabase.Refresh(); GameObjectToAssetPathCache.ClearObjectToAssetPathCache(); } else { MoveAssetBack(from, to); } } }
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (VCCommands.Active) { D.Log("OnPostprocessAllAssets : imported: " + importedAssets.Length + ", deleted: " + deletedAssets.Length + ", moved: " + movedAssets.Length + ", movedFrom: " + movedAssets.Length); if (VCSettings.HandleFileMove == VCSettings.EHandleFileMove.Simple) { if (deletedAssets.Length == 0 && movedAssets.Length > 0 && movedAssets.Length == movedFromAssetPaths.Length) { callcount++; if (callcount == 1) { var parentFolders = RemoveFilesIfParentFolderInList(movedAssets); for (int i = 0; i < movedAssets.Length; ++i) { string from = movedFromAssetPaths[i]; string to = movedAssets[i]; if ((File.Exists(to) || Directory.Exists(to) && !File.Exists(from) && !Directory.Exists(from)) && parentFolders.Contains(to)) { ReMoveAssetOnVC(movedFromAssetPaths[i], movedAssets[i]); } } callcount--; } } } changedAssets.AddRange(importedAssets); changedAssets.AddRange(movedAssets); changedAssets.AddRange(deletedAssets); changedAssets.AddRange(movedFromAssetPaths); if (changedAssets.Count > 0) { changedAssets = changedAssets.Distinct().ToList(); VCCommands.Instance.RemoveFromDatabase(changedAssets); VCCommands.Instance.RequestStatus(changedAssets, StatusLevel.Previous); changedAssets.Clear(); } } GameObjectToAssetPathCache.ClearObjectToAssetPathCache(); }