本文整理汇总了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);
}
}
示例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());
}
示例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);
}
}
示例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());
}
示例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);
}
示例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);
}
}
示例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;
}
}
}
示例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;
}