コード例 #1
0
		public void FileAddedOnBranch()
		{
			var file = new FileInfo("file.txt");
			var revisions = new[]
			{
				file.CreateRevision("1.1.2.1", "branch").WithMessage("created"),
				file.CreateRevision("1.1", "main", isDead: true).WithMessage("file file.txt was initially added on branch branch."),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			var fileRevision = commits.Single().Single();
			Assert.IsTrue(fileRevision.Revision.ToString() == "1.1.2.1");
			Assert.AreEqual(fileRevision.File.BranchAddedOn, "branch");
		}
コード例 #2
0
		public static Commit WithRevision(this Commit commit, FileInfo file, string revision, DateTime time = default(DateTime),
				string mergepoint = null, bool isDead = false)
		{
			var mergepointRevision = (mergepoint == null) ? Revision.Empty : Revision.Create(mergepoint);

			var fileRevision = file.CreateRevision(revision, commit.CommitId, time: time, mergepoint: mergepoint, isDead: isDead);
			commit.Add(fileRevision);
			file.AddCommit(commit, fileRevision.Revision);

			return commit;
		}
コード例 #3
0
		public void FileAddedOnTrunk_BranchAddedOnUnchanged()
		{
			var file = new FileInfo("file.txt");
			var revisions = new[]
			{
				file.CreateRevision("1.1", "main", isDead: true).WithMessage("created"),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			var fileRevision = commits.Single().Single();
			Assert.AreEqual(fileRevision.File.BranchAddedOn, "MAIN");
		}
コード例 #4
0
		public void FilesWithSameCommitId_MergedIntoSingleCommit()
		{
			var f1 = new FileInfo("file1.txt");
			var f2 = new FileInfo("file2.txt");
			var revisions = new[]
			{
				f1.CreateRevision("1.1", "commit1"),
				f2.CreateRevision("1.1", "commit1"),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			Assert.IsTrue(commits.Single().Select(f => f.File.Name).SequenceEqual("file1.txt", "file2.txt"));
		}
コード例 #5
0
		public void FilesWithoutCommitId_SameMessage_MergedTogether()
		{
			var now = DateTime.Now;
			var f1 = new FileInfo("file1.txt");
			var f2 = new FileInfo("file2.txt");
			var revisions = new[]
			{
				f1.CreateRevision("1.1", "", now - TimeSpan.FromSeconds(1)).WithMessage("message"),
				f2.CreateRevision("1.1", "", now).WithMessage("message"),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			var commit = commits.Single();
			Assert.IsTrue(commit.Select(f => f.File.Name).SequenceEqual("file1.txt", "file2.txt"));
			Assert.AreEqual(commit.Message, "message");
		}
コード例 #6
0
		public void FilesWithoutCommitId_DifferentMessage_NotMergedTogether()
		{
			var now = DateTime.Now;
			var f1 = new FileInfo("file1.txt");
			var f2 = new FileInfo("file2.txt");
			var revisions = new[]
			{
				f1.CreateRevision("1.1", "", now).WithMessage("message #1"),
				f2.CreateRevision("1.1", "", now).WithMessage("message #2"),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			Assert.AreEqual(commits.Count, 2);
		}
コード例 #7
0
		public void FilesWithoutCommitId_SameMessage_TimeGap()
		{
			var now = DateTime.Now;
			var f1 = new FileInfo("file1.txt");
			var f2 = new FileInfo("file2.txt");
			var f3 = new FileInfo("file3.txt");
			var revisions = new[]
			{
				f1.CreateRevision("1.1", "", now).WithMessage("message"),
				f2.CreateRevision("1.1", "", now).WithMessage("message"),
				f3.CreateRevision("1.1", "", now + TimeSpan.FromMinutes(5)).WithMessage("message"),
			};

			var builder = new CommitBuilder(m_log, revisions);
			var commits = builder.GetCommits().ToList();

			Assert.AreEqual(commits.Count, 2);
			Assert.IsTrue(commits[0].Select(f => f.File.Name).SequenceEqual("file1.txt", "file2.txt"));
			Assert.IsTrue(commits[1].Select(f => f.File.Name).Single() == "file3.txt");
		}