An experimental GUI for the Git SCM. To use, run the Sg.Web self-host exe, and then load the stated Url in your browser. Remember to include a path to your target git directory (i.e. C:\Work\MyProj
would need a url of http://localhost:8080/Work/MyProj
)
- If a history line goes off the page, draw a continuation arrow
- Basic right-click menu system
- Navigation when not in a git repo?
- Move head (checkout)
- New branch on selected commit (checkout -b)
- Add files ; commit ; push
- fetch ; merge (probably best as separate?)
- rebase ; solve merge conflicts?
- stashes -- both loose on a shelf, and as 'fake commits' to allow moving head without losing work (stage and index as needed, with coded stash names?)
- show / hide unmerged remote branches (plus fetch all)
- Change visualisation settings:
- flattened history by default (only unmerged branches spread out, how it is now); Ancestry trace for indiviual commits (like gitk does); Per contributor display (column per person).
- git reflog explorer and recovery tool (open a new branch for a given sha)
- option to attribute-tag the last commit before a merge to show branch history?
- select multiple nodes with shift-click
- cherry-pick with ctrl-click
- rebase with ctrl-shift-click (or drag-and-drop?)
- merge with context menu after selecting
- squash with context menu after selecting
Only unmerged branches are shown out-of-line. Non simple ancestry shown with arcs to the side.
Commits are shown in strict time order. Node colours are based on author's name.