Gitextensions: Feature request: branch tree view

Created on 27 Jul 2011  ·  29Comments  ·  Source: gitextensions/gitextensions

It would be nice to have tree view of local and remote branches to be able to hide some of them. In our repository we have branches named like:
topic/[module_name]/[task_no], public/[user_id]/[whatever] and ability to hide or show some branches would be very helpful.
The tree configuration could be saved on .git subdirectory to be able to see different branches in different repositories.
The tree could have checkboxes to show/hide some branches and clicking on the leaf could jump to the selected branch on revision graph.

I've seen similar feature in some git UI for MAC and it was very helpful.

user experience feature request

All 29 comments

Something like that
Tower
Check another screenshots here http://www.git-tower.com/

+1 for a navigation pane as shown above. For me it would be great win to left click on a branch or tag and see the main grid move the selection the corresponding commit.

I've started some work on this.

Any input is desired.

@bergerjac I checked out your work. It looks that try to model the complete git-tower layout (especially the Status / Commits / Browse tab control). I think it is easier to focus on the branches / tags etc panel on the left hand side first which fits easy in the current GitExt UI layout (one could add a new button similar to the "Toggle split view layout" to show or hide the panel).

Further remarks:

  • left click on a tree checks out the branch right away. This is too much action for my taste. Normally left click selects an item. I would except the left click to select the branch in the main grid (see comment above). Checkout could be done via right click as you already implemented it.
  • Why do you use a custom made tree view? Personally I feel quite comfortable with built-in TreeView in Winforms. This would also get you scrolling for free if the list is large :). Example usage of the TreeView here: https://github.com/feinstaub/gitextensions/commits/topic_tree_in_settings_dialog

@bergerjac I think left panel will be very useful in GitEx, but I don't think we should clone tabs in main window like in GitTower.
I think we have good commit window instead of Status tab and content from Browse tab already displayed in main window.

It looks that try to model the complete git-tower layout (especially the Status / Commits / Browse tab control).

For prototype, I just took their general layout and converted it to WinForms. By all means, not the final layout.

left click on a tree checks out the branch right away

This was for quick prototyping. (Wanted to use DoubleClick, but it doesn't work as a standard Button event.)

Why do you use a custom made tree view?

Mainly to have a more customized view (e.g. headers and spacing). However, I think you make a great point that the WinForms TreeView will provide great functionality.

I think left panel will be very useful in GitEx, but I don't think we should clone tabs in main window like in GitTower.
I think we have good commit window instead of Status tab and content from Browse tab already displayed in main window.

Good points.

So, do you guys think it'd be worthwhile to implement a left-side panel with the following:

  • Branches, Tags, Remotes, ?Stashes?, ??
  • Toggle split view layout
  • standard WinForms TreeView
  • context menus
  • double-click a branch to checkout the branch
  • double-click a stash to apply to the stash

Branches, Tags, Remotes, ?Stashes?, ??

and submodules

Branches and tags should support tree layout for names with /, like dev/shopping_cart in screenshot

BTW, most of Git clients for Mac has that left panel:

+1 for the double-click feature (the others are fine, too)

progress can be tracked here (on the _left-panel/-main_ branch).

As stated in the README, I'm not keen with _Tags_ and _Submodules_, so another contributor could speed up those portions (or any insight into the UX).

It looks very nice already! Good work!

The update looks great. I also like item count in parenthesis of the node node labels.

Awesome! Will this work on mono? I will test it

Nice work!

Awesome. This would also make #1285 about filtering branches obsolete.

update

Most of the framework for Remotes is complete.

There are a LOT of little things that still need to be done (GitHub issues, code TODOs and NotImplementedException). However, I cannot continue at the rate I had once been going.

I will be moving on to other projects.

That being said, I think I've created a solid foundation for what GitEx could become (with left-panel). Unfortunately, I was unable to implement a base UI for Notifications; however, the class structures and logic have a good start. _left-panel_ branches are definitely in a fork-able state. (I feel the classes are well-designed and thoroughly commented.)

@KindDragon that's interesting. One thing that could set GitEx apart (in addition to Linux support) is implementing the drag-drops and context actions. SourceTree (v0.9.0.5) currently does NOT support drag-drop for its nodes.

Could you push changes made to GitExtensionsTest submodule? There is missing commit 7712ba92e36702e29f5a7313e94b4c8cb802fbbf.

+1

+1

+1

Look at the left-panel branch

On Mon, Sep 28, 2015, 8:52 AM EbenZhang [email protected] wrote:

+1


Reply to this email directly or view it on GitHub
https://github.com/gitextensions/gitextensions/issues/538#issuecomment-143736057
.

Sorry. Thought this was a new issue from my email.

+1

+1

If someone wants to trial, here I have a release for the left tree panel.

image

Tested (actually even worked) with version from @EbenZhang for some time already (my actual version is a merge between his and my own based on master). Left panel is pretty stable, totally recommend his implementation.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JimmyZJX picture JimmyZJX  ·  3Comments

jakebathman picture jakebathman  ·  5Comments

Doug0855 picture Doug0855  ·  4Comments

elait picture elait  ·  4Comments

takinosaji picture takinosaji  ·  3Comments