From: <dal...@us...> - 2014-06-25 21:42:02
|
Revision: 23599 http://sourceforge.net/p/jedit/svn/23599 Author: daleanson Date: 2014-06-25 21:41:59 +0000 (Wed, 25 Jun 2014) Log Message: ----------- Updates for svnkit 1.8.6, bumped java version to 1.7, fixes for checkout, pv options. Modified Paths: -------------- plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/SVNPlugin.props plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/build.xml plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/command/Checkout.java plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/gui/PVSVNOptionPane.java Modified: plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/SVNPlugin.props =================================================================== --- plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/SVNPlugin.props 2014-06-23 21:49:39 UTC (rev 23598) +++ plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/SVNPlugin.props 2014-06-25 21:41:59 UTC (rev 23599) @@ -6,19 +6,19 @@ plugin.ise.plugin.svn.SVNPlugin.activate=defer plugin.ise.plugin.svn.SVNPlugin.name=SVNPlugin plugin.ise.plugin.svn.SVNPlugin.author=Dale Anson -plugin.ise.plugin.svn.SVNPlugin.version=1.7.9 +plugin.ise.plugin.svn.SVNPlugin.version=1.8.6 plugin.ise.plugin.svn.SVNPlugin.description=Subversion plugin # docs plugin.ise.plugin.svn.SVNPlugin.docs=docs/index.html # dependencies -plugin.ise.plugin.svn.SVNPlugin.depend.0=jdk 1.6.0 +plugin.ise.plugin.svn.SVNPlugin.depend.0=jdk 1.7.0 plugin.ise.plugin.svn.SVNPlugin.depend.1=jedit 05.02.01.00 -plugin.ise.plugin.svn.SVNPlugin.depend.2=plugin projectviewer.ProjectPlugin 3.4.4 +plugin.ise.plugin.svn.SVNPlugin.depend.2=plugin projectviewer.ProjectPlugin 3.5.2 plugin.ise.plugin.svn.SVNPlugin.depend.3=plugin CommonControlsPlugin 1.7.4 plugin.ise.plugin.svn.SVNPlugin.depend.4=plugin jdiff.JDiffPlugin 3.3.0 -plugin.ise.plugin.svn.SVNPlugin.depend.5=plugin infoviewer.InfoViewerPlugin 1.6.1 +plugin.ise.plugin.svn.SVNPlugin.depend.5=plugin infoviewer.InfoViewerPlugin 1.6.2 plugin.ise.plugin.svn.SVNPlugin.depend.6=plugin jnaplugin.JNAPlugin 3.5.2 plugin.ise.plugin.svn.SVNPlugin.jars=antlr-runtime-3.4.jar jsch.agentproxy.connector-factory-0.0.7.jar jsch.agentproxy.core-0.0.7.jar jsch.agentproxy.pageant-0.0.7.jar jsch.agentproxy.sshagent-0.0.7.jar jsch.agentproxy.svnkit-trilead-ssh2-0.0.7.jar jsch.agentproxy.usocket-jna-0.0.7.jar jsch.agentproxy.usocket-nc-0.0.7.jar platform-3.5.2.jar sequence-library-1.0.2.jar sqljet-1.1.10.jar svnkit-1.8.6.jar svnkit-cli-1.8.6.jar trilead-ssh2-1.0.0-build217.jar @@ -648,5 +648,5 @@ ips.Completed_converting_working_copy_format_to_=Completed converting working copy format to ips.Converting=Converting ips.Caution!_It_will_not_be_possible_to_convert_to_an_older_working_copy_format.\n\nConvert_anyway?\n\n=Caution! It will not be possible to convert to an older working copy format.\n\nConvert anyway?\n\n -ips.Converting_to_1.7_working_format=Converting to 1.7 working format +ips.Converting_to_1.7_working_format=Upgrading working file format ips.Automatically_import_added_files_and_remove_deleted_files_from_ProjectViewer=Automatically import added files and remove deleted files from ProjectViewer \ No newline at end of file Modified: plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/build.xml =================================================================== --- plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/build.xml 2014-06-23 21:49:39 UTC (rev 23598) +++ plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/build.xml 2014-06-25 21:41:59 UTC (rev 23599) @@ -24,7 +24,7 @@ <mkdir dir="${src.dir}"/> <!-- java source and target version for compile --> - <property name="target" value="1.6"/> + <property name="target" value="1.7"/> <!-- library directory, location for third party jars --> <property name="lib.dir" location="lib"/> Modified: plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/command/Checkout.java =================================================================== --- plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/command/Checkout.java 2014-06-23 21:49:39 UTC (rev 23598) +++ plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/command/Checkout.java 2014-06-25 21:41:59 UTC (rev 23599) @@ -31,15 +31,10 @@ import java.io.*; import java.util.*; -import org.tmatesoft.svn.core.SVNDepth; import org.tmatesoft.svn.core.wc.SVNUpdateClient; -import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.ISVNOptions; import org.tmatesoft.svn.core.wc.SVNClientManager; import org.tmatesoft.svn.core.wc.SVNWCUtil; -import org.tmatesoft.svn.core.internal.wc2.SvnWcGeneration; -import org.tmatesoft.svn.core.internal.wc.admin.SVNAdminAreaFactory; -import org.tmatesoft.svn.core.internal.wc17.db.ISVNWCDb; import org.tmatesoft.svn.core.wc2.SvnCheckout; import org.tmatesoft.svn.core.wc2.SvnTarget; @@ -49,9 +44,6 @@ import ise.plugin.svn.data.CheckoutData; import ise.plugin.svn.SVNPlugin; -import org.tmatesoft.svn.core.wc.SVNStatus; -import org.tmatesoft.svn.core.wc.SVNStatusClient; -import org.tmatesoft.svn.core.wc.SVNWCClient; import org.gjt.sp.jedit.jEdit; @@ -130,27 +122,7 @@ out.close(); clientManager.dispose(); - // possibly change working copy format - // TODO: Is this the right place to do this? - /* - int current_wc_format = getWCVersion( localPath ); - int default_wc_format = jEdit.getIntegerProperty( "ise.plugin.svn.defaultWCVersion", SVNAdminAreaFactory.WC_FORMAT_15 ); - if ( current_wc_format != default_wc_format ) { - SVNWCClient wc_client = SVNClientManager.newInstance().getWCClient(); - wc_client.doSetWCFormat( localPath, default_wc_format ); - } - */ return revision; } - private int getWCVersion( File path ) { - try { - SVNStatusClient st_client = SVNClientManager.newInstance().getStatusClient(); - SVNStatus status = st_client.doStatus( path, false ); - return status.getWorkingCopyFormat(); - } catch ( Exception e ) { - return SVNAdminAreaFactory.WC_FORMAT_15; - } - } - } \ No newline at end of file Modified: plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/gui/PVSVNOptionPane.java =================================================================== --- plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/gui/PVSVNOptionPane.java 2014-06-23 21:49:39 UTC (rev 23598) +++ plugins/SVNPlugin/branches/1.7.5_svn_1.8.5/src/ise/plugin/svn/gui/PVSVNOptionPane.java 2014-06-25 21:41:59 UTC (rev 23599) @@ -29,6 +29,8 @@ package ise.plugin.svn.gui; // imports +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; import java.io.File; import java.util.*; import javax.swing.*; @@ -55,18 +57,6 @@ import org.tmatesoft.svn.core.internal.wc.admin.SVNAdminAreaFactory; import org.tmatesoft.svn.core.internal.wc17.db.ISVNWCDb; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.internal.wc.SVNPath; -import org.tmatesoft.svn.core.wc2.SvnOperationFactory; -import org.tmatesoft.svn.core.wc2.SvnTarget; -import org.tmatesoft.svn.core.wc2.SvnUpgrade; - -import projectviewer.ProjectViewer; -import projectviewer.vpt.VPTProject; -import projectviewer.vpt.VPTNode; -import projectviewer.vpt.VPTDirectory; -import projectviewer.vpt.VPTFile; - /** * Option pane for setting the url, username, and password for subversion via * ProjectViewer. @@ -109,13 +99,13 @@ url_label = new JLabel( jEdit.getProperty( PVHelper.PREFIX + "url.label" ) ); url = new HistoryTextField( URL ); url.setText( jEdit.getProperty( PVHelper.PREFIX + projectName + ".url" ) ); - url.setColumns(30 ); + url.setColumns( 30 ); // username field username_label = new JLabel( jEdit.getProperty( PVHelper.PREFIX + "username.label" ) ); username = new HistoryTextField( USERNAME ); username.setText( jEdit.getProperty( PVHelper.PREFIX + projectName + ".username" ) ); - username.setColumns(30 ); + username.setColumns( 30 ); // password field password_label = new JLabel( jEdit.getProperty( PVHelper.PREFIX + "password.label" ) ); @@ -125,39 +115,25 @@ // subversion file format fileformat_label = new JLabel( jEdit.getProperty( "ips.Subversion_file_format>", "Subversion file format:" ) ); - String wc_item; int current_wc_format = getWCVersion(); - //System.out.println("+++++ current_wc_format = " + current_wc_format); - switch ( current_wc_format ) { - case SVNAdminAreaFactory.WC_FORMAT_13: - wc_item = "1.3"; - break; - case SVNAdminAreaFactory.WC_FORMAT_14: - wc_item = "1.4"; - break; - case SVNAdminAreaFactory.WC_FORMAT_15: - wc_item = "1.5"; - break; - case ISVNWCDb.WC_FORMAT_17: - wc_item = "1.7"; - break; - case SVNAdminAreaFactory.WC_FORMAT_16: - default: - wc_item = "1.6"; - break; + fileformat = new JComboBox( wcToArray( current_wc_format ) ); + fileformat.setEditable( false ); + fileformat.setSelectedIndex( 0 ); + fileformat.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent ae ) { + // ask user if they want to change from older version to newer version of working copy format + int answer = JOptionPane.showConfirmDialog( jEdit.getActiveView(), "Do you want to convert the working copy format from " + wcToString( getWCVersion() ) + " to " + fileformat.getSelectedItem() + "?", "Convert working copy format?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); + if ( answer != JOptionPane.YES_OPTION ) { + fileformat.setSelectedIndex( 0 ); + return; + } + changeWorkingCopyFormat(); + } + } ); - } - if ( current_wc_format == ISVNWCDb.WC_FORMAT_17 ) { - fileformat = new JComboBox( new String[] {"1.7"} ); - } else { - fileformat = new JComboBox( new String[] {"1.3", "1.4", "1.5", "1.6", "1.7"} ); - } - fileformat.setEditable( false ); - fileformat.setSelectedItem( wc_item ); - // auto-import checkbox - autoImport = new JCheckBox(jEdit.getProperty("ips.Automatically_import_added_files_and_remove_deleted_files_from_ProjectViewer", "Automatically import added files and remove deleted files from ProjectViewer")); - autoImport.setSelected(jEdit.getBooleanProperty( PVHelper.PREFIX + projectName + ".autoimport", false)); + autoImport = new JCheckBox( jEdit.getProperty( "ips.Automatically_import_added_files_and_remove_deleted_files_from_ProjectViewer", "Automatically import added files and remove deleted files from ProjectViewer" ) ); + autoImport.setSelected( jEdit.getBooleanProperty( PVHelper.PREFIX + projectName + ".autoimport", false ) ); // initially, some parts are not visible, they are made visible in the // swing worker thread. @@ -168,7 +144,7 @@ password.setVisible( false ); fileformat_label.setVisible( false ); fileformat.setVisible( false ); - autoImport.setVisible(false); + autoImport.setVisible( false ); // add the components to the option panel add( "0, 0, 3, 1, W,, 3", new JLabel( "<html><b>" + jEdit.getProperty( "ips.Subversion_Settings", "Subversion Settings" ) + "</b>" ) ); @@ -184,9 +160,9 @@ add( "0, 4, 1, 1, E,, 3", fileformat_label ); add( "1, 4, 2, 1, 0, w, 3", fileformat ); - - add( "0, 5, 3, 1, E, w, 3", autoImport); + add( "0, 5, 3, 1, E, w, 3", autoImport ); + ( new Runner() ).execute(); } @@ -209,87 +185,39 @@ jEdit.setBooleanProperty( PVHelper.PREFIX + projectName + ".autoimport", autoImport.isSelected() ); - // possibly change working copy format + } + + private void changeWorkingCopyFormat() { int current_wc_format = getWCVersion(); final String new_wc_format = ( String ) fileformat.getSelectedItem(); - int wc_format; - if ( "1.3".equals( new_wc_format ) ) { - wc_format = SVNAdminAreaFactory.WC_FORMAT_13; - } else if ( "1.4".equals( new_wc_format ) ) { - wc_format = SVNAdminAreaFactory.WC_FORMAT_14; - } else if ( "1.5".equals( new_wc_format ) ) { - wc_format = SVNAdminAreaFactory.WC_FORMAT_15; - } else if ( "1.7".equals( new_wc_format ) ) { - wc_format = ISVNWCDb.WC_FORMAT_17; - } else { - wc_format = SVNAdminAreaFactory.WC_FORMAT_16; - } - if ( wc_format != current_wc_format ) { + int wc_format = stringToWC( new_wc_format ); + + // only allow upgrading of working file format, don't ever downgrade. + if ( wc_format > current_wc_format ) { // put this in a SwingWorker, otherwise, it takes a long time on // large projects and causes the UI to hang until it is done. final int wcf = wc_format; - if (wcf == ISVNWCDb.WC_FORMAT_17) { - // Alert the user so they know this is a one-way conversion. - int answer = JOptionPane.showConfirmDialog( jEdit.getActiveView(), jEdit.getProperty("ips.Caution!_It_will_not_be_possible_to_convert_to_an_older_working_copy_format.\n\nConvert_anyway?\n\n", "Caution! It will not be possible to convert to an older working copy format.\n\nConvert anyway?\n\n"), jEdit.getProperty("ips.Converting_to_1.7_working_format", "Converting to 1.7 working format"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); - if ( answer != JOptionPane.YES_OPTION ) { - return; - } - } jEdit.getActiveView().getDockableWindowManager().showDockableWindow( "subversion" ); final OutputPanel panel = SVNPlugin.getOutputPanel( jEdit.getActiveView() ); panel.showConsole(); - class Runner extends SwingWorker <Object, Object > { + class Runner extends SwingWorker <Boolean, Object > { ConsolePrintStream out = new ConsolePrintStream( jEdit.getActiveView() ); @Override - protected Object doInBackground() { + protected Boolean doInBackground() { SVNClientManager clientManager = SVNClientManager.newInstance(); try { - if ( wcf != ISVNWCDb.WC_FORMAT_17 ) { - // 1.6 and earlier, can convert either direction with 1.6 and earlier formats. - out.println( jEdit.getProperty( "ips.Converting_svn_working_copy_format_to_", "Converting svn working copy format to " ) + new_wc_format + "..." ); - SVNWCClient wc_client = clientManager.getWCClient(); - wc_client.doSetWCFormat( projectRoot, wcf ); - } else { - // convert to 1.7 format. Cannot convert from 1.7 to earlier, can only convert from older to 1.7. - out.println( jEdit.getProperty( "ips.Converting_svn_working_copy_format_to_", "Converting svn working copy format to " ) + " 1.7 ..." ); - VPTProject project = ProjectViewer.getActiveProject( jEdit.getActiveView() ); - Enumeration projectNodes = project.breadthFirstEnumeration(); - SvnOperationFactory factory = new SvnOperationFactory(); - SvnUpgrade upgrade = factory.createUpgrade(); - - String targetName = null; - while (projectNodes.hasMoreElements()) { - VPTNode node = (VPTNode)projectNodes.nextElement(); - if (node.isDirectory()) { - targetName = ((VPTDirectory)node).getNodePath(); - } - else if(node.isFile()) { - targetName = ((VPTFile)node).getNodePath(); - } - else { - continue; - } - if (targetName == null || targetName.isEmpty()) { - continue; - } - SVNPath target = new SVNPath( targetName ); - if ( target.isFile() ) { - upgrade.setSingleTarget( SvnTarget.fromFile( target.getFile() ) ); - try { - upgrade.run(); - } catch ( SVNException e ) { // NOPMD - // TODO: ignore? alert the user? quit converting? - } - } - } - } + out.println( jEdit.getProperty( "ips.Converting_svn_working_copy_format_to_", "Converting svn working copy format to " ) + new_wc_format + " ..." ); + SVNWCClient wc_client = clientManager.getWCClient(); + wc_client.doSetWCFormat( projectRoot, wcf ); } catch ( Exception e ) { // TODO: this must be done on the EVT JOptionPane.showMessageDialog( jEdit.getActiveView(), jEdit.getProperty( "ips.Unable_to_convert_working_copy_file_format>", "Unable to convert working copy file format:" ) + "\n" + e.getMessage(), jEdit.getProperty( "ips.Error", "Error" ), JOptionPane.ERROR_MESSAGE ); + out.printError( jEdit.getProperty( "ips.Unable_to_convert_working_copy_file_format>", "Unable to convert working copy file format:" ) + "\n" + e.getMessage() ); + return false; } finally { clientManager.dispose(); } - return null; + return true; } @Override public boolean doCancel( boolean mayInterruptIfRunning ) { @@ -298,7 +226,12 @@ } @Override protected void done() { - out.println( jEdit.getProperty( "ips.Completed_converting_working_copy_format_to_", "Completed converting working copy format to " ) + new_wc_format + "." ); + try { + if ( get() ) { + out.println( jEdit.getProperty( "ips.Completed_converting_working_copy_format_to_", "Completed converting working copy format to " ) + new_wc_format + "." ); + } + } catch ( Exception e ) { + } out.close(); } } @@ -327,6 +260,64 @@ } } + private String wcToString( int wc ) { + switch ( wc ) { + case SVNAdminAreaFactory.WC_FORMAT_13: + return "1.3"; + case SVNAdminAreaFactory.WC_FORMAT_14: + return "1.4"; + case SVNAdminAreaFactory.WC_FORMAT_15: + return "1.5"; + case SVNAdminAreaFactory.WC_FORMAT_16: + return "1.6"; + case ISVNWCDb.WC_FORMAT_17: + return "1.7"; + case ISVNWCDb.WC_FORMAT_18: + return "1.8"; + default: + return null; + } + } + + private final String[] wcFormats = {"1.3", "1.4", "1.5", "1.6", "1.7", "1.8"}; + private String[] wcToArray( int wc ) { + switch ( wc ) { + case SVNAdminAreaFactory.WC_FORMAT_13: + return Arrays.copyOfRange( wcFormats, 0, wcFormats.length ); + case SVNAdminAreaFactory.WC_FORMAT_14: + return Arrays.copyOfRange( wcFormats, 1, wcFormats.length ); + case SVNAdminAreaFactory.WC_FORMAT_15: + return Arrays.copyOfRange( wcFormats, 2, wcFormats.length ); + case SVNAdminAreaFactory.WC_FORMAT_16: + return Arrays.copyOfRange( wcFormats, 3, wcFormats.length ); + case ISVNWCDb.WC_FORMAT_17: + return Arrays.copyOfRange( wcFormats, 4, wcFormats.length ); + case ISVNWCDb.WC_FORMAT_18: + return Arrays.copyOfRange( wcFormats, 5, wcFormats.length ); + default: + return Arrays.copyOfRange( wcFormats, 4, wcFormats.length ); + } + } + + private int stringToWC( String wc ) { + switch ( wc ) { + case "1.3": + return SVNAdminAreaFactory.WC_FORMAT_13; + case "1.4": + return SVNAdminAreaFactory.WC_FORMAT_14; + case "1.5": + return SVNAdminAreaFactory.WC_FORMAT_15; + case "1.6": + return SVNAdminAreaFactory.WC_FORMAT_16; + case "1.7": + return ISVNWCDb.WC_FORMAT_17; + case "1.8": + return ISVNWCDb.WC_FORMAT_18; + default: + return -1; + } + } + private String getProjectName() { projectName = PVHelper.getProjectName( ( View ) SwingUtilities.getRoot( this ) ) == null ? "" : PVHelper.getProjectName( ( View ) SwingUtilities.getRoot( this ) ); return projectName; @@ -366,11 +357,12 @@ protected void done() { try { // populate url field from existing svn info, if available + // TODO: this seems to put the wrong url in the url field url_label.setText( jEdit.getProperty( PVHelper.PREFIX + "url.label" ) ); List<SVNInfo> info_results = get(); String url_text = null; if ( info_results != null && info_results.size() > 0 ) { - SVNInfo svn_info = info_results.get(0 ); + SVNInfo svn_info = info_results.get( 0 ); if ( svn_info != null && svn_info.getURL() != null ) { url_text = svn_info.getURL().toString(); } @@ -387,7 +379,7 @@ password.setVisible( true ); fileformat_label.setVisible( true ); fileformat.setVisible( true ); - autoImport.setVisible(true); + autoImport.setVisible( true ); } catch ( Exception e ) { // NOPMD // ignored } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |