Jump to: navigation, search

Difference between revisions of "Subversive New and Noteworthy"

m (Usability improvements: typo)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Also see the New & Noteworthy for:''' [[Subversive New and Noteworthy for Galileo|Galileo]], [[Subversive New and Noteworthy for Helios|Helios]], [[Subversive New and Noteworthy for Indigo|Indigo]]
+
'''Also see the New & Noteworthy for:''' [[Subversive New and Noteworthy for Mars|Mars]], [[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]]
  
 
== Introduction  ==
 
== Introduction  ==
  
Beside concentrating on plug-in stability, in Subversive for Juno we've introduced a set of important features. There are features that should benefit those who uses SVN in their everyday work and those who uses Subversive plug-in in their products.  
+
Main target of this release is performance optimization and introduction of SVN 1.9 support.
  
== SVN 1.7 support  ==
+
== SVN 1.9 support  ==
 +
   
 +
All the changes in SVN API that aren't regarded as experimental ones were reflected in SVN integration API. These changes are covered by the following tasks: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=488472 488472], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=485022 485022], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=488453 488453], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=487220 487220] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=487147 487147]. For the exact details please check the following section.
  
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=361257 361257], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=365627 365627], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=374582 374582] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=372781 372781]. Beside major API changes SVN 1.7 introduces a new working copy format which has no backward compatibility with the previous ones. So, our main goal was to minimize impact of new SVN API support on dependent tools and provide stable and easy ways to convert existing working copies into the SVN 1.7 format.
+
== Rework of SVN integration API ==
  
== Latest SVN client libraries included  ==
+
The following API calls were added:
 +
* setConfigurationEventHandler() - set an event handler that will be called every time the configuration is loaded by this client object
 +
* getConfigurationEventHandler() - returns a reference to the installed configuration event handler
 +
* vacuum() - recursively vacuum a working copy, removing unnecessary data, including unversioned, externals, unused pristines, ignored and fixing time stamps
 +
The following API calls now accept additional behaviour switches:
 +
* status()
 +
* merge()
 +
* mergeTwo()
 +
* exportTo()
 +
* copyLocal()
 +
The following API calls signatures were changed:
 +
* revert()
 +
* cleanup()
 +
* getInfo()
 +
* streamFileContent()
 +
* copyLocal()
 +
* copyRemote()
 +
* annotate()
 +
The following previously deprecated API calls were removed:
 +
* mergeStatus()
 +
* merge() - the ones that were a counterpart to mergeStatus()
 +
Those modifications had no actual impact on the high-level command framework API.
  
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=374581 374581], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=375168 375168] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=380075 380075]. 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.
+
== Latest SVN client libraries included ==
  
== SVN client activity tracking API  ==
+
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=485024 485024], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=485025 485025], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=480040 480040], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=480039 480039] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=487147 487147]. SVN Kit 1.8.12 supports SVN 1.9 working copy. While the native clients provide full-featured support for SVN 1.9.
  
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=356023 356023] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=356024 356024]. There were many requests about the ways to intercept a different SVN activities, like committing, updating, registering repository locations etc. After carefuly checking all the requests we've introduced SVN client calls interception API and repository location listener API. When used together they allows to track not just every SVN client function call but even modify its parameters when it's needed. We're really thankful to those who spent their time discussing those API changes together with us: Jc Temp, Eike Stepper, Adrian.
+
== Changes in extension points ==
  
== UI commit extensions improvements  ==
+
* The IOptionProvider interface was changed so that it allows to add configuration options in the future in a way which won't lead to new API changes. All the options now are provided in a uniform way, using the following methods:
 +
** get() - returns the option's value by its name
 +
** getString() - returns the option's value which is of the String type (basically it is a wrapper to the "get" call)
 +
** has() - returns true if the option is set at all
 +
** is() - returns true if the option is set to true (basically it is a wrapper to the "get" call)
 +
* The ICommitActionFactory interface now allows integrations to completely manage the comment editor control and so, now it contains few more methods:
 +
** initCommentManager() - called upon the CommentComposite initialization
 +
** confirmMessage() - called each time "Ok" button is pressed
 +
** cancelMessage() - called each time "Cancel" button is pressed
 +
* The IModifiableCommentDialogPanel interface is now marked as deprecated, since its functions were completely overtook by the more functional ICommentManager interface.
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=356025 356025]. IModifiableCommentDialogPanel interface was introduced. It allows to override an initial commit comment prior to opening the commit dialog (special thanks to Jc Temp).
+
== Usability improvements ==
  
== Smartcard login on Windows (MSCAPI Support)  ==
+
There were request for new features by community which were solved in this version.
 +
Now there is a way to specify a default checkout location which may differ from the workspace location:
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=351510 351510]. This feature allows to login with smartcards for the SVNKit connector version 1.3.3 and later and was contributed by Markus Oberlassnig (ilogs information logistics GmbH).
+
[[Image:Svn-project-structure.png]]
  
== New decoration mode for branches and tags  ==
+
This allows you not to select the location manually each time you perform a checkout, in case you do not want to use the workspace location due to some reasons. Also the corresponding path selection control of the Checkout As wizard location page from now on will be enabled by default in order to lessen the amount of the actions required to change the location.
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=359650 359650]. There are cases when you use a multi-project layout and your branches and/or tags structure are really complex. In this case it would be better to use new [fullpath] decoration mode, which will display the path starting from branches or tags root and up to the project, excluding project name itself.
+
[[Image:Svn-checkout-as-location-page.png]]
  
== Usability improvements  ==
+
Previously plug-in always ignored derived resources. But it seems sometimes it is useful to place them under source control. So, now we have the option to alter the behaviour:
  
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=356042 356042]. When creating a patch and selecting save "In workspace", the default location of the selection dialog now is the project itself.
+
[[Image:Svn-commit-options.png]]
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=353875 353875]. Now "Replace with Revision..." action allows replace to finish successfully even if there are locked files in case if there are no changes to them (special thanks to Neels Hofmeyr).
+
 
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=364407 364407] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=370072 370072]. Now Subversive allows to solve both: property and content conflicts with the same "Edit Conflicts" action and all the actions related to conflicts handling now are availble in the Team menu too.
+
Also, support form SVN 1.7-1.9 diff options was introduced into the "Create Patch" wizard:
 +
 
 +
[[Image:Svn-diff-options.png]]
 +
 
 +
== Performance ==
 +
 
 +
Thanks to the community people's help, there were some major performance improvements including both: CPU and memory usage reduction. For details please check the bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=489143 489143] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=489649 489649].  
  
 
[[Category:Subversive]]
 
[[Category:Subversive]]

Latest revision as of 14:26, 5 April 2016

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

Introduction

Main target of this release is performance optimization and introduction of SVN 1.9 support.

SVN 1.9 support

All the changes in SVN API that aren't regarded as experimental ones were reflected in SVN integration API. These changes are covered by the following tasks: 488472, 485022, 488453, 487220 and 487147. For the exact details please check the following section.

Rework of SVN integration API

The following API calls were added:

  • setConfigurationEventHandler() - set an event handler that will be called every time the configuration is loaded by this client object
  • getConfigurationEventHandler() - returns a reference to the installed configuration event handler
  • vacuum() - recursively vacuum a working copy, removing unnecessary data, including unversioned, externals, unused pristines, ignored and fixing time stamps

The following API calls now accept additional behaviour switches:

  • status()
  • merge()
  • mergeTwo()
  • exportTo()
  • copyLocal()

The following API calls signatures were changed:

  • revert()
  • cleanup()
  • getInfo()
  • streamFileContent()
  • copyLocal()
  • copyRemote()
  • annotate()

The following previously deprecated API calls were removed:

  • mergeStatus()
  • merge() - the ones that were a counterpart to mergeStatus()

Those modifications had no actual impact on the high-level command framework API.

Latest SVN client libraries included

Bugs 485024, 485025, 480040, 480039 and 487147. SVN Kit 1.8.12 supports SVN 1.9 working copy. While the native clients provide full-featured support for SVN 1.9.

Changes in extension points

  • The IOptionProvider interface was changed so that it allows to add configuration options in the future in a way which won't lead to new API changes. All the options now are provided in a uniform way, using the following methods:
    • get() - returns the option's value by its name
    • getString() - returns the option's value which is of the String type (basically it is a wrapper to the "get" call)
    • has() - returns true if the option is set at all
    • is() - returns true if the option is set to true (basically it is a wrapper to the "get" call)
  • The ICommitActionFactory interface now allows integrations to completely manage the comment editor control and so, now it contains few more methods:
    • initCommentManager() - called upon the CommentComposite initialization
    • confirmMessage() - called each time "Ok" button is pressed
    • cancelMessage() - called each time "Cancel" button is pressed
  • The IModifiableCommentDialogPanel interface is now marked as deprecated, since its functions were completely overtook by the more functional ICommentManager interface.

Usability improvements

There were request for new features by community which were solved in this version. Now there is a way to specify a default checkout location which may differ from the workspace location:

Svn-project-structure.png

This allows you not to select the location manually each time you perform a checkout, in case you do not want to use the workspace location due to some reasons. Also the corresponding path selection control of the Checkout As wizard location page from now on will be enabled by default in order to lessen the amount of the actions required to change the location.

Svn-checkout-as-location-page.png

Previously plug-in always ignored derived resources. But it seems sometimes it is useful to place them under source control. So, now we have the option to alter the behaviour:

Svn-commit-options.png

Also, support form SVN 1.7-1.9 diff options was introduced into the "Create Patch" wizard:

Svn-diff-options.png

Performance

Thanks to the community people's help, there were some major performance improvements including both: CPU and memory usage reduction. For details please check the bugs 489143 and 489649.