/// <exception cref="System.Exception"></exception> public virtual CommitBuilder Parent(RevCommit p) { if (this.parents.IsEmpty()) { DirCacheBuilder b = this.tree.Builder(); this._enclosing.ParseBody(p); b.AddTree(new byte[0], DirCacheEntry.STAGE_0, this._enclosing.pool.GetObjectReader (), p.Tree); b.Finish(); } this.parents.AddItem(p); return(this); }
/// <exception cref="System.IO.IOException"></exception> private void Add(int tree, int stage) { AbstractTreeIterator i = GetTree(tree); if (i != null) { if (FileMode.TREE.Equals(tw.GetRawMode(tree))) { builder.AddTree(tw.RawPath, stage, reader, tw.GetObjectId(tree)); } else { DirCacheEntry e; e = new DirCacheEntry(tw.RawPath, stage); e.SetObjectIdFromRaw(i.IdBuffer, i.IdOffset); e.FileMode = tw.GetFileMode(tree); builder.Add(e); } } }
/// <exception cref="System.IO.IOException"></exception> private void ResetIndex(RevCommit commit) { DirCache dc = null; try { dc = repo.LockDirCache(); dc.Clear(); DirCacheBuilder dcb = dc.Builder(); dcb.AddTree(new byte[0], 0, repo.NewObjectReader(), commit.Tree); dcb.Commit(); } catch (IOException e) { throw; } finally { if (dc != null) { dc.Unlock(); } } }