2011/5/16 Mark Phippard <markp...@gmail.com>: > Looking at the code in trunk, it seems like this is coded properly and > should be working. I am seeing unexpected behavior. Maybe I just do > not understand how it works? > > In Subclipse we expose UI to tell us the config directory location. > Most people just leave this as the default, which is same as command > line. I wanted to test the password callbacks, so I pointed it at a > new folder so that I would get prompted again to cache credentials and > accept certs etc. I have verified that the Subclipse code is properly > calling the method to set this folder, however I do not get any > prompts. > Only if I rename the default config directory do I get > prompts. And I also see SVN recreate the default. > > This leads me to believe this code is broken in trunk, but from what I > can see it looks right. > > It looks like it calls a method on ClientContext: > > ClientContext::setConfigDirectory(const char *configDir) > { > // A change to the config directory may necessitate creation of > // the config templates. > SVN::Pool requestPool; > SVN_JNI_ERR(svn_config_ensure(configDir, requestPool.pool()), ); > > m_configDir = (configDir == NULL ? "" : configDir); > } > > Any ideas?
Just guessing: 1. When you call the method, does it create "README.txt", "config", "servers" files in the specified directory? If so, then svn_config_ensure(..) call works correctly. 2. The m_configDir field is later used by ClientContext::getContext(CommitMessage *message) Are you calling getContext() after the call to setConfigDirectory() ? 3. Command line client works: svn --config-dir conf co https://127.0.0.1/ creates the configuration directory, asks whether I trust the certificate and remember the choice. This is with svn 1.7.0-dev from TortoiseSVN nightly. It is built from r1103260 of trunk. Best regards, Konstantin Kolinko