This controller handles the compare commits dialog.
Provides a dialog for comparing local and remote git branches
Shows the diff for a specific file
Returns the remote ref for ‘git diff [local] [remote]’
Update listwidgets from the combobox selection
Returns a closure to update either the left or right listwidgets to reflect the available items.
Updates the list of files whenever the selection changes
Drives the “Commit->Compare...” dialog.
Compares a file when it is double-clicked
Compares the currently selected file
Returns a (selected, end-index) tuple based on the selection
Selects an item relative to the end of the treeitem list
We select from the end to properly handle changes in the number of displayed commits.
Updates the “changed files” list whenever selection changes
Updates the list of available revisions for comparison
Launches a dialog for comparing a pair of branches
Launches a dialog for comparing a pair of commits
Launches a dialog for comparing revisions touching a file path