Пример #1
0
        internal SvnStatusEventArgs(sbyte *path, svn_client_status_t status, SvnClientContext client, AprPool pool)
        {
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }
            if (status == null)
            {
                throw new ArgumentNullException(nameof(status));
            }
            if (pool == null)
            {
                throw new ArgumentNullException(nameof(pool));
            }

            _pPath  = path;
            _status = status;
            _pool   = pool;
            _client = client;

            Versioned  = status.versioned;
            Conflicted = status.conflicted;
            NodeKind   = (SvnNodeKind)status.kind;
            FileLength = (status.filesize >= 0) ? status.filesize : -1;

            LocalNodeStatus     = (SvnStatus)status.node_status;
            LocalTextStatus     = (SvnStatus)status.text_status;
            LocalPropertyStatus = (SvnStatus)status.prop_status;

            Wedged      = status.wc_is_locked;
            LocalCopied = status.copied;
            Revision    = status.revision;

            LastChangeRevision = status.changed_rev;
            LastChangeTime     = SvnBase.DateTimeFromAprTime(status.changed_date);

            Switched       = status.switched;
            IsFileExternal = status.file_external;
            Depth          = (SvnDepth)status.depth;

            RemoteNodeStatus     = (SvnStatus)status.repos_node_status;
            RemoteTextStatus     = (SvnStatus)status.repos_text_status;
            RemotePropertyStatus = (SvnStatus)status.repos_prop_status;

            RemoteUpdateRevision = status.ood_changed_rev;
            if (status.ood_changed_rev != -1)
            {
                RemoteUpdateCommitTime = SvnBase.DateTimeFromAprTime(status.ood_changed_date);
                RemoteUpdateNodeKind   = (SvnNodeKind)status.ood_kind;
            }
        }
Пример #2
0
        internal SvnClientContext(AprPool pool, SvnClientContext client)
        {
            if (client is null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            _ctxBaton = new AprBaton <SvnClientContext>(this);

            _pool   = pool;
            _parent = client;

            _ctx            = client.CtxHandle;
            _authentication = client.Authentication;
        }
Пример #3
0
        protected internal override void Detach(bool keepProperties)
        {
            try
            {
                if (keepProperties)
                {
                    // Use all properties to get them cached in .Net memory
                    GC.KeepAlive(FullPath);
                    GC.KeepAlive(Path);
                    GC.KeepAlive(LastChangeAuthor);
                    GC.KeepAlive(RepositoryRoot);
                    GC.KeepAlive(RepositoryIdValue);
                    GC.KeepAlive(Uri);
                    GC.KeepAlive(LocalLock);
                    GC.KeepAlive(ChangeList);

                    GC.KeepAlive(RemoteLock);
                    GC.KeepAlive(RemoteUpdateCommitAuthor);
                    GC.KeepAlive(WorkingCopyInfo);
                    GC.KeepAlive(MovedFrom);
                    GC.KeepAlive(MovedTo);
                }

                if (_localLock != null)
                {
                    _localLock.Detach(keepProperties);
                }
                if (_reposLock != null)
                {
                    _reposLock.Detach(keepProperties);
                }
                if (_wcInfo != null)
                {
                    _wcInfo.Detach(keepProperties);
                }
            }
            finally
            {
                _pPath  = null;
                _status = null;
                _pool   = null;
                _client = null;
                base.Detach(keepProperties);
            }
        }
Пример #4
0
        internal static SvnCommittedEventArgs Create(SvnClientContext client, svn_commit_info_t commitInfo, AprPool pool)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            if (pool == null)
            {
                throw new ArgumentNullException(nameof(pool));
            }

            if (commitInfo == null || (commitInfo.revision <= 0L))
            {
                return(null);
            }

            return(new SvnCommittedEventArgs(commitInfo, pool));
        }
Пример #5
0
        internal SvnWorkingCopyInfo(svn_client_status_t status, SvnClientContext client, AprPool pool)
        {
            if (status == null)
            {
                throw new ArgumentNullException(nameof(status));
            }
            else if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            else if (pool == null)
            {
                throw new ArgumentNullException(nameof(pool));
            }

            _client = client;
            _status = status;
            _pool   = pool;
        }
Пример #6
0
 internal SvnClientConfiguration(SvnClientContext client)
 {
     _client = client ?? throw new ArgumentNullException(nameof(client));
 }