Rider EAP update: Version control and database editor improvements

We already mentioned numerous times that Rider is built on top of ReSharper, analyzing our code in the background, and the IntelliJ platform, providing the front end and editor capabilities for our cross-platform IDE for .NET.

Doing so lets us ship the best of both worlds: both products have been evolving over years, and Rider profits. So when IntelliJ IDEA 2016.3 was released, we merged all of the improvements to language-independent features such as version control and the database editor into Rider. Let’s go over some of these improvements!

Version control

Being built on top of the IntelliJ platform, Rider shares a lot of functionality with our other IDE’s like WebStorm or PyCharm. A good example are all of the version control system (VCS) features, which the PyCharm team made some great videos about last summer. Do check them out, they are very relevant for Rider as well!

We promised to cover improvements to the VCS functionality in Rider, so let’s do that now.

The commit log tool window for Git and Mercurial repositories has been redesigned. Commit details moved to the right, commit messages are now aligned and search speed has improved dramatically when searching for text, author or path.

Version control log search

When merging or rebasing branches and commits, Rider can help us resolve simple conflicts. When opening the built-in three-way diff for a given file, the IDE will show a Resolve icon when it can perform the merge for us. Simply clicking it will let Rider handle the conflict for us. Not satisfied? Undo (Ctrl+Z) will do the trick.

Rider git/mercurial/hg merge conflict resolution

Speaking of undo: as long as it has not been pushed to origin, we can now undo a commit from the VCS log. The commit that is being undone can be copied to either the default changelist or any other existing (or new) changelist. Read up on changelists here, they are ideal for local task switching without having to branch or stash.

Undo latest commit and move it to a changelist

From the VCS | Git | Remotes… menu, we can now also manage remotes for our local repository. When working with multiple forks of a repository this can be very useful to configure (or remove) them.

Manage git remotes in Rider

Database tools

Functionality of DataGrip, our database IDE, is included in Rider. This means database and SQL development, navigation, refactoring, … is all there! Get a feel for the database tools by exploring the DataGrip website. Now what was added to the database tools since we merged IntelliJ IDEA 2016.3 into Rider?

When editing data, values for multiple cells can be set at once: simply select the cells and start typing, Rider will make sure all of them are updated. Copy/paste also works with multple cells. Updates made in the Table Editor are stored locally and then, using Ctrl+Enter or the toolbar button, we can send them to our database server in bulk.

Database editor - Bulk changes, edit multiple cells

Editing triggers is now supported, allowing us to write code that executes whenever a specific action (like an update or delete) happens in our database.

Best of all: the editor also comes with code completion, navigation support and refactorings. Want to rename a column? Rider will update all occurrences of that column. Writing a JOIN? Rider gives smart code completion for it.

Edit database trigger in Rider

And of course, source control for database tooling is supported as well. When editing a database object such as a table, view, trigger, stored procedure, …, Rider highlights our changes on the left. When we click it, we can rollback changes or click Show Diff and see what we changed, either in a dialog or inline.

Database editor inline diff

There are many more database editing goodies in Rider! Do explore and check the database editor docs for more info.

Download the latest Rider EAP build and give it a try. As always, comments are appreciated!

This entry was posted in How-To's and tagged , , , . Bookmark the permalink.

12 Responses to Rider EAP update: Version control and database editor improvements

  1. Pingback: Dew Drop - March 13, 2017 (#2438) - Morning Dew

  2. Jörgen says:

    This has zero relevance since Rider is unusable until a fix is released for https://youtrack.jetbrains.com/issue/RIDER-3777

    • Alexandru Pana says:

      It’s still very much usable for Unity projects for example.

    • Jura Gorohovsky says:

      Jörgen, the next EAP build will contain initial support for csproj-based .NET Core projects. The build is expected early next week. Thanks for your patience.

  3. Kapé says:

    Can the merge tool also be used separately from command line?

  4. Christoph says:

    your whole freaking vcs sucks ass.

    no chance to take a glimpse on other branches, and when its hidden somewhere it doesnt belong.

    every freaking vocab like merge, rebase, checkout actually doesnt tell anything about what its doing.
    your stashes fuck up. a csproj merge just made my project fail to load.

    the whole vcs is a freaking overengineered piece of shit.

    just returned to vs2017 because of retarded fuck up. also loading a project takes far too long compared to what I actually need. thought in that regard it would be a better choice than COMMUNITY version of vs… NOPE

    f-ing screw you

    • We are open to feedback but like to do so using a civilized tone. I’ve rewritten your comment removing some of the words, to try and address the issues you have. I hope I’ve not missed anything out.

      I am not satisfied with your VCS, for several reasons:

      * There is no chance to take a glimpse on other branches, and it’s hidden somewhere it doesn’t belong.
      * Every vocab like merge, rebase, checkout actually doesn’t tell anything about what its doing.
      * Your stashes often fail. A .csproj merge just made my project fail to load.

      I just returned to VS2017 because of this. Also, loading a project takes far too long compared to what I actually need. I thought in that regard Rider would be a better choice than VS2017 Community, but that was not the case.

      With that out of the way: thank you for your honest feedback and sorry to hear you are having troubles with our VCS integration.

      There is no chance to take a glimpse on other branches, and it’s hidden somewhere it doesn’t belong.

      We are constantly looking for feedback on how to improve our UI/UX and make it work great for everyone. Can you elaborate on where you expected this functionality to be present? If there is a similar feature in another product, a reference is fine, we’ll then look into it.

      Every vocab like merge, rebase, checkout actually doesn’t tell anything about what its doing.

      These are very Git-specific. A recommended read is Git’s branching/merging documentation at https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging, it covers most of these concepts and how they relate to Git.

      Our VCS integration tries to merge concepts from various VCS systems, and we have documentation on common functionality as well as system-specific concepts here: https://www.jetbrains.com/help/rider/Version_Control_Integration.html

      If anything is missing there or you feel we can improve that documentation we’d love to hear how we can make it better.

      Your stashes often fail. A .csproj merge just made my project fail to load.

      That’s a pity. While Rider does try to be intelligent about many things, the .csproj format is a hard one to always merge correctly. In shelving and unshelving (https://www.jetbrains.com/help/rider/Shelving_and_Unshelving_Changes.html), we embedded a video (https://www.youtube.com/watch?v=Zb8k8q8n8Ao) that explains the concept more in depth.

      Apart from that, it’s always good to check how to resolve potential conflicts during a merge or unshelve operation – https://www.jetbrains.com/help/rider/Resolving_Conflicts.html

      I just returned to VS2017 because of this. Also, loading a project takes far too long compared to what I actually need. I thought in that regard Rider would be a better choice than VS2017 Community, but that was not the case.

      Please have a look at the documentation page, https://intellij-support.jetbrains.com/hc/en-us/articles/207241235-Reporting-performance-problems, and provide us with a performance snapshot of when this problem happens and what would you consider acceptable as a loading time.

      Hope this helps. Constructive feedback, feature requests or suggested improvements are always welcome in our issue tracker at https://youtrack.jetbrains.com/issues/RIDER#newIssue

Leave a Reply

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