当我尝试执行任何svn命令并提供--username
和/或--password
选项时,它会提示我输入我的密码,并且总是会尝试使用我当前的用户而不是指定的用户--username
.无论是--no-auth-cache
也--non-interactive
对此产生任何影响.这是一个问题,因为我试图从脚本调用svn命令,我不能让它显示提示.
例如,以user1身份登录:
# $ svn update --username 'user2' --password 'password' # user1@domain.com's password:
其他选项正常工作:
# $ svn --version --quiet # 1.3.2
为什么它会提示我?
为什么要求user1的密码而不是user2?
我99%确定我的所有权限都设置正确.svn是否有一些配置选项可以关闭命令行密码?
或者它完全是另一回事?
我在Fedora Core 5(波尔多)上运行svn 1.3.2(r19776).
这是我的环境变量列表(敏感信息X').它们似乎都不适用于SVN:
# HOSTNAME=XXXXXX # TERM=xterm # SHELL=/bin/sh # HISTSIZE=1000 # KDE_NO_IPV6=1 # SSH_CLIENT=XXX.XXX.XXX.XXX XXXXX XX # QTDIR=/usr/lib/qt-3.3 # QTINC=/usr/lib/qt-3.3/include # SSH_TTY=/dev/pts/2 # USER=XXXXXX # LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: # KDEDIR=/usr # MAIL=/var/spool/mail/XXXXXX # PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin # INPUTRC=/etc/inputrc # PWD=/home/users/XXXXXX/my_repository # KDE_IS_PRELINKED=1 # LANG=en_US.UTF-8 # SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass # SHLVL=1 # HOME=/home/users/XXXXXX # LOGNAME=XXXXXX # QTLIB=/usr/lib/qt-3.3/lib # CVS_RSH=ssh # SSH_CONNECTION=69.202.73.122 60998 216.7.19.47 22 # LESSOPEN=|/usr/bin/lesspipe.sh %s # G_BROKEN_FILENAMES=1 # _=/bin/env # OLDPWD=/home/users/XXXXXX
crashmstr.. 50
你的命令中实际上有单引号吗?我不认为他们是必要的.另外,我认为你也需要--no-auth-cache
和--non-interactive
这是我使用的(没有单引号)
--non-interactive --no-auth-cache --username XXXX --password YYYY
有关详细信息,请参阅svnbook中的客户端凭据缓存文档.
你的命令中实际上有单引号吗?我不认为他们是必要的.另外,我认为你也需要--no-auth-cache
和--non-interactive
这是我使用的(没有单引号)
--non-interactive --no-auth-cache --username XXXX --password YYYY
有关详细信息,请参阅svnbook中的客户端凭据缓存文档.
你得到的提示看起来不像Subversion要求你输入密码,它看起来像ssh要求输入密码.所以我的猜测是你已经签出了svn + ssh:// checkout,而不是svn://或http://或https:// checkout.
IIRC您尝试的所有选项仅适用于svn/http/https签出.你能运行svn info来确认你使用的是什么类型的存储库吗?
如果您使用的是ssh,则应设置基于密钥的身份验证,以便脚本可以在不提示输入密码的情况下运行.
我有同样的问题并通过设置我的〜/ .ssh/config文件来明确使用正确的用户名(即用于登录服务器的用户名,而不是本地计算机)解决了这个问题.所以,例如:
Host server.hostname User username
我发现这篇博文有用:http://www.highlevelbits.com/2007/04/svn-over-ssh-prompts-for-wrong-username.html