Android Studio Chipmunkにアップデートした後にGitのDiffで困った話

# Android Studio上でGitのDiffが使用できない！！

大げさに書いちゃいましたが本当にコードレビューがやりにくくなって困りました。
具体的にはDiffを使用すると以下のようなエラーが表示されます。

    java.lang.Throwable: Assertion failed
	    at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:218)
	    at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:227)
	    at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.<init>(TextEditorComponent.java:76)
	    at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.<init>(PsiAwareTextEditorImpl.java:107)
	    at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl.createEditorComponent(PsiAwareTextEditorImpl.java:85)
	    at com.intellij.openapi.fileEditor.impl.text.TextEditorImpl.<init>(TextEditorImpl.java:52)
	    at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl.<init>(PsiAwareTextEditorImpl.java:36)
	    at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorProvider.createEditor(PsiAwareTextEditorProvider.java:31)
	    at com.android.tools.idea.uibuilder.editor.multirepresentation.sourcecode.SourceCodeEditorProvider.createEditor(SourceCodeEditorProvider.kt:91)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4Edt(FileEditorManagerImpl.java:997)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$17(FileEditorManagerImpl.java:969)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.runBulkTabChange(FileEditorManagerImpl.java:1786)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$18(FileEditorManagerImpl.java:968)
	    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:438)
	    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:456)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4(FileEditorManagerImpl.java:965)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$14(FileEditorManagerImpl.java:891)
	    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:216)
	    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
	    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
	    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:890)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:764)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:731)
	    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:719)
	    at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:132)
	    at com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager.openFile(VcsEditorTabFilesManager.kt:75)
	    at com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager.openFile(VcsEditorTabFilesManager.kt:60)
	    at com.intellij.openapi.vcs.changes.EditorTabDiffPreviewManager.showDiffFile(EditorTabDiffPreviewManager.kt:38)
	    at com.intellij.openapi.vcs.changes.EditorTabPreview$Companion.openPreview(EditorTabPreview.kt:173)
	    at com.intellij.vcs.log.ui.frame.EditorDiffPreview.openPreviewInEditor(VcsLogDiffPreview.kt:136)
	    at com.intellij.vcs.log.ui.frame.EditorDiffPreview.setPreviewVisible(VcsLogDiffPreview.kt:125)
	    at com.intellij.openapi.vcs.changes.EditorTabDiffPreviewManager.showDiffPreview(EditorTabDiffPreviewManager.kt:42)
	    at com.intellij.openapi.vcs.changes.ui.ChangesBrowserBase.showDiff(ChangesBrowserBase.java:272)
	    at com.intellij.openapi.vcs.changes.ui.ChangesBrowserBase.onDoubleClick(ChangesBrowserBase.java:192)
	    at com.intellij.openapi.vcs.changes.ui.ChangesTree.lambda$setDoubleClickAndEnterKeyHandler$3(ChangesTree.java:256)
	    at com.intellij.openapi.vcs.changes.ui.ChangesTreeHandlers$createDoubleClickListener$1.onDoubleClick(ChangesTreeHandlers.kt:52)
	    at com.intellij.ui.DoubleClickListener.onClick(DoubleClickListener.java:30)
	    at com.intellij.ui.ClickListener$1.mouseReleased(ClickListener.java:59)
	    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
	    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652)
	    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
	    at com.intellij.ui.treeStructure.Tree.processMouseEvent(Tree.java:394)
	    at java.desktop/java.awt.Component.processEvent(Component.java:6417)
	    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
	    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2784)
	    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
	    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	    at java.base/java.security.AccessController.doPrivileged(Native Method)
	    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	    at java.base/java.security.AccessController.doPrivileged(Native Method)
	    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:885)
	    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:814)
	    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:751)
	    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
	    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
	    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
	    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

## 原因はなんだったのか
こちらのIssueを確認してみるとどうやらChipmunk固有の不具合のようです。
やり取りを確認すると修正はされているようなので次のアップデートが公開されるのを待ちましょう。

https://issuetracker.google.com/issues/232045613?pli=1

## 暫定的な対策について
やっぱりソースコードの差分表示をAndroid Studio上で行っていた身としては不便でしょうがない。
今回問題になったのは[Show Diff]を使用した差分表示のため、
[Show Diff in a New Tab]を使用すれば問題なく確認可能です。
別Windowではなくタブ内に表示されますがショートカットキーは問題なく使用可能です。