private IList <GitRef> GetRefs()
{
var result = _module.GetRefs(true);
bool validWorkingDir = _module.IsValidGitWorkingDir();
_selectedBranchName = validWorkingDir ? _module.GetSelectedBranch() : string.Empty;
GitRef selectedRef = result.FirstOrDefault(head => head.Name == _selectedBranchName);
if (selectedRef != null)
{
selectedRef.Selected = true;
var localConfigFile = _module.LocalConfigFile;
var selectedHeadMergeSource =
result.FirstOrDefault(head => head.IsRemote &&
selectedRef.GetTrackingRemote(localConfigFile) == head.Remote &&
selectedRef.GetMergeWith(localConfigFile) == head.LocalName);
if (selectedHeadMergeSource != null)
{
selectedHeadMergeSource.SelectedHeadMergeSource = true;
}
}
return(result);
}