Log window: provide Index and working tree operations (so it can be used as alternate main window) [SG-11648]

Marc Strapetz 6 years ago updated by Nathan Brown 5 years ago 28

The Log window should show Index and working tree and provide (almost) the same operations as the main window. The Repositories view should also be added. The ultimate goal is to make the Log window powerful enough so it can replace the main window for those users which prefer a Log-style Git client over a File Command-style one (as SmartGit's main window currently is).

This is a kind of meta issue and includes:




It's an alternative to:


I, as a user, completely support this proposal to make Log window as powerful as the main window. Actually I kind of thought of making it third/alternate perspective in the main window. I miss it while Splitting/Squashing/Reordering commits, currently I had to use Journal in main window, that lacks the ability to see the committed changes right away. Also, it makes perfect sense for things like Edit Commit Message and etc.

Wondering if this feature is in plans for the release 18 stream?  It's my biggest usability issue - opening and closing log windows a lot - so hoping for the Repositories view on the log window.

It is not planned for 18.1, but maybe 18.2.

Oooooooooooo 18.2 is on deck! :-)


Any improvements planned for this one in 18.2 (he asks, hopefully... :-) )?


Work is in progress, unfortunately not yet ready to be published.

W00t!!  Thanks for the sneak peek.  Looking forward to it!

Interesting. So would/should the pseudo Working Tree and Index commits exist if there is nothing in them?

Does the Working Tree include uncommitted and missing files and modified files or only staged files?

I don't currently have an opinion, I'm curious about other people's thoughts and rationales.


> So would/should the pseudo Working Tree and Index commits exist if there is nothing in them?

That's optional.

> Does the Working Tree include uncommitted and missing files and modified files or only staged files?

The Working Tree will contain exactly those files which you will see in current SmartGit's main window. The Index node will only show staged files.

I see, that makes sense, choice and configurability is good. (and I don't know what I was thinking about only staged files showing in the working tree, that doesn't make any sense).


Will be present in upcoming 18.2 preview.


18.2 preview 1 is released -- we appreciate your feedback!

The new Log window repos/branches feature is awesome!  Thank you!

Really loving it, many thanks for your work !
A little feedback : I add 2 unpushed commits, I tried to move the last one before the previous, it generated a conflict, ok. But what was strange is that a "smartgit_temp" branch was added AND checkout.

That's interesting. "smartgit_temp" is an intermediate branch which will be created as part of the Move operation. However, in case of conflicts, the Move should be "rolled back" and the branch should be deleted again. At least, that's the behavior I'm seeing. Can you please check the logs/ for the incident and send relevant parts to smartgit@syntevo.com?

Just had the same problem again trying to move an unpushed commit before another one in the log window. It was quite hard to recover previous situation...

I tryed after that an interactive rebase and all went well !

So since yesterday I have the log window as my main window. I opened a working tree window while having hard time with moving commits, and when I closed this working tree window I had a confirmation dialog because I had uncommited files. I would expect this window to appear only when closing the main window - so, in my cas, the log window and not the working tree window.

I agree that the check should be present in the Log Window, too [SG-11913]. Both, "Working Tree" and "Log" window are "main" windows, so it's hard to tell which is the more important one in your case. Maybe it's better to show the warning when closing the *last* instance of the repository?

I was expecting the dialog to show when closing the "main" window, "main" be defined by the configuration parameter ("prefer working tree window / log window"). But yeah I agree, it would be far better to show the dialog when closing the last window for the repository !

Hi folks, is it possible to somehow show "directory tree" together with "log window"? I mean, I kind of lack ability to browse the working tree, i.e. navigate to particular directory in the tree and *then* focus on stuff (e.g. modifications) specific to that directory? It's probably not directly related to "log window" feature, but in it's current implementation it's a bit inconvenient...

As a side note, did you consider making "directory tree" part of file pane? I mean, I always questioned why directory browsing is part of repository pane (where it's intermixed with other repositories, especially, if the repository is not the first one in the list)? I mean, most of the times, I don't need to switch repositories, but I do want to focus on different directories in the working tree. So if the "Directory tree" was part of file pane it would let me close repositories pane not to be distracted by other stuff, as well as it would solve the above problem for "log window" mode.

So you only would need the directory tree to filter out the displayed files - or do you also would like to perform commands on this directory level?

I'm not sure about that. It would be definitely nice to have all the old functionality available for directory tree, but I can't say now that it's a must. I can imagine things like ignoring directories (adding them to .gitignore) as an obvious example of the stuff that might have sense in such a directory tree.

I often use the directory tree to filter what is shown in the log window.  Please ensure this functionality does not get diminished in the new version.  This is especially needed when working with "mono-repo" style repositories.

Would it make sense to do the same for Log (Ctrl-L)? Currently it opens a new window, but I think we could have a single child-window for that as well. Working with multiple windows of SmartGit is not very productive because of switching (specially if you have multiple log windows, in which case I'd prefer to just show the last log in the same child-window).

> Would it make sense to do the same for Log (Ctrl-L)?

What exactly do you mean here?

Did you already give 18.2 Preview a try?