mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-96272 Subversion: credentials (not saved) are not preserved within same session if subversion settings are changed (corrected) [^kirill.l]
(cherry-picked from 8a8490d)
This commit is contained in:
@@ -347,7 +347,7 @@ public class SvnAuthenticationNotifier extends GenericNotifierImpl<SvnAuthentica
|
||||
new Consumer<String>() {
|
||||
@Override
|
||||
public void consume(String s) {
|
||||
configuration.setConfigurationDirectory(s);
|
||||
configuration.setConfigurationDirParameters(false, s);
|
||||
}
|
||||
}, project, null);
|
||||
}
|
||||
|
||||
@@ -277,13 +277,8 @@ public class SvnConfigurable implements Configurable {
|
||||
|
||||
public void apply() throws ConfigurationException {
|
||||
SvnConfiguration configuration = SvnConfiguration.getInstance(myProject);
|
||||
final String newConfigurationDirectory = myConfigurationDirectoryText.getText();
|
||||
if (! Comparing.equal(configuration.getConfigurationDirectory(), newConfigurationDirectory)) {
|
||||
configuration.setConfigurationDirectory(newConfigurationDirectory);
|
||||
}
|
||||
if (configuration.isUseDefaultConfiguation() != myUseDefaultCheckBox.isSelected()) {
|
||||
configuration.setUseDefaultConfiguation(myUseDefaultCheckBox.isSelected());
|
||||
}
|
||||
configuration.setConfigurationDirParameters(myUseDefaultCheckBox.isSelected(), myConfigurationDirectoryText.getText());
|
||||
|
||||
configuration.setIsUseDefaultProxy(myUseCommonProxy.isSelected());
|
||||
final SvnVcs vcs17 = SvnVcs.getInstance(myProject);
|
||||
if ((! configuration.DETECT_NESTED_COPIES) && (configuration.DETECT_NESTED_COPIES != myDetectNestedWorkingCopiesCheckBox.isSelected())) {
|
||||
|
||||
@@ -22,10 +22,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.DefaultJDOMExternalizer;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vcs.changes.VcsAnnotationRefresher;
|
||||
import org.jdom.Attribute;
|
||||
@@ -206,12 +203,31 @@ public class SvnConfiguration implements PersistentStateComponent<Element> {
|
||||
return myIsUseDefaultConfiguration;
|
||||
}
|
||||
|
||||
public void setConfigurationDirectory(String path) {
|
||||
public void setConfigurationDirParameters(final boolean newUseDefault, final String newConfigurationDirectory) {
|
||||
final String defaultPath = IdeaSubversionConfigurationDirectory.getPath();
|
||||
final String oldEffectivePath = isUseDefaultConfiguation() ? defaultPath : getConfigurationDirectory();
|
||||
final String newEffectivePath = newUseDefault ? defaultPath : newConfigurationDirectory;
|
||||
|
||||
boolean directoryChanged = !Comparing.equal(getConfigurationDirectory(), newConfigurationDirectory);
|
||||
if (directoryChanged) {
|
||||
setConfigurationDirectory(newConfigurationDirectory);
|
||||
}
|
||||
boolean usageChanged = isUseDefaultConfiguation() != newUseDefault;
|
||||
if (usageChanged) {
|
||||
setUseDefaultConfiguation(newUseDefault);
|
||||
}
|
||||
|
||||
if (directoryChanged || usageChanged) {
|
||||
if (! Comparing.equal(oldEffectivePath, newEffectivePath)) {
|
||||
clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setConfigurationDirectory(String path) {
|
||||
myConfigurationDirectory = path;
|
||||
File dir = path == null ? new File(IdeaSubversionConfigurationDirectory.getPath()) : new File(path);
|
||||
SVNConfigFile.createDefaultConfiguration(dir);
|
||||
|
||||
clear();
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
@@ -223,9 +239,8 @@ public class SvnConfiguration implements PersistentStateComponent<Element> {
|
||||
RUNTIME_AUTH_CACHE.clear();
|
||||
}
|
||||
|
||||
public void setUseDefaultConfiguation(boolean useDefault) {
|
||||
private void setUseDefaultConfiguation(boolean useDefault) {
|
||||
myIsUseDefaultConfiguration = useDefault;
|
||||
clear();
|
||||
}
|
||||
|
||||
public ISVNOptions getOptions(Project project) {
|
||||
|
||||
@@ -70,7 +70,7 @@ public class SvnAuthenticationTest extends PlatformTestCase {
|
||||
|
||||
myConfiguration = SvnConfiguration.getInstance(myProject);
|
||||
final String configPath = myProject.getBaseDir().getPath() + File.separator + "Subversion";
|
||||
myConfiguration.setConfigurationDirectory(configPath);
|
||||
myConfiguration.setConfigurationDirParameters(false, configPath);
|
||||
|
||||
final File configFile = new File(configPath);
|
||||
myFilesToDelete.add(configFile);
|
||||
|
||||
Reference in New Issue
Block a user