当前位置: 首页>>代码示例>>C#>>正文


C# DirCacheEntry.getRawMode方法代码示例

本文整理汇总了C#中GitSharp.Core.DirectoryCache.DirCacheEntry.getRawMode方法的典型用法代码示例。如果您正苦于以下问题:C# DirCacheEntry.getRawMode方法的具体用法?C# DirCacheEntry.getRawMode怎么用?C# DirCacheEntry.getRawMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GitSharp.Core.DirectoryCache.DirCacheEntry的用法示例。


在下文中一共展示了DirCacheEntry.getRawMode方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: testBuildRejectsUnsetFileMode

        public void testBuildRejectsUnsetFileMode()
        {
            DirCache dc = DirCache.newInCore();
            DirCacheBuilder b = dc.builder();
            Assert.IsNotNull(b);

            DirCacheEntry e = new DirCacheEntry("a");
            Assert.AreEqual(0, e.getRawMode());
            try
            {
                b.add(e);
            }
            catch (ArgumentException err)
            {
                Assert.AreEqual("FileMode not set for path a", err.Message);
            }
        }
开发者ID:dev218,项目名称:GitSharp,代码行数:17,代码来源:DirCacheBuilderTest.cs

示例2: testBuildOneFile_FinishWriteCommit

        public void testBuildOneFile_FinishWriteCommit()
        {
            string path = "a-File-path";
            var mode = GitSharp.Core.FileMode.RegularFile;
            long lastModified = 1218123387057L;
            int Length = 1342;
            DirCacheEntry entOrig;

            DirCache dc = DirCache.Lock(db);
            DirCacheBuilder b = dc.builder();
            Assert.IsNotNull(b);

            entOrig = new DirCacheEntry(path);
            entOrig.setFileMode(mode);
            entOrig.setLastModified(lastModified);
            entOrig.setLength(Length);

            Assert.AreNotSame(path, entOrig.getPathString());
            Assert.AreEqual(path, entOrig.getPathString());
            Assert.AreEqual(ObjectId.ZeroId, entOrig.getObjectId());
            Assert.AreEqual(mode.Bits, entOrig.getRawMode());
            Assert.AreEqual(0, entOrig.getStage());
            Assert.AreEqual(lastModified, entOrig.getLastModified());
            Assert.AreEqual(Length, entOrig.getLength());
            Assert.IsFalse(entOrig.isAssumeValid());
            b.add(entOrig);

            b.finish();
            Assert.AreEqual(1, dc.getEntryCount());
            Assert.AreSame(entOrig, dc.getEntry(0));

            dc.write();
            Assert.IsTrue(dc.commit());

            dc = DirCache.read(db);
            Assert.AreEqual(1, dc.getEntryCount());

            DirCacheEntry entRead = dc.getEntry(0);
            Assert.AreNotSame(entOrig, entRead);
            Assert.AreEqual(path, entRead.getPathString());
            Assert.AreEqual(ObjectId.ZeroId, entOrig.getObjectId());
            Assert.AreEqual(mode.Bits, entOrig.getRawMode());
            Assert.AreEqual(0, entOrig.getStage());
            Assert.AreEqual(lastModified, entOrig.getLastModified());
            Assert.AreEqual(Length, entOrig.getLength());
            Assert.IsFalse(entOrig.isAssumeValid());
        }
开发者ID:jagregory,项目名称:GitSharp,代码行数:47,代码来源:DirCacheBuilderTest.cs

示例3: testSetFileMode

        public void testSetFileMode()
        {
            DirCacheEntry e = new DirCacheEntry("a");

            Assert.AreEqual(0, e.getRawMode());

            e.setFileMode(FileMode.RegularFile);
            Assert.AreSame(FileMode.RegularFile, e.getFileMode());
            Assert.AreEqual(FileMode.RegularFile.Bits, e.getRawMode());

            e.setFileMode(FileMode.ExecutableFile);
            Assert.AreSame(FileMode.ExecutableFile, e.getFileMode());
            Assert.AreEqual(FileMode.ExecutableFile.Bits, e.getRawMode());

            e.setFileMode(FileMode.Symlink);
            Assert.AreSame(FileMode.Symlink, e.getFileMode());
            Assert.AreEqual(FileMode.Symlink.Bits, e.getRawMode());

            e.setFileMode(FileMode.GitLink);
            Assert.AreSame(FileMode.GitLink, e.getFileMode());
            Assert.AreEqual(FileMode.GitLink.Bits, e.getRawMode());

            try
            {
                e.setFileMode(FileMode.Missing);
                Assert.Fail("incorrectly accepted FileMode.MISSING");
            }
            catch (ArgumentException err)
            {
                Assert.AreEqual("Invalid mode 0 for path a", err.Message);
            }

            try
            {
                e.setFileMode(FileMode.Tree);
                Assert.Fail("incorrectly accepted FileMode.TREE");
            }
            catch (ArgumentException err)
            {
                Assert.AreEqual("Invalid mode " + FileMode.TYPE_TREE + " for path a", err.Message);
            }
        }
开发者ID:spraints,项目名称:GitSharp,代码行数:42,代码来源:DirCacheEntryTest.cs

示例4: AssertAreEqual

        private static void AssertAreEqual(CGitIndexRecord c, DirCacheEntry j)
        {
            Assert.IsNotNull(c);
            Assert.IsNotNull(j);

            Assert.AreEqual(c.Path, j.getPathString());
            Assert.AreEqual(c.Id, j.getObjectId());
            Assert.AreEqual(c.Mode, j.getRawMode());
            Assert.AreEqual(c.Stage, j.getStage());
        }
开发者ID:jagregory,项目名称:GitSharp,代码行数:10,代码来源:DirCacheCGitCompatabilityTest.cs

示例5: add

        /// <summary>
        /// Append one entry into the resulting entry list.
        /// <para />
        /// The entry is placed at the end of the entry list. If the entry causes the
        /// list to now be incorrectly sorted a final sorting phase will be
        /// automatically enabled within <seealso cref="finish()"/>.
        /// <para />
        /// The internal entry table is automatically expanded if there is
        /// insufficient space for the new addition.
        /// </summary>
        /// <param name="newEntry">the new entry to add.</param>
        public void add(DirCacheEntry newEntry)
        {
            if (newEntry.getRawMode() == 0)
            {
                throw new ArgumentException("FileMode not set for path "
                    + newEntry.getPathString());
            }

            BeforeAdd(newEntry);
            FastAdd(newEntry);
        }
开发者ID:spraints,项目名称:GitSharp,代码行数:22,代码来源:DirCacheBuilder.cs

示例6: ApplyEdits

    private void ApplyEdits()
    {
        _edits.Sort(EditComparison);

            int maxIdx = Cache.getEntryCount();
            int lastIdx = 0;
            foreach (PathEdit e in _edits)
            {
                int eIdx = Cache.findEntry(e.Path, e.Path.Length);
                bool missing = eIdx < 0;
                if (eIdx < 0)
                {
                    eIdx = -(eIdx + 1);
                }
                int cnt = Math.Min(eIdx, maxIdx) - lastIdx;
                if (cnt > 0)
                {
                    FastKeep(lastIdx, cnt);
                }
                lastIdx = missing ? eIdx : Cache.nextEntry(eIdx);

                if (e is DeletePath) continue;
                if (e is DeleteTree)
                {
                    lastIdx = Cache.nextEntry(e.Path, e.Path.Length, eIdx);
                    continue;
                }

                DirCacheEntry ent;
                if (missing)
                {
                    ent = new DirCacheEntry(e.Path);
                    e.Apply(ent);
                    if (ent.getRawMode() == 0)
                        throw new ArgumentException("FileMode not set"
                                + " for path " + ent.getPathString());
                }
                else
                {
                    ent = Cache.getEntry(eIdx);
                    e.Apply(ent);
                }
                FastAdd(ent);
            }

            int count = maxIdx - lastIdx;
            if (count > 0)
            {
                FastKeep(lastIdx, count);
            }
    }
开发者ID:spraints,项目名称:GitSharp,代码行数:51,代码来源:DirCacheEditor.cs

示例7: BeforeAdd

        private void BeforeAdd(DirCacheEntry newEntry)
        {
            if (FileMode.Tree.Equals(newEntry.getRawMode()))
            {
                throw Bad(newEntry, "Adding subtree not allowed");
            }

            if (_sorted && EntryCnt > 0)
            {
                DirCacheEntry lastEntry = Entries[EntryCnt - 1];
                int cr = DirCache.Compare(lastEntry, newEntry);
                if (cr > 0)
                {
                    // The new entry sorts before the old entry; we are
                    // no longer sorted correctly. We'll need to redo
                    // the sorting before we can close out the build.
                    //
                    _sorted = false;
                }
                else if (cr == 0)
                {
                    // Same file path; we can only insert this if the
                    // stages won't be violated.
                    //
                    int peStage = lastEntry.getStage();
                    int dceStage = newEntry.getStage();
                    if (peStage == dceStage)
                        throw Bad(newEntry, "Duplicate stages not allowed");
                    if (peStage == 0 || dceStage == 0)
                        throw Bad(newEntry, "Mixed stages not allowed");
                    if (peStage > dceStage)
                        _sorted = false;
                }
            }
        }
开发者ID:stschake,项目名称:GitSharp,代码行数:35,代码来源:DirCacheBuilder.cs

示例8: ParseEntry

        private void ParseEntry()
        {
            _currentEntry = Cache.getEntry(_pointer);
            byte[] cep = _currentEntry.Path;

            if (_nextSubtreePos != Tree.getChildCount())
            {
                DirCacheTree s = Tree.getChild(_nextSubtreePos);
                if (s.contains(cep, PathOffset, cep.Length))
                {
                    // The current position is the first file of this subtree.
                    // Use the subtree instead as the current position.
                    //
                    _currentSubtree = s;
                    _nextSubtreePos++;

                    if (s.isValid())
                    {
                        s.getObjectId().copyRawTo(SubtreeId, 0);
                    }
                    else
                    {
                        SubtreeId.Fill((byte)0);
                    }

                    Mode = FileMode.Tree.Bits;

                    Path = cep;
                    PathLen = PathOffset + s.nameLength();
                    return;
                }
            }

            // The current position is a file/symlink/gitlink so we
            // do not have a subtree located here.
            //
            Mode = _currentEntry.getRawMode();
            Path = cep;
            PathLen = cep.Length;
            _currentSubtree = null;
        }
开发者ID:elyscape,项目名称:Git-Source-Control-Provider,代码行数:41,代码来源:DirCacheIterator.cs


注:本文中的GitSharp.Core.DirectoryCache.DirCacheEntry.getRawMode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。