Exemplo n.º 1
0
        internal protected virtual VersionControlOperation GetSupportedOperations(VersionInfo vinfo)
        {
            VersionControlOperation operations = VersionControlOperation.None;
            bool exists = !vinfo.LocalPath.IsNullOrEmpty && (File.Exists(vinfo.LocalPath) || Directory.Exists(vinfo.LocalPath));

            if (vinfo.IsVersioned)
            {
                operations = VersionControlOperation.Commit | VersionControlOperation.Update | VersionControlOperation.Log;
                if (exists)
                {
                    operations |= VersionControlOperation.Remove;
                    if (vinfo.HasLocalChanges || vinfo.IsDirectory)
                    {
                        operations |= VersionControlOperation.Revert;
                    }
                }
                if (AllowLocking && !vinfo.IsDirectory)
                {
                    if (!vinfo.HasLocalChanges && (vinfo.Status & VersionStatus.LockOwned) == 0)
                    {
                        operations |= VersionControlOperation.Lock;
                    }
                    if ((vinfo.Status & VersionStatus.LockOwned) != 0)
                    {
                        operations |= VersionControlOperation.Unlock;
                    }
                }
            }
            else if (exists)
            {
                operations = VersionControlOperation.Add;
            }
            return(operations);
        }
Exemplo n.º 2
0
        protected override VersionControlOperation GetSupportedOperations(VersionInfo vinfo)
        {
            VersionControlOperation operations = VersionControlOperation.None;
            bool exists = !vinfo.LocalPath.IsNullOrEmpty && (File.Exists(vinfo.LocalPath) || Directory.Exists(vinfo.LocalPath));

            if (vinfo.IsVersioned)
            {
                if (exists)
                {
                    operations = VersionControlOperation.Update | VersionControlOperation.Log | VersionControlOperation.Remove | VersionControlOperation.Annotate;
                    if (vinfo.HasLocalChanges || vinfo.IsDirectory)
                    {
                        operations |= VersionControlOperation.Revert | VersionControlOperation.Commit;
                    }
                    if ((vinfo.Status & VersionStatus.Conflicted) == VersionStatus.Conflicted)
                    {
                        operations |= VersionControlOperation.Revert;
                    }
                }
            }
            else if (exists)
            {
                operations = VersionControlOperation.Add;
            }
            return(operations);
        }
Exemplo n.º 3
0
        internal protected virtual Task <VersionControlOperation> GetSupportedOperationsAsync(VersionInfo vinfo, CancellationToken cancellationToken = default)
        {
            VersionControlOperation operations = VersionControlOperation.None;
            bool exists = !vinfo.LocalPath.IsNullOrEmpty && (File.Exists(vinfo.LocalPath) || Directory.Exists(vinfo.LocalPath));

            if (vinfo.IsVersioned)
            {
                operations = VersionControlOperation.Commit | VersionControlOperation.Update;
                if (!vinfo.HasLocalChange(VersionStatus.ScheduledAdd))
                {
                    operations |= VersionControlOperation.Log;
                }

                if (exists)
                {
                    if (!vinfo.HasLocalChange(VersionStatus.ScheduledDelete))
                    {
                        operations |= VersionControlOperation.Remove;
                    }
                    if (vinfo.HasLocalChanges || vinfo.IsDirectory)
                    {
                        operations |= VersionControlOperation.Revert;
                    }
                }
                if (AllowLocking && !vinfo.IsDirectory)
                {
                    if (!vinfo.HasLocalChanges && (vinfo.Status & VersionStatus.LockOwned) == 0)
                    {
                        operations |= VersionControlOperation.Lock;
                    }
                    if ((vinfo.Status & VersionStatus.LockOwned) != 0)
                    {
                        operations |= VersionControlOperation.Unlock;
                    }
                }
            }
            else if (exists)
            {
                operations = VersionControlOperation.Add;
            }
            return(Task.FromResult(operations));
        }
		internal protected virtual VersionControlOperation GetSupportedOperations (Repository repo, VersionInfo vinfo, VersionControlOperation defaultValue)
		{
			if (vinfo.IsVersioned && File.Exists (vinfo.LocalPath) && !Directory.Exists (vinfo.LocalPath) && vinfo.HasLocalChange (VersionStatus.ScheduledDelete))
				defaultValue |= VersionControlOperation.Add;
			return defaultValue;
		}
 internal protected virtual VersionControlOperation GetSupportedOperations(Repository repo, VersionInfo vinfo, VersionControlOperation defaultValue)
 {
     if (vinfo.IsVersioned && File.Exists(vinfo.LocalPath) && !Directory.Exists(vinfo.LocalPath) && vinfo.HasLocalChange(VersionStatus.ScheduledDelete))
     {
         defaultValue |= VersionControlOperation.Add;
     }
     return(defaultValue);
 }
Exemplo n.º 6
0
 public bool SupportsOperation(VersionControlOperation op)
 {
     return((AllowedOperations & op) != 0);
 }
Exemplo n.º 7
0
		public bool SupportsOperation (VersionControlOperation op)
		{
			return (AllowedOperations & op) != 0;
		}
Exemplo n.º 8
0
 internal async Task InitAsync(Repository repo, CancellationToken cancellationToken = default)
 {
     ownerRepository = repo;
     RequiresRefresh = false;
     operations      = await ownerRepository.GetSupportedOperationsAsync(this, cancellationToken).ConfigureAwait(false);
 }