Ejemplo n.º 1
0
        private CommitDetail GetCommitDetailNoLock(string path)
        {
            var cache = new FileIdCache(this, path);

            // REset must be called according to https://github.com/henon/GitSharp/blob/master/GitSharp.Core/RevWalk/RevWalk.cs#L55
            _walker.reset();
            _walker.markStart(_initCommit);
            for (var currentRev = _walker.next(); currentRev != null; currentRev = _walker.next())
            {
                var currentCommit = GetCommit(currentRev);
                var currentFileId = cache.GetFileId(currentRev);
                if (currentFileId == null)
                {
                    return null;
                }

                if (currentCommit.ParentCount == 0)
                {
                    return currentCommit.Detail;
                }

                if (currentCommit.ParentCount > 1)
                {
                    continue;
                }

                var parentFileId = cache.GetFileId(currentCommit.Commit.ParentIds[0]);
                if (parentFileId == null || currentFileId != parentFileId)
                {
                    return currentCommit.Detail;
                }
            }

            return null;
        }
Ejemplo n.º 2
0
        private CommitDetail GetCommitDetailNoLock(string path)
        {
            var cache = new FileIdCache(this, path);

            // REset must be called according to https://github.com/henon/GitSharp/blob/master/GitSharp.Core/RevWalk/RevWalk.cs#L55
            _walker.reset();
            _walker.markStart(_initCommit);
            for (var currentRev = _walker.next(); currentRev != null; currentRev = _walker.next())
            {
                var currentCommit = GetCommit(currentRev);
                var currentFileId = cache.GetFileId(currentRev);
                if (currentFileId == null)
                {
                    return(null);
                }

                if (currentCommit.ParentCount == 0)
                {
                    return(currentCommit.Detail);
                }

                if (currentCommit.ParentCount > 1)
                {
                    continue;
                }

                var parentFileId = cache.GetFileId(currentCommit.Commit.ParentIds[0]);
                if (parentFileId == null || currentFileId != parentFileId)
                {
                    return(currentCommit.Detail);
                }
            }

            return(null);
        }