- changed status to open
- removed comment
GetComponents: Allow !ANON_USER and !ANON_PASS not to be specified in a cvs checkout.
I would like to checkout cvs modules from a repository where ssh keys and ssh-agent are used to allow for a passwordless checkout. At the moment GetComponent doesn't seem to handle well this case. For example, once my keys are hold by ssh-agent the following command allows me to checkout cvs_module located at cvs_repo_path on cvsrepo repository:
cvs -d :ext:cvsrepo:cvs_repo_path co path_to_module/cvs_module
However if I set on the CRL file the following directives:
!TARGET = $ARR !TYPE = cvs !URL = :ext:cvsrepo:cvs_repo_path !REPO_PATH = path_to_module/$1 !CHECKOUT = cvs_module
I got the following error:
Checking out module: cvs_module from repository: :@:ext:cvsrepo:cvs_repo_path into: Cactus/arrangements Executing: cvs -z9 -q -d :@:ext:cvsrepo:cvs_repo_path checkout cvs_module In: Cactus/arrangements cvs checkout: Unknown method (`@') in CVSROOT. cvs [checkout aborted]: Bad CVSROOT: `:@:ext:cvsrepo:cvs_repo_path'.
This happens because GetComponents expects the directives !ANON_USER and !ANON_PASS to be specified in a anonymous checkout (as I usually set when I use ssh keys to authenticate my access to a particular repository). However in doing so it prevents a passwordless checkout. The attached patch fix this problem, but maybe the best solution would be to allow the user to specify a promptless !AUTH_URL directive so that "$user:$pass\@" is not included in the repository specification.
Keyword:
Comments (2)
-
reporter -
- changed status to resolved
- removed comment
Applied, thanks.
- Log in to comment