The version control subsystem in MonoDevelop now supports GIT. The basic version control commands already available for the Subversion support are now available for GIT:
The Update command updates a project from a remote repository by using a pull+rebase operation. Uncommitted changes are automatically saved and restored after the update.Also, some GIT specific commands have been added:
The Merge and Rebase commands allows merging a branch with the current one.In addition, there is a Manage Branches and Remotes command which allows browsing, creating and deleting branches and remotes.
The GIT backend is implemented using the NGit library, which is a port of JGit to .NET (details here).
The Log and Blame windows are now integrated in the editor window as alternate views.
The Log view has a new design which makes it easier to browse the history of a project or file. Gravatar icons if the commit authors are now shown in the history. Search support has been added.
The new Changes view (also shown integrated with the text editor) can be used to see changes between a file being edited and the last committed version of the file, or between any two versions of the file.
A new conflict resolution dialog is shown when a conflict is detected while updating from a remote repository.
The concept of "Policies" was introduced in MonoDevelop 2.4. Policies are settings which can be applied per-solution and per-project. Policies include settings like code formatting rules, standard header for files or naming policies.
In this release, we introduce support for user defined policy sets. Users can now define a set of policies and give it a name. This policy set can then be applied as a whole or policy by policy to a project.
User defined policies can be imported from existing projects, or from a file. Policies can also be exported to a file or applied to an existing project.
The default policy options are the options that are applied when creating a new project. In previous releases those options were edited in a 'Default Policies' dialog. In this release, those options are integrated in the main preferences dialog, and allow selecting options from predefined policy sets.
This release includes support for .NET 4.0 projects
The C# parser which is used to support code completion has been rewritten in this release and it is now based on the MCS compiler. By reusing MCS's parser, it will be easier to track the latest C# version. It also provides much more accurate on-the-fly syntax errors, and makes on-the-fly formatting more precise.
The formatting options for C# are now edited in a new dialog which has more space for showing the available options and the preview code. New formatting options have been added in this release:
A new path bar at the top of the text editor allows selecting the active class and member. It provides a more consistent user experience between C# and XML/HTML/ASP.NET files.
Minor improvements to the VI mode. Work on a new architecture has begun but is not yet enabled.
This new add-in can generate XML documentation for classes and class members. It parses the member name and generates some basic documentation out of it.
Code completion for XML has been improved, and there is now support for basic smart indenting.
When using Mono's Soft Debugger engine, MonoDevelop is now able to show the IL of the code being debugged in the Disassembly window. The Disassembly window will be automatically shown, for example, when double clicking on a method in the call stack pad for which there is no source code file. It can also be made visible using the "Show Disassembly" command.
The Win32 debugger now supports catchpoints, tracepoints and conditional breakpoints.
The debugger now allows inspecting the values variables captured by anonymous methods, lambdas and iterators.
The new Stop Evaluation command available in the Debug menu allows canceling the evaluation of methods and properties while the debugger is stopped.
The T4 templating engine now supports preprocessed templates, and has improved compatibility with the Microsoft implementation.
The experimental AnalysisCore addin provides a base for background analysis of source files, and for suggesting and implementing fixes. It can be enabled in MonoDevelop Preferences. Only a single analysis rule is provided but others may be implemented by addins.
Add-ins will now be able to register external viewers for files.
Message dialogs and file dialogs on Mac now use the native UI toolkit.
The MonoMac add-in (availble from the add-in manager) adds support for writing, runnig, debugging and packaging app bundles using the MonoMac wrapper for the native Cocoa toolkit on Mac.
MonoDevelop now depends on Mono.Addins 0.6, which features a new and improved add-in manager. In this new manager, add-in updates are more visible and easy to install. The add-in gallery is integrated in the main window, and can show custom add-in icons and preview images.
Contributors to this release:
Translators: