A new way to Commit! Introducing the Commit and Repository tool windows in Rider 2019.3 EAP

In the latest Rider 2019.3 Early Access Preview (EAP) build, we’ve started experimenting with user interface and experience improvements when working with version control systems (VCS) like Git:

  • New and improved Commit tool window
  • Renamed the version control tool window to Repository
  • An in-editor diff preview (shelved changes are also previewed in the editor)

Let’s have a closer look! 

New and improved Commit tool window

After making changes to a code base, the next step is probably going to be committing (and pushing) it. We’ve introduced a new Commit tool window, shown on the left by default:

New commit tool window on the left-hand side

Having this tool window on the left gives us more vertical screen real-estate to show the changelist(s), commit description, and so on.

Personally, I like moving the Commit tool window to the left bottom (by dragging the tool window caption down). It gives me a view of the solution explorer as well as the commit tool window, but that’s of course my preference. Others may want to move it to the right-hand side, or to the bottom – feel free to experiment with what works best for you.

Commit tool window on the left bottom

Repository: the renamed version control tool window

In the bottom of Rider’s IDE window, we can now find the renamed version control tool window: Repository. Just as before, it shows us the version control history where we can search, look at details for a commit and so on.

Version Control tool window now named Repository

So why the change to “Repository”? Working with version control is more than working with just the commit log. The Repository tool window also lets us inspect GitHub Pull Requests. It lets us search and filter PR’s, displays the summary of the PR, as well as the list of commits and changed files in there.

Pull Requests from GitHub shown in Rider Repository tool window

From the pull request change list, we can click a file to show the diff. Which is a nice bridge to the next part of our version control redesign!

In-editor diff preview

Traditionally, diff previews would be shown in the tool window we were working in. So when showing a diff preview in the current changelist, the version control log or a pull request, we would be cramming two editors in an already full tool window. No more!

Rider now displays diff previews in the editor. This gives the diff preview the screen real-estate it deserves, and displays it where we expect code to be shown: in the editor.

In-editor diff gives more screen real estate to display diff results

When in the Commit tool window, we can use F7 (Next Change) to jump between changed files – no need to use the mouse there.

Note that only the diff preview is displayed in the editor. When invoking a diff manually, a separate window will still be shown – unless you use one of our experimental tweaks.

(Did I mention I seem to be doing well today when it comes to bridging topics?)

Experimental tweaks (Rider 2019.3)

We are still deciding on what some of the defaults will be (such as whether to show all diffs in the editor instead of only previews). If you would like to experiment with those, it’s possible to toggle certain features in Rider’s registry.

After opening a project, press shift shift (Search Everywhere) and search for “Registry”. Next, start typing any of the following three switches to enable or disable things:

  • show.diff.preview.as.editor.tab – toggles the in-editor diff preview
  • show.diff.as.editor.tab – shows all diffs as an editor tab
  • show.log.as.editor.tab – shows the VCS log as an editor tab

Note that there are a lot of settings, and you should not change them unless asked by support. However if you’re on Windows, I can recommend enabling windows.jumplist if you like being able to right-click the Rider taskbar icon and open another solution.

Configuration options (Rider 2020.1+)

(added to blog post April 29, 2020)

The Commit tool window can be toggled from the settings. In the settings, under Version Control | Commit, toggle Use non-modal commit interface
to switch between a separate tool window for commits, or using the classic style.

Non-modal commit window toggle

To toggle diffs in the editor, open a project, press shift shift (Search Everywhere), and search for “Registry”. Next, start typing any of the following three switches to enable or disable things:

  • show.diff.preview.as.editor.tab – toggles the in-editor diff preview
  • show.diff.as.editor.tab – shows all diffs as an editor tab

Download Rider (or higher) and try it out! Let us know your thoughts about these updates.

About Maarten Balliauw

Maarten Balliauw is a Developer Advocate at JetBrains, working on .NET tools and Space. He focuses on .NET, Azure, web technologies and application performance. Maarten is a frequent speaker at various national and international events. In his free time, he brews his own beer. Follow him on Twitter or check out his personal blog.
This entry was posted in How-To's and tagged , , , , , . Bookmark the permalink.

67 Responses to A new way to Commit! Introducing the Commit and Repository tool windows in Rider 2019.3 EAP

  1. Julian Moschüring says:

    Thank you for ‘show.diff.preview.as.editor.tab’! Deactivated it.

    My main coding monitor is in portrait mode and I have the VCS/Commit window on a second widescreen monitor. The new setup doesn’t work for me at all as the diff is only like 40 characters wide for each file. And I keep the commit window open all the time.

  2. Mateusz says:

    It would be great if we could see comments in PRs, so that we wouldn’t need to open GitHub in browser

  3. Julian Moschüring says:

    When ‘View Mode’ is set to ‘Window’ the change set section of the commit window now has a minimum width, even when ‘how.diff.preview.as.editor.tab’ is false and diff is included in the commit window.
    Previously it had no minimum width. Could you please remove the minimum width? I would rather have more space for the diff view.

  4. Julian Moschüring says:

    The thing annoying me about ‘show.log.as.editor.tab’ is, that the Log isn’t closed when hiding Repository. Eg when having it on shortcut Alt+9, toggling it on and of leaves the Log open.
    Alternatively a view mode for Repository having the Log above the other stuff would be nice.

  5. Yosef Yona says:

    These are interesting changes but we are still missing one of the most voted issue in the Source Control area, the lake of support of an important part of the Git way of work, support for git index / staging area. (see https://youtrack.jetbrains.com/issue/IDEA-63391 ) .
    Do you plan to fix this?? The issue is open for 9 years (!!!) and have more than 450 votes.

    thank you in advance for your answer.

  6. Dennis Lieu says:

    This looks nice. I am looking forward to the Pull Request feature. Are there any plans to also add support for bitbucket and gitlab?

  7. Pawel says:

    I’m happy that you are happy with this change but could you please provide a way to get to the previous view of commit window? The flag show.diff.preview.as.editor.tab only turns off the diff as editor tab but diff is displayed SIDE-BY-SIDE with commit text and file list.
    How to move diff to the bottom so changes, commit message and diff are stacked on each other? There should be one simple switch to get back to the previous view without reinstalling the whole app

  8. Pavel says:

    Hi! Just updated my Rider to EAP 5 and it hurts me a lot. Every change in file opens file diff with previous version, I can’t understand what’s hapenning. Could you, please, help me to disable it?

    • Alexander Kurakin says:

      It was a known issue for EAP 5, so we’ve published a hotfix an hour ago: EAP6. Please install the new build.

  9. Michael McDowell says:

    Worked nicely on my 13″ screen.

    Unfortunately I had to disable the _show.diff.preview.as.editor.tab_ as it kept opening after making an edit to my C# / F# files. Needs a bit more work, including an obvious menu/shortcut.

    • Alexander Kurakin says:

      Please install EAP 6 build we’ve published a moment ago, it has this weird behavior fixed. Then enable the _show.diff.preview.as.editor.tab_ key back. Thanks

  10. Dumitru says:

    I find the VCS tools easier to use as full-screen windows.
    Want to commit? Press a shortcut, see commit pop-up full-screen, with enough space to see all changes, diffs, and make any adjustments. Very happy with this flow.

    It’s nice that I could revert back to previous diff mode (disabling show.diff.preview.as.editor.tab)

    Having commit view inside VCS (Repository) view was actually working fine for me, but they’re now separated again.

    Thank you for the ‘commit’ button now reacting instantly – previous version was confusing, as I wasn’t sure if the button had pressed.

  11. Evgeny says:

    How to revert it? I don’t want to have yet another window for VCS!

  12. Kimberly says:

    I like the new commit experience. I can see how it’s a superior experience. That said, there really should have been a way to opt out until your WHOLE product suite supports the new experience. One of the best things about Jetbrains is that you can you can get to ninja level with ONE editor (that’s not VIM) and use it across the entire industry — Java, C#, Javascript/Typescript, Python, iOS/Android, whatever. It’s one of your key differentiator. Don’t mess it up.

  13. Stas says:

    Please move “Local changes” window back!
    I do like having local changes and repository in one place with access by shortcut and in separated window. Bad change.

  14. Ben Sizer says:

    So, where are the local changes now? I used that window OFTEN to be able to see what was going to get in the way of git pulls, or more often, to see which files Unity had changed without me knowing, so that I could discard them.

    Do I now have to open the Commit dialog to discard these changes?

    And why is Discard now called Rollback?

    • Local changes are in the Commit tool window. If you prefer to have that as just a list of local changes and have commit as a separate window like before, you can go to the settings and under Version Control | Commit Dialog uncheck Commit from Local Changes.

      That won’t change the tool window name, will pass that along to the dev team.

      • Ben Sizer says:

        Well, no, I have no idea what clearing that checkbox actually does, but it doesn’t give me the view of locally-changed files back in the Repository view. All I see are Repository and Console, and I have to bring up the Commit window to see what has changed, which is crap.

      • Ben Sizer says:

        Also, commit /wasn’t/ a separate window before. I just commited from the local changes tab. It seems like you have changed stuff and forgotten how it used to work.

        • The commit dialog used to be that, a dialog/window, so I thought that was (part of) the question, my bad – feel free to restore that checkbox if you prefer to commit from the tool window again.

          As for merging repository/console/local changes window, this is not possible right now. For now, local changes will be in the Commit tool window. Given the amount of comments in this post around that topic, we are discussing it. So thanks for your feedback on that.

          • Ben Sizer says:

            Thanks for answering. Sorry if I was rude in my comments – just frustrated at having to relearn things.

          • Yongyi says:

            Good to know that you are discussing the Local Changes window.
            The Local Changes Window is my most used window in the VCS plugin.
            I even use it to replace the CornerStone SVN Client which is a very expensive SVN client in Mac OS.
            In my opinion, the Local Changes Window can do pretty much everything that CornerStone is capable of.
            Please please please bring it back, thank you.
            It seems that I have to stay with Rider 2019.2 for a while:)

  15. Oskar Emil Skeide says:

    Grand.

    Now show me where you hid the ‘Amend commit’ button

  16. Kimberly says:

    Oh please have an option to put the whole commit experience back to the way it was. I’ve been using it for a week now, and while in-editor diff view is great use of screen real-estate, and it’s superior on paper, it’s too disorienting in practice if you tend to use the Local Changes list as your working set. I expect to see the file I’m editing it the edit pane, not a diff. (Reason: because it’s an edit pane, maybe?) It’s annoying as hell when I realize what I’m look at is not my file, but a diff, and maybe not even the latest diff if I have the git history up for the file. This is bad UX-overloading. The edit pane IS FOR EDITING/WRITING code, and having the diff up is a distraction and interrupts my flow.

  17. Steve says:

    Looks like JetBrains is going the way of so many software companies these days and over-engineering things into oblivion. Sometimes things just work and the user is happy with the UI as it is, with the occasional extra supported feature/language being enough. Please stop forcing your users to re-learn a new UI several times a year. At the very least make the old UI optional for at least one year at a time. I can’t get my head around this new VCS and it’s discouraging, I’ve already wasted valuable hours attempting to re-learn things for no reason. The old setup was just fine.

  18. Artem says:

    Sorry, the new interface doesn’t work for me. It messes up the solution tab.
    I constantly use my solution tab. So I move it down.
    And, now, on my 25″ monitor, there is the Commit panel, taking 2/3 of my vertical space.
    And it is 80% empty.
    I hope, you will add the ability to place something useful in that space. Repository tab, for example 😉

  19. stang says:

    Where did the shelf tab/views go? I can’t find them :(

  20. David says:

    The new “preview in a tab” is still annoying after using it for over a month – I’m reverting to the old behaviour (show.diff.preview.as.editor.tab = false).

    I mostly use the “Local changes” view to navigate between files that I am currently editing. If I click on a file on the list, I want to go straight to that file (its current version), so that I can continue editing, I do not want to see a diff. The preview gets in my way. Even if I do want to see a diff, I do not want to loose context / the currently edited file.

  21. Damien says:

    While I think it could be a great improvement, I find the new UI frustrating whenever I have split editors open (pretty much all the time for me: implementation on the left, tests on the right usually).

    Press Ctrl+K and the diff takes only half of the screen (the left most split editor).
    If it was to temporarily disable my split screen it would be a lot more usable.

    I had to revert to the old experience because of that.

  22. Edvin says:

    I’ve changed everything back to the way it was, to the best of my ability. I put the Commit and Repository tabs right next to each other on the bottom pane. I don’t mind them being split into two tabs, as long as I can keep them together: http://i.imgur.com/X8FrySc.png

    But every time I restart Rider, the Commit tab goes back to the top left part of the screen, like so: http://i.imgur.com/wLyOzRu.png

    Why does it refuse to stay where I want it? What can I do to keep it there forever?

    • You may want to use the Window | Store as Default menu to save the tool window locations.

      • Max says:

        This doesn’t work. It’s really annoying to drug the window back to the bottom each time i restart Rider.
        Also giving my vote to have what we had before – repository/commit windows in a single tab. otherwise too many tabs. To fetch/pull the changes i have to switch between commit/repository tabs.

  23. Jeremiah Muela says:

    Where did this change go? After I got used to the change I’m hooked, but it’s gone in Build #IU-201.5985.32

  24. Kimberly Tran says:

    So are you guys really going ahead with this new commit/VCS UI? I feel like you’re experimenting on your Rider users because we’re probably the smallest population. Well, thanks, for that, because I also use Webstorm and it’s annoying as fuck to switch back and forth. Again, if you’re going to do something like this, at least have the option to opt out.

  25. Patrick says:

    I am missing a “final” commit shortcut, allowing me to commit using the keyboad only.

    E.g. having some changes in my project, I do Command-K – commit tool window opens, previous commit message highlighted. I change that. And then???

    I press Option-Shift-Enter (not sure how I found that), and the “Commit” button dropdown opens. But there I only have the options to “Commit and push…” or “Create patch”. However, I would like to actually just “Commit” (Main Button Action) (e.g. by selecting it with the arrow keys, as the other options). Or otherwise, have a shortcut from after commit message editing is done, to directly “Commit” to the VCS (Main Button Action). E.g. Command-Enter could do that. But it doesn’t. And I can not seem to find the action in the “Keyboard Mapping” section in settings either.

    Or am I missing something?

    • Once you have the changes selected and are in the “commit window”, hold the “Alt” key (at least on Windows, don’t have a mac at hand here). There will be a mnemonic on the commit button that you can use.

  26. Florian vl says:

    Only just noticed the upgraded commit window because I haven’t updated in a while.

    My issue with it is this: I usually code with 2 windows side by side, split vertically. When opening the commit window with CTRL/CMD+K, the changes are only visible in one of these two window groups and therefore not useful at all unless I remove one window group or resize it. This was not an issue with the old commit window… Liked that one way better tbh.

  27. Alex says:

    JB, do you hate us?
    This is broken again! The overrides do not work in Rider 2020.1. They new way of working just doesn’t work for me at all. My buddies at work do not like it either. It makes it harder to convince others to move to Rider.

    • Hi Alex, does this work? There’s a toggle to change the location (under Version Control | Commit Dialog, toggle Commit from Local Changes without showing the Commit Dialog).

      For a demo gif, check https://blog.jetbrains.com/dotnet/vcschanges/

      • Alex says:

        Maarten,

        Thanks for the reply,
        This check works and I have to fallback to it. What is broken is the show.diff.preview.as.editor.tab override. I got used to the new panel sliding from a side (undocked mode) and showing all the details I needed to see / manage my local changes and make commits from the same dialog. I 2020.1 this if forced to be in editor tabs, so I’m back to the old style commit UI.

        The update also messed up some of the settings in Rider, for example I lost the BeyonCompare settings I was fine tuning for ages. Weird stuff…

        You guys are great and the new features are lovely but this update is the most painful since ever. Downloading the 2019.3.4.

        Alex.

  28. Dumitru says:

    Just upgraded to Rider 2020.1.
    This change is forcing me to downgrade back.

    Why, why would you disable a feature that several people (here at least) specifically indicated using?

    I use the editor on main screen, VCS window on second screen (maximized).
    The best way to use it for me is to have diff on right side in the commit window.
    No, I do not want it to open up in my code. Some people have 2 monitors. Even when I have only one display, I still prefer to open commit window on top of everything, and nicely have it spread out between the file list & the diff.

    Extremely frustrated with this, and disappointed with whoever is deciding this stuff. At least, last time there was a way to hack around it – which doesn’t seem to work anymore.

    A good tool should not force users to use it a specific way, but rather allow users to use it the way they prefer to.

    I’m a huge Rider fan, and I’ve recommended it to dozens of people. I’ve upgraded to fix some of the bugs – which it did – but this UX means it is unusable for me, uncomfortable, and simply put – annoying.

  29. Dumitru says:

    For Rider 2020.1, you also need to disable vcs.commit.tool.window (as well as the other params listed in this post)

    Disabling both, I could get the commit window to behave as desired.

    Also, disabling vcs.log.diff.preview.vertical I was able to get the log view displaying as desired (diff on the right as opposed to on bottom)

    I am finally able to use Rider 2020.1!

  30. Drew Connelly says:

    I hate it. This makes me not want to update any of my jetbrain IDEs. I had to remap the shortcut so I can have the old view and do all this hacking to get it working the same as it was before. I should just cancel my subscription and take the perpetual license and run. Or switch to VS Code since I have to hack my IDE anyways. Might as well hack a free one.

    I can’t stress this enough, I really hate every single thing about this feature. It makes me want to stop paying for jetbrains products and stop recommending it. I hope this feedback is as worthless as this feature.

    • Hi Drew, definitely not worthless! We’re looking at this for future versions. Out of curiosity, is it the commit tool window that is the issue for you, or the in-editor diff?

      • Alex says:

        I’d chime in here as I’m in the same boat of seriously thinking of jumping the JB ship. The SC integration is crucial part of may daily activities so it’s a HUGE deal.

        Where it’s broken for me: with old ways I was able to do all activities related to SC via shortcuts 100%. With the change in Autumn it was even possible to use the same shortcut to open the Commit Dialog and when it’s on to jump to the list of changed files.

        The new way FORCES me to use mouse all the time! I need to keep resizing the windows as they insist on being too small. It’s not what IDE is about.

        And JB should realize that VS Code is getting better so if I have to use mouse all the time anyways, VS Code is fine too.

        • Hi Alex, which shortcuts are you missing specifically, if I may ask? Commit should still work (and open the tool window, or depending on the setting described at the end of the post, the commit dialog). Feel free to reach out to maarten at jetbrains com.

Leave a Reply

Your email address will not be published. Required fields are marked *