diff --git a/GitUI/CommandsDialogs/FormCommit.cs b/GitUI/CommandsDialogs/FormCommit.cs index abd7c5cad40..9367718517e 100644 --- a/GitUI/CommandsDialogs/FormCommit.cs +++ b/GitUI/CommandsDialogs/FormCommit.cs @@ -939,11 +939,10 @@ private void InitializedStaged() { using (WaitCursorScope.Enter()) { - var headId = Module.RevParse("HEAD"); SolveMergeconflicts.Visible = Module.InTheMiddleOfConflictedMerge(); Staged.SetDiffs( new GitRevision(ObjectId.IndexId), - new GitRevision(headId), + GetHeadRevision(), Module.GetIndexFilesWithSubmodulesStatus()); } } @@ -974,10 +973,8 @@ private void LoadUnstagedOutput(IReadOnlyList allChangedFiles) } } - var headId = Module.RevParse("HEAD"); - var headRevision = headId != null ? new GitRevision(headId) : null; Unstaged.SetDiffs(new GitRevision(ObjectId.WorkTreeId), new GitRevision(ObjectId.IndexId), unstagedFiles); - Staged.SetDiffs(new GitRevision(ObjectId.IndexId), headRevision, stagedFiles); + Staged.SetDiffs(new GitRevision(ObjectId.IndexId), GetHeadRevision(), stagedFiles); var doChangesExist = Unstaged.AllItems.Any() || Staged.AllItems.Any(); @@ -1620,9 +1617,8 @@ private void Unstage(bool canUseUnstageAll = true) unstagedFiles.Add(item); } - var headId = Module.RevParse("HEAD"); Unstaged.SetDiffs(new GitRevision(ObjectId.WorkTreeId), new GitRevision(ObjectId.IndexId), unstagedFiles); - Staged.SetDiffs(new GitRevision(ObjectId.IndexId), new GitRevision(headId), stagedFiles); + Staged.SetDiffs(new GitRevision(ObjectId.IndexId), GetHeadRevision(), stagedFiles); _skipUpdate = false; Staged.SelectStoredNextIndex(); @@ -1656,6 +1652,18 @@ private void Unstage(bool canUseUnstageAll = true) } } + [CanBeNull] + private GitRevision GetHeadRevision() + { + var headId = Module.RevParse("HEAD"); + if (headId != null) + { + return new GitRevision(headId); + } + + return null; + } + private void StageClick(object sender, EventArgs e) { if (_currentFilesList != Unstaged || Module.IsBareRepository())