예제 #1
0
 internal void Detach(bool keepProperties)
 {
     try
     {
         if (keepProperties)
         {
             GC.KeepAlive(CopyFromPath);
         }
     }
     finally
     {
         _changed_path = null;
     }
 }
예제 #2
0
        internal unsafe SvnChangeItem(string path, svn_log_changed_path2_t changed_path)
        {
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }
            if (changed_path == null)
            {
                throw new ArgumentNullException(nameof(changed_path));
            }

            _changed_path    = changed_path;
            Path             = path;
            Action           = (SvnChangeAction)changed_path.action;
            _copyFromPath    = SvnBase.Utf8_PtrToString(changed_path.copyfrom_path);
            CopyFromRevision = changed_path.copyfrom_path != null ? changed_path.copyfrom_rev : -1;
            NodeKind         = (SvnNodeKind)changed_path.node_kind;

            switch (changed_path.text_modified)
            {
            case svn_tristate_t.svn_tristate_false:
                ContentModified = false;
                break;

            case svn_tristate_t.svn_tristate_true:
                ContentModified = true;
                break;
            }

            switch (changed_path.props_modified)
            {
            case svn_tristate_t.svn_tristate_false:
                PropertiesModified = false;
                break;

            case svn_tristate_t.svn_tristate_true:
                PropertiesModified = true;
                break;
            }
        }