Are multiple SCM saved connections supported?
I'm seeing odd behavior when trying to save multiple sets of credentials via scm login.
I have two repository servers that I'm trying to work with, I'll call them A & B. A is the canonical repository and B is a squid proxy that is fronting A. We use B primarily for the SCM performance benefits, as A is at a remote site from our build engines and a significant portion of our development team.
Certain operations, like loading, I want to work with B (the squid proxy); other operations where the data can't be cached I want to work with A directly. My problem is that I can't seem to save login credentials for both repositories. If I login to A, I can see the login is saved (scm list connections shows one entry). If I subsequently login to B only the credentials for B are saved (scm list connections shows the B entry only).
Is this the expected behavior? If so, why?
2 answers
The saved credentials are stored in $HOME/.jazz-scm/repositories.txt, one line per repository. It looks like the last value on each line is a uuid that uniquely identifies the repository. When you login with a different url for the same repository, the old line with that uuid is removed.
You should be able to work around this by using the --config option to specify a different folder instead of $HOME/.jazz-scm. Use --config with one folder when you work with server A and a different folder when you work with server B. (Or leave one using the default path.)
I'd be interested to hear whether you see a significant performance difference when avoiding the proxy for operations that can't be cached.
You should be able to work around this by using the --config option to specify a different folder instead of $HOME/.jazz-scm. Use --config with one folder when you work with server A and a different folder when you work with server B. (Or leave one using the default path.)
I'd be interested to hear whether you see a significant performance difference when avoiding the proxy for operations that can't be cached.
Comments
For my own curiosity, any reason why it behaves like that? Could I store credentials for two different users against the same repository?
It seems like if RTC knows the actual, real backend that I'm talking to then I should be able to store one set of creds and have those creds work whether I'm talking to a proxy or the real thing. Sadly that doesn't seem to be the case.
I could see how having multiple .jazz-scm folders could fix this, but frankly it would be rather cumbersome in our use case; doable but inconvenient.
I don't have good, hard numbers about the performance difference of direct vs. proxy for non-cacheable data, but anecdotally it seems significant. For our personal builds we do a number of scm status, scm list components and scm list remotefiles calls (see defect 328755) and through the proxy we are at least a few minutes slower.
Sorry, I don't know why stored credentials work that way. I'm an RTC administrator, not an RTC developer.
I had similar issues a few weeks ago - I had 2 servers installed on the same machine (different ports) so I could test a distributed environment. But the CLI client would only let me be logged into one server on localhost at a time.
I opened a work item for this issue and you can follow along at:
https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/356515
I opened a work item for this issue and you can follow along at:
https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/356515