コード例 #1
0
        void RefreshGraph(LogRetriever logRetriever)
        {
            var commits       = logRetriever.GetRecentCommits().ToArray();
            var activeRefName = logRetriever.GetActiveReferenceName();

            var reachableCommitHashes = commits.Select(c => c.Hash).ToArray();
            var unreachableHashes     = logRetriever.GetRecentUnreachableCommitHashes();
            var unreachableCommits    = logRetriever
                                        .GetSpecificCommits(unreachableHashes)
                                        .Where(c => !reachableCommitHashes.Contains(c.Hash))
                                        .ToArray();

            _graph = GenerateGraphFromCommits(commits, activeRefName, unreachableCommits);
            OnPropertyChanged("Graph");
        }
コード例 #2
0
ファイル: ViewModel.cs プロジェクト: Jan-Thes/GitViz
        void RefreshGraph(LogRetriever logRetriever)
        {
            var commits       = logRetriever.GetRecentCommits(NumOfCommitsToShow).ToArray();
            var activeRefName = logRetriever.GetActiveReferenceName();

            var reachableCommitHashes = commits.Select(c => c.Hash).ToArray();
            var unreachableHashes     = logRetriever.GetRecentUnreachableCommitHashes();
            IEnumerable <Commit> unreachableCommits = null;

            if (VisualizeUnreachable)
            {
                unreachableCommits = logRetriever
                                     .GetSpecificCommits(unreachableHashes)
                                     .Where(c => !reachableCommitHashes.Contains(c.Hash))
                                     .ToArray();
            }

            Graph = GenerateGraphFromCommits(commits, activeRefName, unreachableCommits);
        }
コード例 #3
0
        public void ShouldReturnMultipleUnreachableCommitHashesAfterRewind()
        {
            using (var tempFolder = new TemporaryFolder())
            {
                var tempRepository = new TemporaryRepository(tempFolder);
                var executor = new GitCommandExecutor(tempFolder.Path);
                var log = new LogRetriever(executor);

                tempRepository.RunCommand("init");
                tempRepository.TouchFileAndCommit();
                var firstCommitHash = log.GetRecentCommits(1).Single().Hash;

                for (var i = 0; i < 10; i++)
                    tempRepository.TouchFileAndCommit();

                tempRepository.RunCommand("reset --hard " + firstCommitHash);

                var orphanedHashes = log.GetRecentUnreachableCommitHashes(100);
                Assert.AreEqual(10, orphanedHashes.Count());
            }
        }
コード例 #4
0
ファイル: ViewModel.cs プロジェクト: rhwy/GitViz
        void RefreshGraph(LogRetriever logRetriever)
        {
            var commits = logRetriever.GetRecentCommits().ToArray();
            var activeRefName = logRetriever.GetActiveReferenceName();

            var reachableCommitHashes = commits.Select(c => c.Hash).ToArray();
            var unreachableHashes = logRetriever.GetRecentUnreachableCommitHashes();
            var unreachableCommits = logRetriever
                .GetSpecificCommits(unreachableHashes)
                .Where(c => !reachableCommitHashes.Contains(c.Hash))
                .ToArray();

            _graph = GenerateGraphFromCommits(commits, activeRefName, unreachableCommits);
            OnPropertyChanged("Graph");
        }
コード例 #5
0
        public void ShouldReturnSameDataForSpecificCommitsAsWhenRetrievedViaRecentCommits()
        {
            using (var tempFolder = new TemporaryFolder())
            {
                var tempRepository = new TemporaryRepository(tempFolder);
                tempRepository.RunCommand("init");
                tempRepository.TouchFileAndCommit();
                tempRepository.TouchFileAndCommit();

                var executor = new GitCommandExecutor(tempFolder.Path);
                var logRetriever = new LogRetriever(executor);

                var recentCommits = logRetriever.GetRecentCommits().ToArray();
                var recentCommitHashes = recentCommits.Select(c => c.Hash);

                var specificCommits = logRetriever.GetSpecificCommits(recentCommitHashes);

                CollectionAssert.AreEqual(recentCommits, specificCommits, new SerializedObjectComparer());
            }
        }
コード例 #6
0
        public void ShouldReturnUnreachableCommitHashesAfterRewind()
        {
            using (var tempFolder = new TemporaryFolder())
            {
                var tempRepository = new TemporaryRepository(tempFolder);
                var executor = new GitCommandExecutor(tempFolder.Path);
                var log = new LogRetriever(executor);

                tempRepository.RunCommand("init");
                tempRepository.TouchFileAndCommit();
                var firstCommitHash = log.GetRecentCommits(1).Single().Hash;
                tempRepository.TouchFileAndCommit();
                var secondCommitHash = log.GetRecentCommits(1).Single().Hash;
                tempRepository.RunCommand("reset --hard " + firstCommitHash);

                var orphanedHashes = log.GetRecentUnreachableCommitHashes();
                CollectionAssert.AreEqual(new[] { secondCommitHash }, orphanedHashes);
            }
        }