public override bool Commit(IEnumerable<string> assets, string commitMessage = "")
        {
            var filesInFolders = assets.AddFilesInFolders(vcc, true).AddedOrUnversionedParentFolders(vcc).ToArray();
            var deletedInFolders = assets.AddDeletedInFolders(vcc);

            D.Log("Deleted In Folders: " + deletedInFolders.AggregateString());

            bool result =
                base.Add(filesInFolders.UnversionedInVersionedFolder(vcc)) &&
                base.Delete(filesInFolders.Missing(vcc), OperationMode.Normal) &&
                base.Commit(filesInFolders.ShortestFirst(), commitMessage) &&
                Status(assets, StatusLevel.Local) &&
                ReleaseLock(assets);

            if (result)
                RemoveFromDatabase(deletedInFolders);

            return result;
        }
Example #2
0
        public override bool Commit(IEnumerable <string> assets, string commitMessage = "")
        {
            assets = ConsistentSlash(assets);
            var filesInFolders   = ConsistentSlash(assets.AddFilesInFolders(vcc, true).AddedOrUnversionedParentFolders(vcc));
            var deletedInFolders = assets.AddDeletedInFolders(vcc);

            bool result =
                base.Add(filesInFolders.UnversionedInVersionedFolder(vcc)) &&
                base.Delete(filesInFolders.Missing(vcc), OperationMode.Normal) &&
                base.Commit(filesInFolders.ShortestFirst(), commitMessage) &&
                Status(assets, StatusLevel.Local) &&
                ReleaseLock(assets);

            if (result)
            {
                RemoveFromDatabase(deletedInFolders);
            }

            return(result);
        }
Example #3
0
        public bool CommitDialog(IEnumerable <string> assets, bool showUserConfirmation = true, string commitMessage = "")
        {
            int initialAssetCount = assets.Count();

            if (initialAssetCount == 0)
            {
                return(true);
            }

            assets = assets.AddFilesInFolders().AddFolders(vcc).AddMoveMatches(vcc);
            var dependencies  = VCSettings.IncludeDepedenciesAsDefault ? assets.GetDependencies().AddFilesInFolders().AddFolders(vcc).Concat(assets.AddDeletedInFolders(vcc)) : new List <string>();
            var allAssets     = assets.Concat(dependencies).Distinct().ToList();
            var localModified = allAssets.LocalModified(vcc);

            if (assets.Contains(SceneManagerUtilities.GetCurrentScenePath()))
            {
                SceneManagerUtilities.SaveCurrentModifiedScenesIfUserWantsTo();
            }
            if (PreCommit != null)
            {
                PreCommit(allAssets);
            }
            if (VCSettings.RequireLockBeforeCommit && localModified.Any())
            {
                string title   = string.Format("{0} '{1}' files?", Terminology.getlock, Terminology.localModified);
                string message = string.Format("You are trying to commit files which are '{0}'.\nDo you want to '{1}' these files first?", Terminology.localModified, Terminology.getlock);
                if (EditorUtility.DisplayDialog(title, message, Terminology.getlock, "Abort"))
                {
                    GetLock(localModified);
                }
                else
                {
                    return(false);
                }
            }
            if (showUserConfirmation || initialAssetCount < (assets.Count() + dependencies.Count()))
            {
                return(OpenCommitDialogWindow(assets, dependencies));
            }
            return(Commit(assets, commitMessage, VCSettings.NonRecursiveAdd));
        }
Example #4
0
 public override bool Revert(IEnumerable <string> assets)
 {
     assets = ConsistentSlash(assets.AddFilesInFolders(vcc, true).LongestFirst());
     return(assets.Any() ? base.Revert(assets) : true);
 }