Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Subversive New and Noteworthy"

(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''Also see the New & Noteworthy for:''' [[Subversive New and Noteworthy for Galileo|Galileo]]  
+
'''Also see the New & Noteworthy for:''' [[Subversive New and Noteworthy for Luna|Luna]], [[Subversive New and Noteworthy for Kepler|Kepler]], [[Subversive New and Noteworthy for Juno|Juno]], [[Subversive New and Noteworthy for Indigo|Indigo]], [[Subversive New and Noteworthy for Helios|Helios]], [[Subversive New and Noteworthy for Galileo|Galileo]]
  
Subversive New and Noteworthy items
+
== Introduction  ==
  
== Connectors Discovery feature  ==
+
Main target of this release is not just a stability improvement, but improvement in code quality of the main plug-in and its integrations.
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=280889 280889]. Subversive's Connector Discovery feature makes the process of finding and installing SVN Connectors much faster and easier than it was in versions before 0.7.8.I20090808-1900, when the installation process went like this:
+
== SVN 1.8 support  ==
  
*Install Subversive from 2 different update sites: one for SVN Team Provider and another for SVN Connectors
+
There is a change to SVN 1.8 support in SVN integration API regarding naming of one of the constants and there is an improvement regarding SVN errors handling (please check details in the API section).
*There were many combinations for installing Subversive and SVN Connectors, and some of these combinations were not compatible
+
  
The Connector Discovery feature greatly simplifies the things. Now you can install only Subversive SVN Team Provider. The next time Eclipse starts, on the first call to any Subversive functionality the Connector Discovery feature will detect that there are no connectors installed and will launch a dialog which displays the SVN Connectors you need and enables download and installation:
+
== Rework of SVN integration API  ==
  
[[Image:Connectors discovery.png]]
+
Long history of development leads to some consequences, in our case it is a baggage of supporting older Java versions, which could lead to a drop in code quality and so on. So, we analyzed the code and found some critical points, which if reworked would bring great improvement in code quality to the plug-in itself and some of the related integrations.
 +
Also there is always a need to provide more facilities to the integrators and to improve user experience. And so we decided to concentrate on the following matters:
 +
* mistake in semantic of constant's naming
 +
* heavy usage of integer constants were enumerations could be used inherited from Java 1.4 compatible plug-in version, that could cause (and actually causes) misuse of a constant
 +
* introduction of new ways to handle SVN errors.
  
== List all locked files in a project  ==
+
As a result of our work there are 3 major points to the API changes in this release:
 +
* The masked constant ISVNConnector.Options.DISALLOW_MIXED_REVISIONS of 2.x version was removed and the constant ISVNConnector.Options.ALLOW_MIXED_REVISIONS with the same value was added, since there was a semantic error in its naming
 +
* All the untyped constants which were defined in version 2.x just as plain integer values, now are defined using Java enumerations. Which automatically means changing the API methods signatures. For example the signature:
 +
    public void add(String path, int depth, long options, ISVNProgressMonitor monitor) throws SVNConnectorException;
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=279602 279602]. Add SVN Locks view which shows SVN locks and provides corresponding actions such as Lock, Unlock, Break Lock.
+
    was changed with the following one:
  
[[Image:Lock view.png]]
+
    public void add(String path, SVNDepth depth, long options, ISVNProgressMonitor monitor) throws SVNConnectorException;
  
== Use Equinox secure storage  ==
+
    and so on.
 +
* SVN error categories are introduced and so are the methods to detect to which category the error belongs to. There're 2 such methods in SVNErrorCodes class (and a set of corresponding constants, of course):
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=295079 295079]. As authorization database is superseded by the Equinox secure storage, store secure data in Secure Storage. It was deleted obsolete Password Management page in SVN preferences, instead of it you can manage the list of passwords that have been saved via Secure Storage preference page. On first running of Subversive with Secure Storage support, secure data is automatically migrated from Authorization database, so you don't need to reenter it manually.
+
    public static boolean belongsTo(int errorCode, int errorCategory);
 
+
    public static int categoryOf(int errorCode);
[[Image:Secure storage.png]]
+
 
+
== Add dialog for creating external resource  ==
+
 
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=288139 288139]. This dialog provides an ability to set external definition information to be added to a svn:externals property of the selected resource. It adds ability to make relative urls.
+
 
+
[[Image:Set external dialog.png]]
+
 
+
== Correctly support externals in actions  ==
+
 
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=290386 290386]. Handle resources in external definitions as normal resources, especially it concerns to complex cases of defining externals, e.g. in commit, revert actions, decoration, Synchronize view.
+
 
+
== Add ability to specify comments for revision links  ==
+
 
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=292280 292280]. When you add revision link there's ability to specify comment for it; revision link can also be modified(revision and comment). It was changed a little revision links presentation. For instance, you can use revision links when switching between trunk and branches by saving revision.
+
 
+
[[Image:Revision link.png]]
+
 
+
== Extend SVN Info properties  ==
+
 
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=293016 293016]. Separate text and properties status. Previously there was only State property, but it wasn't possible to know from it what exactly and how was modified content or property, e.g. they can be modified at the same time. Add other properties, e.g. Copied etc.
+
 
+
[[Image:Properties.png]]
+
 
+
== Add Revision Graph  ==
+
 
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=211253 211253]. ''SVN Revision Graph'' is a graphical representation of history for any resource. Using Revision Graph we can see a resource history with copy operation, applied for this resource. Represented information includes information about branches and tags for resource, so it allows to see a revision history for a resource and all its branches and tags. It's a main advantage of the Revision Graph over a History View, because History View is able to display only a history for resource, but not its copies. As the result Revision Graph is very useful in case if branches and tags are used, so users can see the whole picture of resource changes together with all branches and tags, where it was used on the one screen.
+
 
+
'''Revision Graph features:'''
+
 
+
*Displaying of the revision graph for resource
+
*Switching between compact and full data representation (In compact view revision with no copy operations are filtered out. Full data representation displays all revisions)  
+
*Supported actions for displayed revisions: compare revisions, show content, export content, display history and other operations, available for History View (the same list of actions is available in the revision Graph)  
+
*Graph zooming and thubnailing in Outline view
+
*Expanding/collapsing revisions
+
 
+
This is how ''SVN Revision Graph'' looks like:
+
 
+
[[Image:Revision graph.png]]
+
 
+
Add preferences for Revision Graph on which you can manage repository caches. You can also specify a directory where repository caches are stored. By default repository caches are stored in workspace's metadata.
+
 
+
This is how ''Revision Graph'' properties page looks like:
+
 
+
[[Image:Pref graph.png]]
+
 
+
= Subversive for Indigo New & Noteworthy  =
+
 
+
Subversive for Indigo does not have many new features, instead we concentrated on plug-in stability and fixed a lot of different issues piled up in the project development time. Still there are some interesting moments that could benefit your work with SVN.
+
  
 
== Latest SVN client libraries included  ==
 
== Latest SVN client libraries included  ==
  
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=326829 326829] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=334452 334452]. There were many issues fixed recently in the SVN support libraries and so, it's reasonable to update Subversive SVN Connectors with the most recent ones. Although latest SVN client libraries does not only contain a lots of bug fixes, but also in case of SVN Kit client library there is a way to improve Subversive functionality too: recent SVN Kit version allows creation of an FSFS repositories.
+
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=465831 465831], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=465830 465830], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=465795 465795] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=465801 465801]. The most important is update of SVN Kit 1.8.x based connector to the SVN Kit 1.8.9 version, since we're receiving a lot of reports regarding issues with this one.
 
+
== Repository creation with SVN Kit  ==
+
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=333202 333202]. SVN Kit 1.3.5 allows creation of FSFS repositories and so, now this feature could be used not with the native connectors only, but with the pure Java connector too. When you use recent SVN Kit version you have access to the repository creation feature with the FSFS option available:<br>
+
== Usability improvements ==
  
[[Image:Svnrepositorycreation.png]]  
+
Since m2e is now a project under Eclipse.org umbrella, we too moved Subversive-m2e integration to Eclipse (bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=455407 455407]). This way it'll be much easier to install to the ones who need this integration.
  
== Ignoring incoming changes in the Synchronize View  ==
+
Since there're conflicts in key binding schemes (due to global key bindings in the operating environment or with other plug-ins in Eclipse IDE) we have created our own predefined schemes "Default + Subversive" and "Default + Subversive (Ubuntu)". Each of them introduces a slight changes in key combinations in order to provide access to all the important features through keyboard accelerators (bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=456139 456139] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=309074 309074]).
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=297821 297821]. There are times when you just want to reject incoming changes for whatever the reason is. For example when there was quick fix commited for some issue and you have a better solution which does not need any changes in the code which was modified by quick fix. So, what should you do in that case? Is there any other way except making a fake conflict? Well, now there is! Just use 'Mark as merged' action over the unneeded incoming change and you will get your wish granted:
+
[[Image:Svn-key-bindings.png]]
  
[[Image:Svnrejectchanges.png]]  
+
There are some cases when user do not want to go along with the connectors installation procedure the moment it is proposed automatically by the connectors discovery feature. The decision is saved and there is no way to call discovery feature second time. If such a case happens, there is a lot of work to install connectors later, since the user must find the URL to the correct version of the connectors updates site, then add it in Eclipse Installation Manager before installing connectors themselves. In order to resolve the situation we have added the fast access button in the connectors selection page of plug-in preferences (bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=442249 442249]).
  
== Use Mylyn-based facilities to report issues and feature requests  ==
+
[[Image:Svn-get-connectors-button.png]]
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=229495 229495]. There were times when we used our own proprietary bug and feature request reporting facilities and that required placing our menu item in a non-desired place - Help menu. And now we have this feature we integrated with, provided by the Mylyn project:
+
SVN supports multiline properties, while the automatic properties configuration page doesn't, since the new line separates properties from each other. This prevents using automatic properties in case a multiline one is needed. In order to solve the issue we have introduced a new syntax of defining a property in Automatic Properties dialog. In order to define a multiline one you just need to separate supposed lines with the \n character sequence. In case you actually need to define a \n character sequence in your property, then just use the masked one: \\n (bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=445999 445999]).
  
[[Image:Svnreporting.png]]  
+
Also there are typical SVN errors requiring user to perform some actions over the working copy. It is nothing strange when you know what to expect, but may confuse a beginner. So, we made a special page in the Subversive's help, that describes those typical errors and possible solutions. The help page could be summoned directly from the error notification dialog, which should enhance beginners experience with SVN (bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=457516 457516]).
  
 
[[Category:Subversive]]
 
[[Category:Subversive]]

Revision as of 09:29, 5 May 2015

Also see the New & Noteworthy for: Luna, Kepler, Juno, Indigo, Helios, Galileo

Introduction

Main target of this release is not just a stability improvement, but improvement in code quality of the main plug-in and its integrations.

SVN 1.8 support

There is a change to SVN 1.8 support in SVN integration API regarding naming of one of the constants and there is an improvement regarding SVN errors handling (please check details in the API section).

Rework of SVN integration API

Long history of development leads to some consequences, in our case it is a baggage of supporting older Java versions, which could lead to a drop in code quality and so on. So, we analyzed the code and found some critical points, which if reworked would bring great improvement in code quality to the plug-in itself and some of the related integrations. Also there is always a need to provide more facilities to the integrators and to improve user experience. And so we decided to concentrate on the following matters:

  • mistake in semantic of constant's naming
  • heavy usage of integer constants were enumerations could be used inherited from Java 1.4 compatible plug-in version, that could cause (and actually causes) misuse of a constant
  • introduction of new ways to handle SVN errors.

As a result of our work there are 3 major points to the API changes in this release:

  • The masked constant ISVNConnector.Options.DISALLOW_MIXED_REVISIONS of 2.x version was removed and the constant ISVNConnector.Options.ALLOW_MIXED_REVISIONS with the same value was added, since there was a semantic error in its naming
  • All the untyped constants which were defined in version 2.x just as plain integer values, now are defined using Java enumerations. Which automatically means changing the API methods signatures. For example the signature:
   public void add(String path, int depth, long options, ISVNProgressMonitor monitor) throws SVNConnectorException;
   was changed with the following one:
   public void add(String path, SVNDepth depth, long options, ISVNProgressMonitor monitor) throws SVNConnectorException;
   and so on.
  • SVN error categories are introduced and so are the methods to detect to which category the error belongs to. There're 2 such methods in SVNErrorCodes class (and a set of corresponding constants, of course):
   public static boolean belongsTo(int errorCode, int errorCategory);
   public static int categoryOf(int errorCode);

Latest SVN client libraries included

Bugs 465831, 465830, 465795 and 465801. The most important is update of SVN Kit 1.8.x based connector to the SVN Kit 1.8.9 version, since we're receiving a lot of reports regarding issues with this one.

Usability improvements

Since m2e is now a project under Eclipse.org umbrella, we too moved Subversive-m2e integration to Eclipse (bug 455407). This way it'll be much easier to install to the ones who need this integration.

Since there're conflicts in key binding schemes (due to global key bindings in the operating environment or with other plug-ins in Eclipse IDE) we have created our own predefined schemes "Default + Subversive" and "Default + Subversive (Ubuntu)". Each of them introduces a slight changes in key combinations in order to provide access to all the important features through keyboard accelerators (bugs 456139 and 309074).

Svn-key-bindings.png

There are some cases when user do not want to go along with the connectors installation procedure the moment it is proposed automatically by the connectors discovery feature. The decision is saved and there is no way to call discovery feature second time. If such a case happens, there is a lot of work to install connectors later, since the user must find the URL to the correct version of the connectors updates site, then add it in Eclipse Installation Manager before installing connectors themselves. In order to resolve the situation we have added the fast access button in the connectors selection page of plug-in preferences (bug 442249).

Svn-get-connectors-button.png

SVN supports multiline properties, while the automatic properties configuration page doesn't, since the new line separates properties from each other. This prevents using automatic properties in case a multiline one is needed. In order to solve the issue we have introduced a new syntax of defining a property in Automatic Properties dialog. In order to define a multiline one you just need to separate supposed lines with the \n character sequence. In case you actually need to define a \n character sequence in your property, then just use the masked one: \\n (bug 445999).

Also there are typical SVN errors requiring user to perform some actions over the working copy. It is nothing strange when you know what to expect, but may confuse a beginner. So, we made a special page in the Subversive's help, that describes those typical errors and possible solutions. The help page could be summoned directly from the error notification dialog, which should enhance beginners experience with SVN (bug 457516).

Back to the top