Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 94414b0

Browse files
Starting to change how time is stored in a GitLogEntry
1 parent a7f5516 commit 94414b0

File tree

8 files changed

+167
-42
lines changed

8 files changed

+167
-42
lines changed

src/GitHub.Api/Git/GitLogEntry.cs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ struct GitLogEntry
1919
public string CommitName;
2020
public string Summary;
2121
public string Description;
22-
public DateTimeOffset Time;
23-
public DateTimeOffset CommitTime;
22+
23+
public string TimeString;
24+
public string CommitTimeString;
25+
26+
2427
public List<GitStatusEntry> Changes;
2528

2629
public string ShortID
@@ -32,7 +35,7 @@ public string PrettyTimeString
3235
{
3336
get
3437
{
35-
DateTimeOffset now = DateTimeOffset.Now, relative = Time.ToLocalTime();
38+
DateTimeOffset now = DateTimeOffset.Now, relative = TimeValue.ToLocalTime();
3639

3740
return String.Format("{0}, {1:HH}:{1:mm}",
3841
relative.DayOfYear == now.DayOfYear
@@ -41,10 +44,24 @@ public string PrettyTimeString
4144
}
4245
}
4346

47+
[NonSerialized] public DateTimeOffset timeValue;
48+
public DateTimeOffset TimeValue
49+
{
50+
get { return timeValue; }
51+
set { timeValue = value; }
52+
}
53+
54+
[NonSerialized] public DateTimeOffset commitTimeValue;
55+
public DateTimeOffset CommitTimeValue
56+
{
57+
get { return commitTimeValue; }
58+
set { commitTimeValue = value; }
59+
}
60+
4461
public void Clear()
4562
{
4663
CommitID = MergeA = MergeB = AuthorName = AuthorEmail = Summary = Description = "";
47-
Time = DateTimeOffset.Now;
64+
TimeValue = DateTimeOffset.Now;
4865
Changes = new List<GitStatusEntry>();
4966
}
5067

@@ -56,7 +73,7 @@ public override string ToString()
5673
sb.AppendLine(String.Format("MergeB: {0}", MergeB));
5774
sb.AppendLine(String.Format("AuthorName: {0}", AuthorName));
5875
sb.AppendLine(String.Format("AuthorEmail: {0}", AuthorEmail));
59-
sb.AppendLine(String.Format("Time: {0}", Time.ToString()));
76+
sb.AppendLine(String.Format("Time: {0}", TimeValue.ToString()));
6077
sb.AppendLine(String.Format("Summary: {0}", Summary));
6178
sb.AppendLine(String.Format("Description: {0}", Description));
6279
return sb.ToString();

src/GitHub.Api/OutputProcessors/LogEntryOutputProcessor.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using System.Text;
45
using System.Text.RegularExpressions;
56

@@ -328,8 +329,8 @@ private void ReturnGitLogEntry()
328329
Summary = summary,
329330
Description = description,
330331
CommitID = commitId,
331-
Time = time.Value,
332-
CommitTime = committerTime.Value
332+
TimeString = time.Value.ToString(DateTimeFormatInfo.CurrentInfo),
333+
CommitTimeString = committerTime.Value.ToString(DateTimeFormatInfo.CurrentInfo)
333334
});
334335
}
335336

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/HistoryView.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ public void OnEmbeddedGUI()
367367
scroll = GUILayout.BeginScrollView(scroll);
368368
if (lastScroll != scroll && !updated)
369369
{
370-
scrollTime = history[historyStartIndex].Time;
370+
scrollTime = history[historyStartIndex].TimeValue;
371371
scrollOffset = scroll.y - historyStartIndex * EntryHeight;
372372
useScrollTime = true;
373373
}
@@ -507,7 +507,7 @@ private void OnLogUpdate(IEnumerable<GitLogEntry> entries)
507507
double closestDifference = Mathf.Infinity;
508508
for (var index = 0; index < history.Count; ++index)
509509
{
510-
var diff = Math.Abs((history[index].Time - scrollTime).TotalSeconds);
510+
var diff = Math.Abs((history[index].TimeValue - scrollTime).TotalSeconds);
511511
if (diff < closestDifference)
512512
{
513513
closestDifference = diff;

src/tests/IntegrationTests/Process/ProcessManagerIntegrationTests.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using FluentAssertions;
45
using NUnit.Framework;
56
using GitHub.Unity;
@@ -36,6 +37,9 @@ public async Task LogEntriesTest()
3637
.GetGitLogEntries(TestRepoMasterCleanUnsynchronized, Environment, GitEnvironment, 2)
3738
.StartAsAsync();
3839

40+
var firstCommitTime = new DateTimeOffset(2017, 1, 27, 17, 19, 32, TimeSpan.FromHours(-5));
41+
var secondCommitTime = new DateTimeOffset(2017, 1, 17, 11, 46, 16, TimeSpan.FromHours(-8));
42+
3943
logEntries.AssertEqual(new[]
4044
{
4145
new GitLogEntry
@@ -53,8 +57,10 @@ public async Task LogEntriesTest()
5357
CommitID = "018997938335742f8be694240a7c2b352ec0835f",
5458
Description = "Moving project files where they should be kept",
5559
Summary = "Moving project files where they should be kept",
56-
Time = new DateTimeOffset(2017, 1, 27, 17, 19, 32, TimeSpan.FromHours(-5)),
57-
CommitTime = new DateTimeOffset(2017, 1, 27, 17, 19, 32, TimeSpan.FromHours(-5)),
60+
TimeString = firstCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
61+
CommitTimeString = firstCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
62+
TimeValue = firstCommitTime,
63+
CommitTimeValue = firstCommitTime,
5864
},
5965
new GitLogEntry
6066
{
@@ -71,8 +77,10 @@ public async Task LogEntriesTest()
7177
CommitID = "03939ffb3eb8486dba0259b43db00842bbe6eca1",
7278
Description = "Initial Commit",
7379
Summary = "Initial Commit",
74-
Time = new DateTimeOffset(2017, 1, 17, 11, 46, 16, TimeSpan.FromHours(-8)),
75-
CommitTime = new DateTimeOffset(2017, 1, 17, 11, 46, 16, TimeSpan.FromHours(-8)),
80+
TimeString = secondCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
81+
CommitTimeString = secondCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
82+
TimeValue = secondCommitTime,
83+
CommitTimeValue = secondCommitTime,
7684
},
7785
});
7886
}
@@ -87,6 +95,8 @@ public async Task RussianLogEntriesTest()
8795
.GetGitLogEntries(TestRepoMasterCleanUnsynchronizedRussianLanguage, Environment, GitEnvironment, 1)
8896
.StartAsAsync();
8997

98+
var commitTime = new DateTimeOffset(2017, 4, 20, 11, 47, 18, TimeSpan.FromHours(-4));
99+
90100
logEntries.AssertEqual(new[]
91101
{
92102
new GitLogEntry
@@ -104,8 +114,10 @@ public async Task RussianLogEntriesTest()
104114
CommitID = "06d6451d351626894a30e9134f551db12c74254b",
105115
Description = "Я люблю github",
106116
Summary = "Я люблю github",
107-
Time = new DateTimeOffset(2017, 4, 20, 11, 47, 18, TimeSpan.FromHours(-4)),
108-
CommitTime = new DateTimeOffset(2017, 4, 20, 11, 47, 18, TimeSpan.FromHours(-4)),
117+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
118+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
119+
TimeValue = commitTime,
120+
CommitTimeValue = commitTime
109121
}
110122
});
111123
}

src/tests/TestUtils/Helpers/AssertExtensions.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ public static void AssertEqual(this GitLogEntry gitLogEntry, GitLogEntry other)
2020
gitLogEntry.CommitID.Should().Be(other.CommitID);
2121
gitLogEntry.Summary.Should().Be(other.Summary);
2222
gitLogEntry.Description.Should().Be(other.Description);
23-
gitLogEntry.Time.Should().Be(other.Time);
24-
gitLogEntry.CommitTime.Should().Be(other.CommitTime);
23+
gitLogEntry.TimeString.Should().Be(other.TimeString);
24+
gitLogEntry.CommitTimeString.Should().Be(other.CommitTimeString);
25+
gitLogEntry.TimeValue.Should().Be(other.TimeValue);
26+
gitLogEntry.CommitTimeValue.Should().Be(other.CommitTimeValue);
2527
}
2628

2729
public static void AssertNotEqual(this GitLogEntry gitLogEntry, GitLogEntry other)

src/tests/UnitTests/IO/GitLogEntryListTests.cs

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using NUnit.Framework;
45
using TestUtils;
56
using GitHub.Unity;
@@ -30,6 +31,7 @@ public void NullListShouldNotEqualEmptyList()
3031
[Test]
3132
public void NullListShouldNotEqualListOf1()
3233
{
34+
var commitTime = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
3335
var entries = new[]
3436
{
3537
new GitLogEntry
@@ -42,7 +44,10 @@ public void NullListShouldNotEqualListOf1()
4244
CommitID = "CommitID",
4345
Summary = "Summary",
4446
Description = "Description",
45-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
47+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
48+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
49+
TimeValue = commitTime,
50+
CommitTimeValue = commitTime
4651
}
4752
};
4853
GitLogEntry[] otherEntries = null;
@@ -53,6 +58,7 @@ public void NullListShouldNotEqualListOf1()
5358
[Test]
5459
public void EmptyListShouldNotEqualListOf1()
5560
{
61+
var commitTime = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
5662
var entries = new[]
5763
{
5864
new GitLogEntry
@@ -65,7 +71,10 @@ public void EmptyListShouldNotEqualListOf1()
6571
CommitID = "CommitID",
6672
Summary = "Summary",
6773
Description = "Description",
68-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
74+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
75+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
76+
TimeValue = commitTime,
77+
CommitTimeValue = commitTime
6978
}
7079
};
7180
GitLogEntry[] otherEntries = new GitLogEntry[0];
@@ -76,6 +85,7 @@ public void EmptyListShouldNotEqualListOf1()
7685
[Test]
7786
public void ListOf1ShouldEqualListOf1()
7887
{
88+
var commitTime = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
7989
var entries = new[]
8090
{
8191
new GitLogEntry
@@ -92,7 +102,10 @@ public void ListOf1ShouldEqualListOf1()
92102
CommitID = "CommitID",
93103
Summary = "Summary",
94104
Description = "Description",
95-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
105+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
106+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
107+
TimeValue = commitTime,
108+
CommitTimeValue = commitTime
96109
}
97110
};
98111

@@ -112,7 +125,10 @@ public void ListOf1ShouldEqualListOf1()
112125
CommitID = "CommitID",
113126
Summary = "Summary",
114127
Description = "Description",
115-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
128+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
129+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
130+
TimeValue = commitTime,
131+
CommitTimeValue = commitTime
116132
}
117133
};
118134

@@ -122,6 +138,9 @@ public void ListOf1ShouldEqualListOf1()
122138
[Test]
123139
public void ListOf2ShouldEqualListOf2()
124140
{
141+
var commitTime = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
142+
var otherCommitTime = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
143+
125144
var entries = new[]
126145
{
127146
new GitLogEntry
@@ -138,7 +157,10 @@ public void ListOf2ShouldEqualListOf2()
138157
CommitID = "CommitID",
139158
Summary = "Summary",
140159
Description = "Description",
141-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
160+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
161+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
162+
TimeValue = commitTime,
163+
CommitTimeValue = commitTime
142164
},
143165
new GitLogEntry
144166
{
@@ -150,7 +172,10 @@ public void ListOf2ShouldEqualListOf2()
150172
CommitID = "OtherCommitID",
151173
Summary = "OtherSummary",
152174
Description = "OtherDescription",
153-
Time = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
175+
TimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
176+
CommitTimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
177+
TimeValue = otherCommitTime,
178+
CommitTimeValue = otherCommitTime
154179
}
155180
};
156181

@@ -170,7 +195,10 @@ public void ListOf2ShouldEqualListOf2()
170195
CommitID = "CommitID",
171196
Summary = "Summary",
172197
Description = "Description",
173-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
198+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
199+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
200+
TimeValue = commitTime,
201+
CommitTimeValue = commitTime
174202
},
175203
new GitLogEntry
176204
{
@@ -182,7 +210,10 @@ public void ListOf2ShouldEqualListOf2()
182210
CommitID = "OtherCommitID",
183211
Summary = "OtherSummary",
184212
Description = "OtherDescription",
185-
Time = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
213+
TimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
214+
CommitTimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
215+
TimeValue = otherCommitTime,
216+
CommitTimeValue = otherCommitTime
186217
}
187218
};
188219

@@ -192,6 +223,9 @@ public void ListOf2ShouldEqualListOf2()
192223
[Test]
193224
public void ListOf2ShouldNotEqualListOf2InDifferentOrder()
194225
{
226+
var commitTime = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
227+
var otherCommitTime = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero);
228+
195229
var entries = new[]
196230
{
197231
new GitLogEntry
@@ -208,7 +242,10 @@ public void ListOf2ShouldNotEqualListOf2InDifferentOrder()
208242
CommitID = "CommitID",
209243
Summary = "Summary",
210244
Description = "Description",
211-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
245+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
246+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
247+
TimeValue = commitTime,
248+
CommitTimeValue = commitTime
212249
},
213250
new GitLogEntry
214251
{
@@ -220,7 +257,10 @@ public void ListOf2ShouldNotEqualListOf2InDifferentOrder()
220257
CommitID = "OtherCommitID",
221258
Summary = "OtherSummary",
222259
Description = "OtherDescription",
223-
Time = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
260+
TimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
261+
CommitTimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
262+
TimeValue = otherCommitTime,
263+
CommitTimeValue = otherCommitTime
224264
}
225265
};
226266

@@ -236,7 +276,10 @@ public void ListOf2ShouldNotEqualListOf2InDifferentOrder()
236276
CommitID = "OtherCommitID",
237277
Summary = "OtherSummary",
238278
Description = "OtherDescription",
239-
Time = new DateTimeOffset(1981, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
279+
TimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
280+
CommitTimeString = otherCommitTime.ToString(DateTimeFormatInfo.CurrentInfo),
281+
TimeValue = otherCommitTime,
282+
CommitTimeValue = otherCommitTime
240283
},
241284
new GitLogEntry
242285
{
@@ -252,7 +295,10 @@ public void ListOf2ShouldNotEqualListOf2InDifferentOrder()
252295
CommitID = "CommitID",
253296
Summary = "Summary",
254297
Description = "Description",
255-
Time = new DateTimeOffset(1921, 12, 23, 1, 3, 6, 23, TimeSpan.Zero)
298+
TimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
299+
CommitTimeString = commitTime.ToString(DateTimeFormatInfo.CurrentInfo),
300+
TimeValue = commitTime,
301+
CommitTimeValue = commitTime
256302
}
257303
};
258304

0 commit comments

Comments
 (0)