Example #1
0
 /// <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);
                    }
                }
            }
Example #3
0
        /// <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();
                }
            }
        }