mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-28 15:45:00 +00:00
optimize<User>: reduce memory used by commit's author/committer data
This commit is contained in:
parent
d9afb798db
commit
766f24f4b0
14 changed files with 91 additions and 41 deletions
|
@ -105,7 +105,7 @@
|
|||
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Text="{Binding Author.Time}"
|
||||
Text="{Binding AuthorTimeStr}"
|
||||
Foreground="{DynamicResource Brush.FG2}"
|
||||
Margin="4,0,0,0"
|
||||
HorizontalAlignment="Right"/>
|
||||
|
|
|
@ -58,6 +58,7 @@ namespace SourceGit.Views {
|
|||
var weekStart = today.AddSeconds(-(int)today.DayOfWeek * 3600 * 24 - today.Hour * 3600 - today.Minute * 60 - today.Second);
|
||||
var weekEnd = weekStart.AddDays(7);
|
||||
var month = today.Month;
|
||||
var utcStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime();
|
||||
|
||||
var limits = $"--branches --remotes --since=\"{today.ToString("yyyy-01-01 00:00:00")}\"";
|
||||
var commits = new Commands.Commits(repo, limits).Result();
|
||||
|
@ -65,7 +66,7 @@ namespace SourceGit.Views {
|
|||
var totalCommitsMonth = 0;
|
||||
var totalCommitsYear = commits.Count;
|
||||
foreach (var c in commits) {
|
||||
var commitTime = DateTime.Parse(c.Committer.Time);
|
||||
var commitTime = utcStart.AddSeconds(c.CommitterTime);
|
||||
if (commitTime.CompareTo(weekStart) >= 0 && commitTime.CompareTo(weekEnd) < 0) {
|
||||
mapsWeek[(int)commitTime.DayOfWeek].Count++;
|
||||
totalCommitsWeek++;
|
||||
|
|
|
@ -49,20 +49,20 @@ namespace SourceGit.Views.Widgets {
|
|||
avatarAuthor.FallbackLabel = commit.Author.Name;
|
||||
txtAuthorName.Text = commit.Author.Name;
|
||||
txtAuthorEmail.Text = commit.Author.Email;
|
||||
txtAuthorTime.Text = commit.Author.Time;
|
||||
txtAuthorTime.Text = commit.AuthorTimeStr;
|
||||
|
||||
avatarCommitter.Email = commit.Committer.Email;
|
||||
avatarCommitter.FallbackLabel = commit.Committer.Name;
|
||||
txtCommitterName.Text = commit.Committer.Name;
|
||||
txtCommitterEmail.Text = commit.Committer.Email;
|
||||
txtCommitterTime.Text = commit.Committer.Time;
|
||||
|
||||
if (commit.Committer.Email == commit.Author.Email && commit.Committer.Time == commit.Author.Time) {
|
||||
if (commit.Committer.Equals(commit.Author) && commit.CommitterTime == commit.AuthorTime) {
|
||||
avatarCommitter.Visibility = Visibility.Hidden;
|
||||
committerInfoPanel.Visibility = Visibility.Hidden;
|
||||
} else {
|
||||
avatarCommitter.Visibility = Visibility.Visible;
|
||||
committerInfoPanel.Visibility = Visibility.Visible;
|
||||
|
||||
avatarCommitter.Email = commit.Committer.Email;
|
||||
avatarCommitter.FallbackLabel = commit.Committer.Name;
|
||||
txtCommitterName.Text = commit.Committer.Name;
|
||||
txtCommitterEmail.Text = commit.Committer.Email;
|
||||
txtCommitterTime.Text = commit.CommitterTimeStr;
|
||||
}
|
||||
|
||||
if (commit.Parents.Count == 0) {
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
<DataGridTemplateColumn Width="140" IsReadOnly="True">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Committer.Time}" HorizontalAlignment="Right" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="{Binding CommitterTimeStr}" HorizontalAlignment="Right" Margin="0,0,4,0"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
|
|
@ -404,7 +404,7 @@ namespace SourceGit.Views.Widgets {
|
|||
copyInfo.Click += (o, e) => {
|
||||
Clipboard.SetDataObject(string.Format(
|
||||
"SHA: {0}\nTITLE: {1}\nAUTHOR: {2} <{3}>\nTIME: {4}",
|
||||
commit.SHA, commit.Subject, commit.Committer.Name, commit.Committer.Email, commit.Committer.Time), true);
|
||||
commit.SHA, commit.Subject, commit.Committer.Name, commit.Committer.Email, commit.CommitterTime), true);
|
||||
};
|
||||
menu.Items.Add(copyInfo);
|
||||
|
||||
|
|
|
@ -17,14 +17,14 @@ namespace SourceGit.Views.Widgets {
|
|||
avatarStart.FallbackLabel = start.Committer.Name;
|
||||
avatarStart.ToolTip = start.Committer.Name;
|
||||
txtStartSHA.Text = start.ShortSHA;
|
||||
txtStartTime.Text = start.Committer.Time;
|
||||
txtStartTime.Text = start.CommitterTimeStr;
|
||||
txtStartSubject.Text = start.Subject;
|
||||
|
||||
avatarEnd.Email = end.Committer.Email;
|
||||
avatarEnd.FallbackLabel = end.Committer.Name;
|
||||
avatarEnd.ToolTip = end.Committer.Name;
|
||||
txtEndSHA.Text = end.ShortSHA;
|
||||
txtEndTime.Text = end.Committer.Time;
|
||||
txtEndTime.Text = end.CommitterTimeStr;
|
||||
txtEndSubject.Text = end.Subject;
|
||||
|
||||
Task.Run(() => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue