/*
 * Copyright 2000-2014 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jetbrains.idea.svn;

import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.xmlb.annotations.*;

/**
 * @author Konstantin Kolosovsky.
 */
public class SvnConfigurationState {

  @Property(surroundWithTag = false)
  public ConfigurationDirectory directory = new ConfigurationDirectory();

  @Tag(value = "keepLocks", textIfEmpty = "true")
  public boolean keepLocks;

  @Tag("myIsUseDefaultProxy")
  public boolean useDefaultProxy;

  // TODO: This seems to be related to old svn versions and should be removed.
  @Tag("supportedVersion")
  public Long supportedVersion;

  @Attribute("maxAnnotateRevisions")
  public int maxAnnotateRevisions = SvnConfiguration.ourMaxAnnotateRevisionsDefault;

  @Attribute("myUseAcceleration")
  public SvnConfiguration.UseAcceleration accelerationType = SvnConfiguration.UseAcceleration.nothing;

  @Attribute("myAutoUpdateAfterCommit")
  public boolean autoUpdateAfterCommit;

  @Attribute("cleanupOnStartRun")
  public boolean cleanupOnStartRun;

  @Attribute("TREE_CONFLICT_MERGE_THEIRS_NEW_INTO_OLD_PLACE")
  public Boolean keepNewFilesAsIsForTreeConflictMerge;

  @Attribute("SSL_PROTOCOLS")
  public SvnConfiguration.SSLProtocols sslProtocols =
    SystemInfo.JAVA_RUNTIME_VERSION.startsWith("1.7") || SystemInfo.JAVA_RUNTIME_VERSION.startsWith("1.8")
    ? SvnConfiguration.SSLProtocols.all
    : SvnConfiguration.SSLProtocols.sslv3;

  @OptionTag("mySSHConnectionTimeout")
  public long sshConnectionTimeout = 30 * 1000;

  @OptionTag("mySSHReadTimeout")
  public long sshReadTimeout = 30 * 1000;

  public boolean MERGE_DRY_RUN;
  public boolean MERGE_DIFF_USE_ANCESTRY = true;
  public boolean UPDATE_LOCK_ON_DEMAND;
  public boolean IGNORE_SPACES_IN_MERGE;
  public boolean CHECK_NESTED_FOR_QUICK_MERGE;
  public boolean IGNORE_SPACES_IN_ANNOTATE = true;
  public boolean SHOW_MERGE_SOURCES_IN_ANNOTATE = true;
  public boolean FORCE_UPDATE;
  public boolean IGNORE_EXTERNALS;

  @Tag("configuration")
  public static class ConfigurationDirectory {

    @Text
    public String path = "";

    @Attribute("useDefault")
    public boolean useDefault = true;
  }
}

/*
 * Copyright 2000-2014 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jetbrains.idea.svn;

import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.xmlb.annotations.*;

/**
 * @author Konstantin Kolosovsky.
 */
public class SvnConfigurationState {

  @Property(surroundWithTag = false)
  public ConfigurationDirectory directory = new ConfigurationDirectory();

  @Tag(value = "keepLocks", textIfEmpty = "true")
  public boolean keepLocks;

  @Tag("myIsUseDefaultProxy")
  public boolean useDefaultProxy;

  // TODO: This seems to be related to old svn versions and should be removed.
  @Tag("supportedVersion")
  public Long supportedVersion;

  @Attribute("maxAnnotateRevisions")
  public int maxAnnotateRevisions = SvnConfiguration.ourMaxAnnotateRevisionsDefault;

  @Attribute("myUseAcceleration")
  public SvnConfiguration.UseAcceleration accelerationType = SvnConfiguration.UseAcceleration.commandLine;

  @Attribute("myAutoUpdateAfterCommit")
  public boolean autoUpdateAfterCommit;

  @Attribute("cleanupOnStartRun")
  public boolean cleanupOnStartRun;

  @Attribute("TREE_CONFLICT_MERGE_THEIRS_NEW_INTO_OLD_PLACE")
  public Boolean keepNewFilesAsIsForTreeConflictMerge;

  @Attribute("SSL_PROTOCOLS")
  public SvnConfiguration.SSLProtocols sslProtocols =
    SystemInfo.JAVA_RUNTIME_VERSION.startsWith("1.7") || SystemInfo.JAVA_RUNTIME_VERSION.startsWith("1.8")
    ? SvnConfiguration.SSLProtocols.all
    : SvnConfiguration.SSLProtocols.sslv3;

  @OptionTag("mySSHConnectionTimeout")
  public long sshConnectionTimeout = 30 * 1000;

  @OptionTag("mySSHReadTimeout")
  public long sshReadTimeout = 30 * 1000;

  public boolean MERGE_DRY_RUN;
  public boolean MERGE_DIFF_USE_ANCESTRY = true;
  public boolean UPDATE_LOCK_ON_DEMAND;
  public boolean IGNORE_SPACES_IN_MERGE;
  public boolean CHECK_NESTED_FOR_QUICK_MERGE;
  public boolean IGNORE_SPACES_IN_ANNOTATE = true;
  public boolean SHOW_MERGE_SOURCES_IN_ANNOTATE = true;
  public boolean FORCE_UPDATE;
  public boolean IGNORE_EXTERNALS;

  @Tag("configuration")
  public static class ConfigurationDirectory {

    @Text
    public String path = "";

    @Attribute("useDefault")
    public boolean useDefault = true;
  }
}

Make "command line" integration be primary for default svn settings