Jump to: navigation, search

Difference between revisions of "Subversive New and Noteworthy"

m (Usability improvements: typo)
 
(4 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 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.  
+
In this release we spent a great deal of effort in order to improve plug-in's stability and usability, but the main point was to rework SVN integration API, introduce SVN 1.8 support and provide access to repository administration API.  
  
== SVN 1.7 support  ==
+
== SVN 1.8 support  ==
  
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.  
+
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=416782 416782], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=416783 416783], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=416784 416784], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=416796 416796], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=417768 417768] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=423701 423701]. SVN 1.8 support is a feature that is widely requested by community, since there are not just some new features were introduced, but the working copy format was made incompatible with the previous one yet again, which in turn breaks your work when you're trying to mix SVN 1.7 and SVN 1.8 clients usage.  
  
== Latest SVN client libraries included ==
+
== Rework of SVN integration 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.  
+
Since there was a long history of changes in SVN integration API dictated by the changes in SVN functionality, there were inevitably a few of odd things that could make its usage somewhat annoying. So, while working on bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=417768 417768] we've made a lot of changes in order to make SVN API look more uniform, easy to understand and use.
 +
What was changed:
 +
* ISVNConnector.Depth was moved level up and renamed to SVNDepth
 +
* repository administration-related APIs were moved to the separate interface ISVNManager
 +
* ISVNConnector.commit now returns revisions of successfull commits through ISVNProgressMonitor
 +
* in order to make naming conventions uniform, some methods were renamed:
 +
** doImport -> importTo
 +
** doExport -> exportTo
 +
** logEntries -> listHistoryLog
 +
** info -> getInfo
 +
** list -> listEntries
 +
** getProperties -> listProperties
 +
** getRevisionProperties -> listRevisionProperties
 +
* some methods were renamed/deleted due to changes in SVN API in order to better reflect their functions:
 +
** removeProperty and setProperty were replaced with setPropertyLocal and setPropertyRemote
 +
** remove was split to removeRemote and removeLocal
 +
** copy was split to copyRemote and copyLocal
 +
** move was split to moveRemote and moveLocal
 +
** merge, diff and diffStatus methods that were receiving two different URLs as their arguments were renamed to mergeTwo, diffTwo and diffStatusTwo accordingly.
 +
* SVNNotification.NodeLock.isKnownStatus was renamed to SVNNotification.NodeLock.isStatusKnown
 +
* SVNNotification.NodeStatus.isKnownStatus was renamed to SVNNotification.NodeStatus.isStatusKnown
 +
* SVNNotification.PerformedAction.isActionKnown was renamed to SVNNotification.PerformedAction.isKnownAction
  
== SVN client activity tracking API  ==
+
== SVN repository management API support ==
  
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.
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=417769 417769]. For a long time we've been using one of repository management functions in order to support UI functionality (see bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=333202 333202]). So, is there a reason why we shouldn't provide access to all the other features? Definitely not! Now there is ISVNManager interface which provides support for all the repository management functions.
  
== UI commit extensions improvements ==
+
== Latest SVN client libraries included ==
 
+
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).
+
 
+
== Smartcard login on Windows (MSCAPI Support)  ==
+
 
+
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).
+
  
== New decoration mode for branches and tags  ==
+
Bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=434041 434041], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=434042 434042], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=430498 430498] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=430499 430499]. 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.
  
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.
+
== Usability improvements ==
  
== Usability improvements  ==
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=419850 419850]. Since SVN provides versioning not just for the data in files but for the directory structure itself too, there is such a state as "replaced file" - it happens when you not just change the file content, but replace it as a whole. It is nice to know that a replacement took place, but it may be not so nice when you understand that you wanted to to change the file content by overwriting it, but instead lost the history of all the changes of the original file. So, while it is important to preserve SVN functionality there are some usability issues that should be solved and it is the reason why we've implemented the "Treat replacement as Edit" option which is present in commit dialog and preferences and allows you to override the default SVN 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.
+
Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=427577 427577]. We've always concentrated on protecting users from entering invalid data were it is possible, so that there won't be any misunderstanding on how the SVN works and so on. But there are always exceptions from the general rule. Many users have found a way to benefit from a little missuse of svn:ignore property. When you're using an invalid character at the start of the line the whole line is ignored by SVN client and so, you may use it as a comment. That is why we've added the option "Allow svn:ignore's mask validation".
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.
+
  
 
[[Category:Subversive]]
 
[[Category:Subversive]]

Latest revision as of 08:00, 28 May 2014

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

Introduction

In this release we spent a great deal of effort in order to improve plug-in's stability and usability, but the main point was to rework SVN integration API, introduce SVN 1.8 support and provide access to repository administration API.

SVN 1.8 support

Bugs 416782, 416783, 416784, 416796, 417768 and 423701. SVN 1.8 support is a feature that is widely requested by community, since there are not just some new features were introduced, but the working copy format was made incompatible with the previous one yet again, which in turn breaks your work when you're trying to mix SVN 1.7 and SVN 1.8 clients usage.

Rework of SVN integration API

Since there was a long history of changes in SVN integration API dictated by the changes in SVN functionality, there were inevitably a few of odd things that could make its usage somewhat annoying. So, while working on bug 417768 we've made a lot of changes in order to make SVN API look more uniform, easy to understand and use. What was changed:

  • ISVNConnector.Depth was moved level up and renamed to SVNDepth
  • repository administration-related APIs were moved to the separate interface ISVNManager
  • ISVNConnector.commit now returns revisions of successfull commits through ISVNProgressMonitor
  • in order to make naming conventions uniform, some methods were renamed:
    • doImport -> importTo
    • doExport -> exportTo
    • logEntries -> listHistoryLog
    • info -> getInfo
    • list -> listEntries
    • getProperties -> listProperties
    • getRevisionProperties -> listRevisionProperties
  • some methods were renamed/deleted due to changes in SVN API in order to better reflect their functions:
    • removeProperty and setProperty were replaced with setPropertyLocal and setPropertyRemote
    • remove was split to removeRemote and removeLocal
    • copy was split to copyRemote and copyLocal
    • move was split to moveRemote and moveLocal
    • merge, diff and diffStatus methods that were receiving two different URLs as their arguments were renamed to mergeTwo, diffTwo and diffStatusTwo accordingly.
  • SVNNotification.NodeLock.isKnownStatus was renamed to SVNNotification.NodeLock.isStatusKnown
  • SVNNotification.NodeStatus.isKnownStatus was renamed to SVNNotification.NodeStatus.isStatusKnown
  • SVNNotification.PerformedAction.isActionKnown was renamed to SVNNotification.PerformedAction.isKnownAction

SVN repository management API support

Bug 417769. For a long time we've been using one of repository management functions in order to support UI functionality (see bug 333202). So, is there a reason why we shouldn't provide access to all the other features? Definitely not! Now there is ISVNManager interface which provides support for all the repository management functions.

Latest SVN client libraries included

Bugs 434041, 434042, 430498 and 430499. 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.

Usability improvements

Bug 419850. Since SVN provides versioning not just for the data in files but for the directory structure itself too, there is such a state as "replaced file" - it happens when you not just change the file content, but replace it as a whole. It is nice to know that a replacement took place, but it may be not so nice when you understand that you wanted to to change the file content by overwriting it, but instead lost the history of all the changes of the original file. So, while it is important to preserve SVN functionality there are some usability issues that should be solved and it is the reason why we've implemented the "Treat replacement as Edit" option which is present in commit dialog and preferences and allows you to override the default SVN behaviour.

Bug 427577. We've always concentrated on protecting users from entering invalid data were it is possible, so that there won't be any misunderstanding on how the SVN works and so on. But there are always exceptions from the general rule. Many users have found a way to benefit from a little missuse of svn:ignore property. When you're using an invalid character at the start of the line the whole line is ignored by SVN client and so, you may use it as a comment. That is why we've added the option "Allow svn:ignore's mask validation".