Exemplo n.º 1
0
 public bool Delete(IEnumerable <string> assets, OperationMode mode = OperationMode.Force)
 {
     return(HandleExceptions(() =>
     {
         var beforeStatus = StoreCurrentStatus(assets);
         if (!OnOperationStarting(OperationType.Delete, beforeStatus))
         {
             return false;
         }
         bool filesOSDeleted = false;
         var deleteAssets = new List <string>();
         foreach (string assetIt in assets)
         {
             var metaAsset = assetIt + VCCAddMetaFiles.metaStr;
             if (GetAssetStatus(assetIt).fileStatus != VCFileStatus.Unversioned)
             {
                 deleteAssets.Add(metaAsset);
                 deleteAssets.Add(assetIt);
             }
             else
             {
                 if (File.Exists(metaAsset))
                 {
                     File.SetAttributes(metaAsset, FileAttributes.Normal);
                     File.Delete(metaAsset);
                     filesOSDeleted = true;
                 }
                 if (File.Exists(assetIt))
                 {
                     File.SetAttributes(assetIt, FileAttributes.Normal);
                     File.Delete(assetIt);
                     filesOSDeleted = true;
                 }
                 if (Directory.Exists(assetIt))
                 {
                     foreach (var subDirFile in Directory.GetFiles(assetIt, "*", SearchOption.AllDirectories))
                     {
                         File.SetAttributes(subDirFile, FileAttributes.Normal);
                         File.Delete(subDirFile);
                     }
                     Directory.Delete(assetIt, true);
                     filesOSDeleted = true;
                 }
             }
         }
         bool result = vcc.Delete(deleteAssets, mode);
         AssetDatabaseRefreshManager.RequestAssetDatabaseRefresh();
         if (filesOSDeleted)
         {
             AssetDatabaseRefreshManager.RefreshAssetDatabase();
         }
         var afterStatus = StoreCurrentStatus(assets);
         OnOperationCompleted(OperationType.Delete, beforeStatus, afterStatus, result || filesOSDeleted);
         return result;
     }));
 }
Exemplo n.º 2
0
        public void AddAndRemoveFile()
        {
            const string fileA = "fileA.txt";
            var          fs    = File.Create(workingDirectoryForSVNTests + "\\" + fileA, 10);

            fs.Close();

            vcc.Status(StatusLevel.Local, DetailLevel.Normal);
            var status = vcc.GetAssetStatus(fileA);

            Assert.IsTrue(status.assetPath.Compose() == fileA, "AssetPath mismatch: " + status.assetPath.Compose() + "!=" + fileA);
            Assert.IsTrue(status.fileStatus == VCFileStatus.Unversioned, "Unversioned");

            vcc.Add(new[] { fileA });
            vcc.Status(StatusLevel.Local, DetailLevel.Normal);
            status = vcc.GetAssetStatus(fileA);
            Assert.IsTrue(status.fileStatus == VCFileStatus.Added, "Added");

            vcc.Commit(new[] { fileA }, "AddFile Test 1/2");
            vcc.Status(StatusLevel.Local, DetailLevel.Normal);
            status = vcc.GetAssetStatus(fileA);
            Assert.IsTrue(status.fileStatus == VCFileStatus.Normal, "Normal");

            var basePath = vcc.GetBasePath(fileA);

            Assert.That(File.Exists(basePath), Is.True, "Base path exist: " + basePath);

            vcc.Delete(new[] { fileA }, OperationMode.Normal);
            vcc.Status(StatusLevel.Local, DetailLevel.Normal);
            status = vcc.GetAssetStatus(fileA);
            Assert.IsTrue(status.fileStatus == VCFileStatus.Deleted, "Deleted");

            vcc.Commit(new[] { fileA }, "AddFile Test 2/2");
            vcc.Status(StatusLevel.Local, DetailLevel.Normal);
            status = vcc.GetAssetStatus(fileA);
            Assert.That(status.Reflected, Is.False, "fileA is not present in repo");
            Assert.IsTrue(!File.Exists(workingDirectoryForSVNTests + "\\" + fileA), "File removed again");
        }
Exemplo n.º 3
0
 public virtual bool Delete(IEnumerable <string> assets, OperationMode mode)
 {
     return(vcc.Delete(assets, mode));
 }