git-gui
git-gui copied to clipboard
Implement "git gui diff" and "git gui merge"
This would help close the gap in git-gui functionality. The code to display side-by-side diff, and to perform chunk-by-chunk merge can be borrowed from tkdiff.
Just so we are on the same page, would git gui diff
and git gui merge
be separate sub-tools (like git gui blame
and git gui browse
for example)? Or should they somehow integrate with the "main" git-gui UI?
As of now, git-gui does show diff of the current repo state (IOW, the working directory and index). My guess is that you want git gui diff
to work similar to git diff
, where it can take two points or revision ranges and show the diff between them, correct? That would be neat, but would require a new stripped-down UI. Sure, you can probably use some of the pre-existing elements, but a lot of the UI would have to be created. Not that its a bad thing, I'm just pointing it out.
As for git gui merge
, I'm not sure a separate tool is really needed. It probably makes more sense to just add features like side-by-side diffs to the main UI. We do already support making merges via the UI, so I don't think much more has to be done there.
This response is largely an attempt to elicit more information so I completely understand your suggestion. Correct me if I interpret something incorrectly.i
I was thinking about a single separate sub-tool (like git gui blame
) for both git gui diff
and git gui merge
; it's just that in merge
mode the tool would have one more pane and different set of actions.
What I would like is to be able to set up git-gui in diff
and merge
modes as diff.tool
(or diff.guitool
) and/or merge.tool
(or merge.guitool
).
A single sub-tool for diff would be great. But with merge, we would have a lot of duplication since similar merge conflict resolution and highlighting features need to be present in the main UI too. A lot of procedures would probably end up being re-used though, so maybe that is something we should debate over when there is a working implementation.