private void UpdateSelectedFileViewers()
{
var selectedRows = FileChanges.GetRevisions();
if (selectedRows.Count == 0) return;
IGitItem revision = selectedRows[0];
var fileName = revision.Name;
if (string.IsNullOrEmpty(fileName))
fileName = FileName;
Text = string.Format("File History ({0})", fileName);
if (tabControl1.SelectedTab == Blame)
blameControl1.LoadBlame(revision.Guid, fileName);
if (tabControl1.SelectedTab == ViewTab)
{
var scrollpos = View.ScrollPos;
View.ViewGitItemRevision(fileName, revision.Guid);
View.ScrollPos = scrollpos;
}
switch (selectedRows.Count)
{
case 1:
{
IGitItem revision1 = selectedRows[0];
if (tabControl1.SelectedTab == DiffTab)
{
Diff.ViewPatch(
() =>
{
Patch diff = GitCommands.GitCommands.GetSingleDiff(revision1.Guid, revision1.Guid + "^", fileName,
Diff.GetExtraDiffArguments());
if (diff == null)
return string.Empty;
return diff.Text;
}
);
}
}
break;
case 2:
{
IGitItem revision1 = selectedRows[0];
IGitItem revision2 = selectedRows[1];
if (tabControl1.SelectedTab == DiffTab)
{
Diff.ViewPatch(
() =>
GitCommands.GitCommands.GetSingleDiff(revision1.Guid, revision2.Guid, fileName,
Diff.GetExtraDiffArguments()).Text);
}
}
break;
default:
Diff.ViewPatch("You need to select 2 files to view diff.");
break;
}
}