Magitは最近、このようなもののサポートを獲得しましたが、この機能はまだエッジが少し粗いため、明示的に有効にする必要があります。
同様の機能が長い間存在していました-ログバッファー内のあるコミットから別のコミットに移動し、同じフレーム内の別のウィンドウがリポジトリのリビジョンバッファーである場合、そのバッファーは更新され、コミットする代わりにそのコミットを表示します以前に表示されていました。
ごく最近まで、あるコミットから別のコミットに最初に移動したときにリビジョンバッファが作成されていました。私はその振る舞いを変更しましたが、今ではリビジョンバッファが更新されるだけです。同じフレーム内のウィンドウにそのバッファが表示されていない場合、ログ内を移動しても、新しいウィンドウまたは以前に他のバッファを表示していた既存のウィンドウにバッファが表示されなくなります。
そのSPCため、リビジョンバッファを表示するには1回押す必要があります。その場合にのみ、ログバッファ内を移動したときに更新が開始されます。
リビジョンバッファを更新したくない場合は、次のようにします。
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
一方、ステータスバッファ内を移動するときにリビジョンバッファも更新する場合は、次を使用します。
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
同様の方法でblobバッファーを自動的に更新することが可能になりました。最初にこれを追加します:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
そして多分また:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
次に、ログ(またはステータス)バッファー内でを押しRETて、リビジョンバッファーを表示または更新し、そのバッファーに切り替えます。興味のあるファイルに移動して、RETもう一度押します。これで、「blob-visiting」バッファーに移動します。これは、作業ツリー内のファイルではなく、コミットされたときのファイルにアクセスすることを除いて、ファイル訪問バッファーに似ています。
ログ(またはステータス)バッファに戻り、別のコミットに移動します。BLOBバッファーは更新中です。
別のBLOBを表示しても、実際には既存のBLOBバッファーが再利用されないことに注意してください。代わりに、そのblobにアクセスする新しいバッファーを作成し、以前に他のblobバッファーを表示していたウィンドウにそのバッファーを表示します。他のバッファは削除されていません。これは、残念ながら、かなりの数のバッファが短時間で蓄積される可能性があることを意味します。これは、これらの荒いエッジの1つです。qblobバッファーを押すと削除されます。そのため、さまざまなblobバッファーを表示するために使用されたウィンドウに移動して、qすべてのバッファーが削除されるまで押し続けます。
さらに、pおよびを使用して、ブロブバッファー内から次または前のブロブに移動できnます。ほとんどの場合、最近のblobから始めて、を使用して古いblobに戻ると仮定しますp。それを行ってから別の方向に移動する場合はq、現在のバッファを強制終了して、前のバッファ、つまり次の blobに移動することをお勧めします。
また、ブロブにアクセスできるようにするために、最初にリビジョンにアクセスする必要はありません。M-x magit-find-file RET <revision> RET <file> RET
直接使用することもできますが、あまり便利ではありません。