Hi Dariusz, I do not agree that the version in index does not exist if there are no staged changes. In this case the version in index is just the same as the version in the HEAD. So the only question is about the label we show. In "Compare with index" we show the label "Index". The user can see from the decorators that there are no staged changes.

But the main problem here is that now the wrong input is used on the right side: If null is returned here, the method getRight of GitLocalCompareInput returns a new input using "baseCommit". But I observe that baseCommit and ancestorCommit both point the the first parent of HEAD, and as a consequence the right side does not contain the content of the latest commit but of its parent.